创建虚拟机
先在电脑上把 Vagrant 安装好,可以参考宁皓网的视频或者文章。为 Discourse 项目创建一个目录,进入这个目录,然后用 Vagrant 初始化一下,指定要使用的 box ,用 chef/centos-7.0 就行。下面是我的步骤:
cd ~/projects
vagrant box list
vagrant init chef/centos-7.0
mkdir discourse
编辑 Vagrantfile ,配置一下共享目录,添加下面这行代码:
config.vm.synced_folder "discourse", "/var/discourse"
再配置一下虚拟机的网络,可以使用私有网络,在 Vagrantfile 里面添加下面这行代码:
config.vm.network "private_network", ip: "192.168.33.188"
启动虚拟机以后,192.168.33.138 就会是这台虚拟机的 IP 地址,你可以编辑本地电脑上的 hosts 文件,手工设置一下虚拟的主机名,去指向这个 IP 地址。
然后启动虚拟机:
vagrant up
安装 Docker
ssh 到虚拟机以后,你要为虚拟机安装 Docker,然后启动它。
vagrant ssh
su
yum install docker -y
systemctl enable docker
systemctl start docker
解决 Docker 不能启动的问题
sudo yum install device-mapper-event-libs -y
安装 Git
rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-13.ius.centos7.noarch.rpm
yum install git2u -y

下载 Discourse
mkdir /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
cp samples/standalone.yml containers/app.yml

配置 Discourse
打开 containers/app.yml ,编辑下面这块:
## TODO: List of comma delimited emails that will be made admin and developer
## on initial signup example 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: 'me@example.com'
## TODO: The domain name this Discourse instance will respond to
DISCOURSE_HOSTNAME: 'discourse.example.com'
## TODO: The mailserver this Discourse instance will use
DISCOURSE_SMTP_ADDRESS: smtp.example.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: user@example.com
DISCOURSE_SMTP_PASSWORD: pa$$word
DISCOURSE_DEVELOPER_EMAILS
这是论坛管理员的电子邮件地址,非常重要,安装好论坛以后,你需要用这个电子邮件去注册一个管理员用户。
DISCOURSE_HOSTNAME
是你为 Discourse 论坛设置的主机名,这个主机名应该是你手工在你电脑上的 hosts 文件里面指定的,这个主机名需要指向虚拟机的 IP 地址。
DISCOURSE_SMTP_*
这些是跟邮件发送服务相关的配置,非常重要,因为你在注册管理员的时候,Discourse 会向你的邮箱里发送一封验证的邮件,如果没有正确配置好邮件发送服务的话,你就收不到这个邮件。
邮件服务,可以使用:https://mandrillapp.com/
初始化并启动 Discourse
cd /var/discourse
./launcher bootstrap app
./launcher start app
第一次初始化的时候,需要等很久,因为要去下载大量的文件。
注册管理员
完成以后,打开浏览器预览您的 Discourse 论坛,然后用您在 app.yml 文件里为管理员指定的邮件地址,去注册一个用户,这个用户就会成为您论坛上的管理员。