56 搭建Discourse论坛 - xiaoxin01/Blog GitHub Wiki

安装 Docker / Git

wget -qO- https://get.docker.com/ | sh

脚本会自动安装最新版本的docker和git。

注册 / 准备 mail server

discourse需要可以发送邮件才能正常工作,所以需要注册邮件服务,或者使用已有的邮件服务

国际免费的邮件服务如下:

[Mailgun][gun] — 10k emails/month (with credit card)

SMTP server address? smtp.mailgun.org
SMTP user name?      [SMTP credentials for your domain under domains tab]
SMTP password?       [SMTP credentials for your domain under domains tab]

[Elastic Email][ee] — 150k emails/month

SMTP server address? smtp.elasticemail.com
SMTP user name?      [Your registered email address]
SMTP password?       [Elastic Email API Key]
SMTP port?           2525

[SendGrid][sg] — 40k emails on a 30 day trial

SMTP server address? smtp.sendgrid.net
SMTP user name?      apikey
SMTP password?       [SendGrid API Key]

国内可以用阿里云或者sendcloud

安装 discourse

sudo -s
mkdir /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
./discourse-setup

脚本安装需要输入如下内容:

Hostname for your Discourse? [discourse.example.com]: 
Email address for admin account? [[email protected]]: 
SMTP server address? [smtp.example.com]: 
SMTP user name? [[email protected]]: 
SMTP port [587]:
SMTP password? []: 

脚本安装大约需要10分钟左右,完成之后第一次访问站点,向导会要求输入上面admin account的密码以完成管理员账号的注册。

脚本管理 discourse

上述脚本会创建一个名为 app 的docker容器来跑discourse服务,可以通过 launcher 脚本来管理该容器,比如启动、查看log等

/var/discourse# ./launcher
Usage: launcher COMMAND CONFIG [--skip-prereqs] [--docker-args STRING]
Commands:
    start:      Start/initialize a container
    stop:       Stop a running container
    restart:    Restart a container
    destroy:    Stop and remove a container
    enter:      Open a shell to run commands inside the container
    logs:       View the Docker logs for a container
    bootstrap:  Bootstrap a container for the config based on a template
    rebuild:    Rebuild a container (destroy old, bootstrap, start new)
    cleanup:    Remove all containers that have stopped for > 24 hours

Options:
    --skip-prereqs             Don't check launcher prerequisites
    --docker-args              Extra arguments to pass when running docker
    --skip-mac-address         Don't assign a mac address

参考:

⚠️ **GitHub.com Fallback** ⚠️