discourse网站搭建
环境准备
- ubuntu18
- 设置一个域名,例如
discourse.example.com
,添加NDS使其能够解析该域名 - sudo apt-get install docker.io ruby git
- 等会需要一个邮箱服务器,这里介绍用qq邮箱普通用户每天100封,选取一个qq邮箱名,获取授权码(SMTP的密码)
附:邮箱测试http://tool.chacuo.net/mailserversend - 如果想搭建一个https网站,准备一份网站的可信证书(.crt和.key),或者自签名证书也可以
安装
-
建议全程用root权限
sudo -s git clone https://github.com/discourse/discourse_docker.git /home/discourse cd /home/discourse
-
如果是https网站,则替换成你的证书名字
vim ./templates/web.letsencrypt.ssl.template.yml:111-125
,否则在containers/app.yml
中注释以下两行templates: - "templates/postgres.template.yml" - "templates/redis.template.yml" - "templates/web.template.yml" - "templates/web.ratelimited.template.yml" ## Uncomment these two lines if you wish to add Lets Encrypt (https) # - "templates/web.ssl.template.yml" # - "templates/web.letsencrypt.ssl.template.yml"
更改安装版本为稳定版:
version: stable
更改默认语言:
DISCOURSE_DEFAULT_LOCALE: zh_CN
-
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邮件服务器地址,qq邮箱填写] SMTP port? [587]: [SMTP邮件服务器端口] SMTP user name? [user@example.com]: [论坛自动发信邮箱账号,qq邮箱名] SMTP password? [pa$$word]: [论坛自动发信邮箱账号的密码,qq邮箱授权码] Let's Encrypt account email? (ENTER to skip) [me@example.com]: [自动更新证书的通知邮箱地址]
设置之后先不要往下继续走,先编辑
containers/app.yml
中的DISCOURSE_NOTIFICATION_EMAIL
,这个是系统通知邮箱,一定要设置成正确的邮箱地址,不然系统的邮箱会发送不出来;设置的各个属性如下:## TODO: The SMTP mail server used to validate new accounts and send notifications # SMTP ADDRESS, username, and password are required # WARNING the char '#' in SMTP password can cause problems! DISCOURSE_SMTP_ADDRESS: smtp.qq.com DISCOURSE_SMTP_PORT: 25 # 25,465/587 DISCOURSE_SMTP_USER_NAME: example@qq.com # 邮箱账号 DISCOURSE_SMTP_PASSWORD: "xxxxxxxxxxxxx" # SMTP授权码/用户登录密码 # DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none # DISCOURSE_SMTP_AUTHENTICATION: login DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true) DISCOURSE_SMTP_DOMAIN: example.com # 网站域名 DISCOURSE_NOTIFICATION_EMAIL: example@qq.com # 邮箱账号(系统用来通知用户的邮箱) ## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate LETSENCRYPT_ACCOUNT_EMAIL: me@example.com
如果
./discourse-setup
一直失败,可以使用./launcher bootstrap app
或者./launcher rebuild app
-
如果是https网站,则将你的证书放到/var/discourse/shared/standalone/ssl目录下
-
launcher restart app
现在可以访问域名
尝试注册管理员,注册时使用管理员邮箱,自动注册管理员用户 -
launcher enter app
如果没有创建好管理员,则用命令创建管理员rake admin:create
现在用户就可以正常注册了
参考文章
[4] Discourse中文论坛