在Ubuntu(16.04)下进行基于Docker的Discourse安装及基本配置

Discourse安装配置指导手册

此文档用于指导如何在Ubuntu(版本号:16.04)下进行基于Docker的Discourse安装及基本配置
作者: Chris Mao(Zibing)
日期:28, Feb, 2018

Reference 参考引用

  • Docker安装指导
  • Discourse Docker

Docker安装

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

Discourse安装

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安装成功。

在Ubuntu(16.04)下进行基于Docker的Discourse安装及基本配置_第1张图片

小提示:
如果是在VMware中安装的Ubuntu系统,请确保虚拟机的网络适配器使用的是桥接模式,否则除宿主机以外的局域网内的电脑是无法访问到虚拟机的。

如果出现网页无法打开的情况,请检查Ubuntu的防火墙是否关闭。

小提示:
可以使用以下命令关闭防火墙。

sudo ufw disable

Setup Administrater Account

在Discourse成功安装之后,我们需要使用配置中的“DISCOURSE_DEVELOPER_EAILS”参数中的任意一个邮件注册帐号,并自动成为管理员。如果一直未能收到帐号激活邮件,请检查配置文件中关于SMTP部分的配置是否正确。另外也可以通过以下命令手工创建管理员帐号。

./launcher enter app
rake admin:create

Discourse Plugin安装

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配置

在Discourse成功安装之后,我们可以根据实际的要求对其进行配置。以下配置无先后顺序。

User Localization

设置路径:admin/site_settings/category/basic
勾选参数“allow user locale”

在Ubuntu(16.04)下进行基于Docker的Discourse安装及基本配置_第2张图片

Logo Icon

  1. 搜索“Assets for the site design”主题
  2. 以回贴方式将要使用的Logo文件上传到网站
  3. 获取图片上传后的URL地址
  4. 打开admin/site_settings/category/required,把上一步获取到的图片URL粘贴到”logo url”参数中

同样的方式,还可以设置”logo small url”, ”digest logo url”, ”mobile logo url”, ”favicon url”, ”large icon url”, ”apple touch icon url”

在Ubuntu(16.04)下进行基于Docker的Discourse安装及基本配置_第3张图片

Disable Anonymous

设置路径:admin/site_settings/category/login
勾选参数“login required”

在Ubuntu(16.04)下进行基于Docker的Discourse安装及基本配置_第4张图片

Change Homepage

设置路径:admin/site_settings/category/basic
修改参数”top menu”中首页菜单项的顺序

在Ubuntu(16.04)下进行基于Docker的Discourse安装及基本配置_第5张图片

Media iFrame

设置路径:admin/site_settings/category/security
在参数“allowed iframes”中添加视频来源的域,例:https://midea.xjtlu.edu.cn

Define Groups

设置路径:admin/groups/custom

在Ubuntu(16.04)下进行基于Docker的Discourse安装及基本配置_第6张图片

Bulk User Invites

如果把Discourse设为一个相对私密的网站,不允许用户自行注册登录帐号,那么就需要管理员手工为其创建。这里介绍一种批量创建用户帐号的方法。

准备一个CSV文件,其格式要求如下:
1. 每个用户单独一行,栏位顺序为:邮件地址,用户组,主题编号
2. 请确保邮件地址的有效性
3. 如果需要为单一用户关联多个用户组,请使用英文模式下的分号(;)分隔,如group_1;group_2;group_3
4. 用户组和主题编号都为空时,邮件地址后不允许出现任何分隔符

文件样例:
在Ubuntu(16.04)下进行基于Docker的Discourse安装及基本配置_第7张图片

使用管理员帐号登录后,打开用户邀请页面(访问路径u/admin/invited/pending),上传用户清单文件即可完成用户邀请工作。每位用户都会收到一封邀请邮件,自行完成帐号创建的后续工作。

在Ubuntu(16.04)下进行基于Docker的Discourse安装及基本配置_第8张图片

更多信息,请参考官方论坛。

Bulk Add to Group

设置路径:admin/groups/bulk

在Ubuntu(16.04)下进行基于Docker的Discourse安装及基本配置_第9张图片

小提示:
此功能只对自定义组有效。

你可能感兴趣的:(Discouse)