discourse网站搭建

环境准备

  1. ubuntu18
  2. 设置一个域名,例如discourse.example.com,添加NDS使其能够解析该域名
  3. sudo apt-get install docker.io ruby git
  4. 等会需要一个邮箱服务器,这里介绍用qq邮箱普通用户每天100封,选取一个qq邮箱名,获取授权码(SMTP的密码)

    附:邮箱测试http://tool.chacuo.net/mailserversend
  5. 如果想搭建一个https网站,准备一份网站的可信证书(.crt和.key),或者自签名证书也可以

安装

  1. 建议全程用root权限

    sudo -s
    git clone https://github.com/discourse/discourse_docker.git /home/discourse
    cd /home/discourse
    
  2. 如果是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
    
  3. 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

  4. 如果是https网站,则将你的证书放到/var/discourse/shared/standalone/ssl目录下

  5. launcher restart app
    现在可以访问域名

    尝试注册管理员,注册时使用管理员邮箱,自动注册管理员用户

  6. launcher enter app
    如果没有创建好管理员,则用命令创建管理员

    rake admin:create
    

    现在用户就可以正常注册了

参考文章

[1] 用全站 CDN 部署 Discourse 论坛

[2] 在阿里云上搭建Discourse轻论坛教程

[3] 在同一台机器上运行 Discourse 和其他站点

[4] Discourse中文论坛

posted @ 2020-06-21 17:46  Macrored  阅读(1251)  评论(0编辑  收藏  举报