1.简要介绍
Discourse 是由 Stack Overflow 创始人之一的 Jeff Atwood 主导的开源论坛项目,使用时能感受到和 Stack Overflow 的关联性,比如为鼓励有效的技术讨论、控制人身攻击等做了很多努力,页面的布局方式也有相似之处。Discourse 提供了非常丰富的配置方式,也支持插件扩展,是值得学习的论坛类开源项目。
本文主要介绍通过 Docker 镜像的方式在虚拟机环境中部署 Discourse 环境,操作系统为 CentOS 7.8。

2、准备

1)硬件需求:

  • 推荐双核vps
  • 最低1 GB RAM(带有swap)
  • 与Docker兼容的64位Linux系统
  • 最小10 GB磁盘空间

2)其他准备

  • 宝塔面板
  • docker管理器(软件商店里安装)
  • 准备一个域名

3、留出80和443端口

安装需要80和443端口,所以最好是在一个全新的宝塔环境里安装该该程序。宝塔面板默认占用了80端口,我们需要稍微修改一下。

1)路径:/www/server/panel/vhost/nginx,把里面的文件端口改为其他,比如808。看图:

注意,这里面的2个默认文件都需要编辑默认的80端口。

4、部署

1)下载程序

git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse

 

2)编辑app.yml

执行复制文件命令

cp samples/standalone.yml containers/app.yml

复制配置文件到 containers 目录
并且根据自己环境配置 app.yml 配置文件,修改以下内内容,特别注意:DISCOURSE_HOSTNAME,这个要配置域名,别使用 IP。

env:
    # 设置为中文
  LANG: zh_CN.UTF-8
  DISCOURSE_DEFAULT_LOCALE: zh_CN
  # 指向这台主机的域名,很多服务器这里不能配置IP地址,否则会导致安装失败,建议直接配置IP
  DISCOURSE_HOSTNAME: 'it.iotschool.com'
  # 这里需要设置邮箱账户用户名
  DISCOURSE_DEVELOPER_EMAILS: 'xx@qq.com'
  DISCOURSE_SMTP_ADDRESS: smtp.qq.com
  DISCOURSE_SMTP_PORT: 587
  # 这里需要设置邮箱账户
  DISCOURSE_SMTP_USER_NAME: xx@qq.com
  # 这里需要设置邮箱账户密码(如果是QQ邮箱,这里是一个授权码)
  DISCOURSE_SMTP_PASSWORD: xxx
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, default true)
  # 设置discourse 存储数据路径,/home/discourse_docker就是你下载discourse 的路径
  volumes:
  - volume:
      host: /home/discourse_docker/shared/standalone
      guest: /shared
  - volume:
      host: /home/discourse_docker/shared/standalone/log/var-log
      guest: /var/log

3)启动安装

在程序根目录,输入以下命令开始安装。

./discourse-setup

 

4)在提示时回答以下问题例如:

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]:

 

之后,我们需要等2到8分钟的时间安装程序!!

5)如果需要更换域名,或者其他,你需要编辑app.yml文件。编辑好后,输入以下命令让修改生效。

./launcher rebuild app

 

5、安装向导

1)上面的程序安装完成后,打开你的域名便可以访问了。

2)注册新帐户并成为管理员,使用引导前输入的电子邮件地址之一注册一个新的管理员帐户。

3)注册成功,要验证邮箱,所以前面的smtp一定要配置正确。

4)注册管理员帐户后,安装向导将启动并指导您完成Discourse的基本配置。

5)完成设置向导后,您应该看到Staff主题和README FIRST:Admin快速入门指南

6、升级版本

随着新版本的Discourse的发布,您将收到电子邮件提醒。请保持最新状态以获取最新功能和安全修复程序。要将Discourse升级到最新版本,请/admin/upgrade在浏览器中访问,然后单击“升级”按钮。

launcher命令/var/discourse可用于各种维护,如下:

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: Use nsenter to get a shell into a 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

 

举个列子:

./launcher rebuild app

 

7、最后

上面的app就是容器的名称,看图:

用宝塔来安装还是有点繁琐的,你如果用80端口,还需要修改宝塔默认占用的80端口。

参考:

https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md

https://meta.discourse.org/t/running-other-websites-on-the-same-machine-as-discourse/17247

其他:安装主题或扩展组件
管理员登录-设置-自定义-主题:

有多种安装方式:1.直接在线安装,需要访问境外地址,因为众所周知的原因会报502错误;2.本地安装,需要本地有主题或扩展组件的文件包;3.从git仓库安装,推荐方式,直接填写git仓库地址即可在线安装。

github上有很多美化主题和扩展组件,如pdf预览组件、搜索框组件、词汇提示等等可根据需要自行安装。

最后修改日期: 2023年3月21日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。