此文档用于指导如何在Ubuntu(版本号:16.04)下进行基于Docker的Discourse安装及基本配置
作者: Chris Mao(Zibing)
日期:28, Feb, 2018
1.安装依赖组件
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
2.安装CA证书
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
3.添加Docker仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
4.更新源列表
sudo apt-get update
5.安装Docker CE版
sudo apt-get install docker-ce
6.检查Docker版本,确认安装是否成功
docker --version
7.设置开机Docker自启功能
sudo systemctl enable docker
1.创建安装目录
mkdir /var/discourse
2.下载源码到目录/var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse
3.执行安装命令
cd /var/discourse
./discourse-setup
小提示:
在安装过程中,如果出现Port 80 appears to already be in use的提示,则表示当前机器上的80端口被其他程序占用,多数情况下应该是被Apache占用,请使用以下方法修改Apache的监听端口。
# 停掉Apache服务
service apache2 stop
# 修改Apache的监听端口,将listen 80改为8080(或是其他端口号),保存后退出
vim /etc/apache2/ports.conf
# 重启Apache服务
service apache2 start
在安装过程中,需要回答以下问题,安装程序会根据您的输入在/var/discourse/containers目录中自动生成名为app.yml的配置文件。
- 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? []:
小提示:
如果在回答上述问题的过程发现某个问题回答错误了,想要修改怎么办呢?
不必着急,在您回答完所有问题之后,Discourse会让您确认输入是否正确,如果想要修改上述某个配置,可以输入”n”来重新录入配置参数。这里再插入一句,Discourse安装过程中的人机交互是很友好的,之前填写过的内容会作为下一轮回答的默认值,不必用户重复录入。
接下来就是一个相对漫长的等待过程…… 冲杯咖啡,远眺一下 ^_^
安装完成后,可以直接在浏览器中使用配置的域名或IP地址来访问Discourse。如果在浏览器中看到如下界面,表示Discourse安装成功。
小提示:
如果是在VMware中安装的Ubuntu系统,请确保虚拟机的网络适配器使用的是桥接模式,否则除宿主机以外的局域网内的电脑是无法访问到虚拟机的。
如果出现网页无法打开的情况,请检查Ubuntu的防火墙是否关闭。
小提示:
可以使用以下命令关闭防火墙。
sudo ufw disable
在Discourse成功安装之后,我们需要使用配置中的“DISCOURSE_DEVELOPER_EAILS”参数中的任意一个邮件注册帐号,并自动成为管理员。如果一直未能收到帐号激活邮件,请检查配置文件中关于SMTP部分的配置是否正确。另外也可以通过以下命令手工创建管理员帐号。
./launcher enter app
rake admin:create
1.修改配置文件,添加插件仓库。
打开/var/discourse/container目录下的app.yml文件,找到##Plugins go here这一行,并在cmd之后添加欲安装的插件仓库地址。示例如下。
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
# Install voting Plugin
git clone https://github.com/discourse/discourse-voting.git
2.重新编译Docker容器
cd /var/discourse
./launcher rebuild app
在Discourse成功安装之后,我们可以根据实际的要求对其进行配置。以下配置无先后顺序。
设置路径:admin/site_settings/category/basic
勾选参数“allow user locale”
同样的方式,还可以设置”logo small url”, ”digest logo url”, ”mobile logo url”, ”favicon url”, ”large icon url”, ”apple touch icon url”
设置路径:admin/site_settings/category/login
勾选参数“login required”
设置路径:admin/site_settings/category/basic
修改参数”top menu”中首页菜单项的顺序
设置路径:admin/site_settings/category/security
在参数“allowed iframes”中添加视频来源的域,例:https://midea.xjtlu.edu.cn
设置路径:admin/groups/custom
如果把Discourse设为一个相对私密的网站,不允许用户自行注册登录帐号,那么就需要管理员手工为其创建。这里介绍一种批量创建用户帐号的方法。
准备一个CSV文件,其格式要求如下:
1. 每个用户单独一行,栏位顺序为:邮件地址,用户组,主题编号
2. 请确保邮件地址的有效性
3. 如果需要为单一用户关联多个用户组,请使用英文模式下的分号(;)分隔,如group_1;group_2;group_3
4. 用户组和主题编号都为空时,邮件地址后不允许出现任何分隔符
使用管理员帐号登录后,打开用户邀请页面(访问路径u/admin/invited/pending),上传用户清单文件即可完成用户邀请工作。每位用户都会收到一封邀请邮件,自行完成帐号创建的后续工作。
更多信息,请参考官方论坛。
设置路径:admin/groups/bulk
小提示:
此功能只对自定义组有效。