Discourse 安装部署教程
官方部署教程:
拉取 discourse 项目文件
sudo -s
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
chmod 700 containers
开始部署:
- 启动设置工具(discourse-setup)
./discourse-setup
- 填写对应的信息
Hostname for your Discourse? [discourse.example.com]: #填写你的域名,discourse不允许 IP 访问
Email address for admin account(s)? [me@example.com,you@example.com]: #填写你的管理员邮箱
SMTP server address? [smtp.example.com]: #SMTP服务器地址
SMTP port? [587]: #SMTP端口
SMTP user name? [user@example.com]: # SMTP 账户
SMTP password? [pa$$word]: # SMTP 密码/密钥/应用专用密码
Let's Encrypt account email? (ENTER to skip) [me@example.com]: #申请证书的邮箱
Optional Maxmind License key () [xxxxxxxxxxxxxxxx]: # 默认可以回车自动设置
- 手动配置 App.yml (上面的输入数据将会为你的 Discourse 实例创建一个
app.yml
文件,这个文件将会在安装进行后对你的 Discourse 实例进行配置。上面的输入数据将会为你的 Discourse 实例创建一个app.yml
文件,这个文件将会在安装进行后对你的 Discourse 实例进行配置)
- App.yml 是 discourse 安装的配置文件,路径在 /var/discoure/containers/app.yml
- app.yml 配置教程以及解析
配置文件解析(翻译)
暂时没空写
开始安装
如果你选择了手动部署,请在 Discourse 的目录输入
./launcher rebuild app
app 指的是你的配置文件名
,默认
就是 app.yml
安装会拉取镜像,整个安装过程一般在8-10分钟左右
Discourse 常用命令
重建服务
./launcher rebuild app
清理缓存
./launcher cleanup
执行安装
./discourse-setup
开启永久删除
./launcher enter app
rails c
SiteSetting.can_permanently_delete = true
荷包蛋踩坑教程-部署非正常端口
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
端口)。expose: - "3333:80" # http # - "443:443" # https
配置文件示例:
Hostname for your Discourse? [discourse.example.com]: # 填写你的域名,Discourse 不允许 IP 访问 Email address for admin account(s)? [me@example.com,you@example.com]: # 填写你的管理员邮箱 SMTP server address? [smtp.example.com]: # SMTP 服务器地址 SMTP port? [587]: # SMTP 端口 SMTP user name? [user@example.com]: # SMTP 账户 SMTP password? [pa$word]: # SMTP 密码/密钥/应用专用密码 Let's Encrypt account email? (ENTER to skip) [me@example.com]: # 申请证书的邮箱 Optional Maxmind License key () [xxxxxxxxxxxxxxxx]: # 默认可以回车自动设置
部署安装
./launcher rebuild app
然后就可以开始部署了。如果需要 HTTPS
,可以自己安装一个 Nginx
,反代你设置的 HTTP 端口,然后申请 SSL 证书即可(建议开启强制 HTTPS
)。
其他说明
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: 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
UNICORN_WORKERS
指的是启动工作的数量,一般建议设置为1-4 ,之前遇到的内存暴增就是这个原因,他默认是根据你的服务器性能设置的
db_shared_buffers
这个也是一样,不需要太大256MB-2048MB 都行
配置插件之后,如果 rebuild
失败,可以通过 ./discourse-doctor
命令来查看部署失败的原因(前提是配置文件为默认的 app 名字)
重构失败问题
如果你一直重构失败,请先考虑看看插件是不是安装了非官方的导致不兼容
其次重构的时候留意一下是不是RAM都吃满了,加个 SWAP
也许能解决