开源社区程序discourse安装部署(Debian12 )
作者:小编 时间:2025-08-28

Discourse 是一款旨在革新传统论坛体验的​​开源现代论坛软件​,它由 Stack Overflow 的联合创始人 ​​Jeff Atwood​​ 和 ​​Robin Ward​​ 等人共同创建,其首个公开测试版本(v0.8)于 ​​2013年2月5日​​ 发布。
 


💡 ​​Discourse 的诞生与愿景​​:

Discourse 的诞生源于 Jeff Atwood 对当时论坛软件现状的不满,他认为它们大多体验陈旧、功能落后。他梦想打造一个如同 ​​WordPress 之于博客​​那样​​标志性​​的论坛工具,旨在与 Twitter、Facebook 等社交媒体竞争,成为未来十年互联网讨论的基础设施。其目标是构建一个​​文明、理性​​的讨论环境,并为此在软件设计上做了诸多努力。

🤝 ​​开源与商业化​​:

Discourse 遵循 ​​GPLv2 开源协议​​,任何人都可以自由使用、修改和分发。项目通过提供​​专业的托管服务​​(最便宜的托管套餐起价为每月100美元)来获得收入。据报道,其托管服务在2016年左右月收入达到8万美元,在2018年前后已实现月收入约12万美元。这种“​​开源软件 + 付费托管​​”的模式,与 WordPress 的商业模式有相似之处。

Debian12如何部署Discourse
为什么选Debian12,因为个人在aws上同等配置,选择不同系统配置完Discourse,在Debian12下内存占用最少,流畅程度更有优势。
准备工作:
1,需要有一个域名,Discourse不支持IP部署,解析域名到云服务器ip,部署不能有cdn,部署中会监测域名,如果检测不到443端口,会自动退出部署。
2,需要有支持SMTP的邮件系统,个人用gmail和hotmail都测试过,Discourse不能正常发送邮件,建议用sendgrid或者aws邮件系统,国内可以用sendcloud国际版aurorasendcloud来发,每天有50封足够前期测试。
3,需要有支持587和465的云服务器,邮件端口如果不能开,那么无法完成部署,因为Discourse注册和登录等各种操作严重依赖邮件系统。

部署步骤:

安装Docker更新包列表 首先,确保包列表是最新的。打开终端并运行以下命令:

sudo apt-get update

安装必要的依赖项 为了安装 Docker,需要一些依赖项。运行以下命令来安装:

sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release

添加 Docker 的官方 GPG 密钥,为了确保下载的 Docker 软件是安全的,应该添加 Docker 的官方 GPG 密钥。运行以下命令:


curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

设置 Docker 的稳定版仓库,现在,您需要设置 Docker 的稳定版仓库。根据您的 Debian 版本,可能需要选择不同的存储库。例如,对于 Debian Buster:

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装 Docker 引擎,更新包列表并安装 Docker 引擎:

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

验证安装,安装完成后,可以通过运行以下命令来验证 Docker 是否正确安装:

sudo docker --version

启动 Docker 服务并启用开机启动,最后,启动 Docker 服务并设置为开机启动:

sudo systemctl start docker
sudo systemctl enable docker

添加当前用户到 docker 组以避免使用 sudo,为了不每次运行 Docker 命令时都使用 sudo,可以将用户添加到 docker 组:

sudo usermod -aG docker $USER

开始部署

./discourse-setup
Hostname for your Discourse? [discourse.example.com]:
Email address for admin account(s)? [me@example.com,you@example.com]:
SMTP server address? [smtp.example.com]:
SMTP port? [587]:
SMTP user name? [user@example.com]:
SMTP password? [pa$$word]:
Let's Encrypt account email? (ENTER to skip) [me@example.com]:

一般如果邮件系统配置错误,在安装完成页面注册管理员点击会不起作用,以下命令先创建创始管理员
cd /var/discourse/
./launcher enter app
rake admin:create

逐一排查SMTP无法正常发送邮件原因
需要添加587端口
expose:
  - "80:80"   # http
  - "443:443" # https
  - "587:587" # SMTP TLS
需要设置认证方式plain改为login
env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8
  EMBER_CLI_PROD_ASSETS: 1
  #DISCOURSE_DEFAULT_LOCALE: en
  UNICORN_WORKERS: 8
  DISCOURSE_HOSTNAME: discourse.example.club
  #DOCKER_USE_HOSTNAME: true
  DISCOURSE_DEVELOPER_EMAILS: 'admin@example.com'
  DISCOURSE_SMTP_ADDRESS: mail.example.com
  DISCOURSE_SMTP_PORT: 25
  DISCOURSE_SMTP_USER_NAME: admin@example.com
  DISCOURSE_SMTP_PASSWORD: "123456"
  DISCOURSE_SMTP_ENABLE_START_TLS: false          # (optional, default true)
  DISCOURSE_SMTP_DOMAIN: example.com
  DISCOURSE_NOTIFICATION_EMAIL: admin@example.com
  LETSENCRYPT_ACCOUNT_EMAIL: admin@example.com
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com
  #DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456
  DISCOURSE_SMTP_AUTHENTICATION: login

查看最新日志(按Ctrl+C退出)
tail -f /var/log/rails/production.log | grep -i "smtp"
grep -i "smtp.*error" /var/log/rails/production.log

显示:SMTP 连接过程、认证结果、服务器返回的错误代码(如535 Authentication failed表示认证失败)等。
查看官方邮件排查教程
https://meta.discourse.org/t/troubleshooting-email-on-a-new-discourse-install/16326

填写无误最后重构
./launcher rebuild app

大功告成






 
    匿名评论
  • 评论
人参与,条评论
相关下载
H5游戏