Discourse 安装部署教程
Discourse 安装部署教程
官方部署教程:
拉取 discourse 项目文件
1 |
|
开始部署:
- 启动设置工具(discourse-setup)
1 |
|
- 填写对应的信息
1 |
|
- 手动配置 App.yml (上面的输入数据将会为你的 Discourse 实例创建一个
app.yml
文件,这个文件将会在安装进行后对你的 Discourse 实例进行配置。上面的输入数据将会为你的 Discourse 实例创建一个app.yml
文件,这个文件将会在安装进行后对你的 Discourse 实例进行配置)
- App.yml 是 discourse 安装的配置文件,路径在 /var/discoure/containers/app.yml
- app.yml 配置教程以及解析
配置文件解析(翻译)
1 |
|
开始安装
如果你选择了手动部署,请在 Discourse 的目录输入
1 |
|
app 指的是你的配置文件名
,默认
就是 app.yml
安装会拉取镜像,整个安装过程一般在8-10分钟左右
Discourse 常用命令
重建服务
1 |
|
清理缓存
1 |
|
执行安装
1 |
|
开启永久删除
1 |
|
荷包蛋踩坑教程-部署非正常端口
Discourse 部署默认占用80、443端口,如需部署在其他端口,需要修改配置文件
默认占用的端口,会导致我无法使用 Nginx 宝塔等等,浪费了服务器资源
下文将为大家教学如何将 Discourse 部署在非正常端口
首先你需要先拉取 Discourse 项目
修改配置文件
本文不按照官方推荐的必须使用 80/443
端口的方式,也不使用官方容器内部的 Nginx 代理,而是在容器外使用反向代理实现 HTTPS 访问。经过实际测试,这种方式可以成功部署,且邮件服务和文件上传等功能均正常。
郑重提示: 尽量不要按照官方给的部署教程,否则可能会遇到很多问题。
在配置文件中需要特别注意以下几点:
在
templates
部分,一定不要引入以下三个文件:-
"templates/web.socketed.template.yml"
-
"templates/web.ssl.template.yml"
-
"templates/web.letsencrypt.ssl.template.yml"
注意,是一定不要!!!
-
在
expose
部分,容器内部只需要暴露一个80
端口即可。容器外部的端口可以根据需要定义(通过该端口进行反代即可实现 HTTPS,不需要额外暴露443
端口)。1
2
3expose:
- "3333:80" # http
# - "443:443" # https配置文件示例:
1
2
3
4
5
6
7
8Hostname for your Discourse? [discourse.example.com]: # 填写你的域名,Discourse 不允许 IP 访问
Email address for admin account(s)? [[email protected],[email protected]]: # 填写你的管理员邮箱
SMTP server address? [smtp.example.com]: # SMTP 服务器地址
SMTP port? [587]: # SMTP 端口
SMTP user name? [[email protected]]: # SMTP 账户
SMTP password? [pa$word]: # SMTP 密码/密钥/应用专用密码
Let's Encrypt account email? (ENTER to skip) [[email protected]]: # 申请证书的邮箱
Optional Maxmind License key () [xxxxxxxxxxxxxxxx]: # 默认可以回车自动设置
部署安装
1 |
|
然后就可以开始部署了。如果需要 HTTPS
,可以自己安装一个 Nginx
,反代你设置的 HTTP 端口,然后申请 SSL 证书即可(建议开启强制 HTTPS
)。
其他说明
launcher
的功能如下:
1 |
|
UNICORN_WORKERS
指的是启动工作的数量,一般建议设置为1-4 ,之前遇到的内存暴增就是这个原因,他默认是根据你的服务器性能设置的
db_shared_buffers
这个也是一样,不需要太大256MB-2048MB 都行
配置插件之后,如果 rebuild
失败,可以通过 ./discourse-doctor
命令来查看部署失败的原因(前提是配置文件为默认的 app 名字)
重构失败问题
如果你一直重构失败,请先考虑看看插件是不是安装了非官方的导致不兼容
其次重构的时候留意一下是不是RAM都吃满了,加个 SWAP
也许能解决