安装Discourse论坛系统

购买服务器

打开网站:https://www.rainyun.com/YHLSTORE_   (此链接已经包含优惠码,注册可以自动领取优惠卷哦),点击"登录/注册”


并点击下面的注册按钮,填入相关信息并验证即可:


注:注册按钮在某些设备可能被偷吃,请缩小网页,就能看到啦!

注册完成后,跳转主页,找到云服务器-->立即购买,选择配置:


图中所示宿迁E5v2入门版一月仅需14元,还可以使用优惠劵进一步骨折

如何安装 Discourse?

:bell:

 唯一官方支持的 Discourse 安装是基于 Docker 的。您必须对支持 Docker 的 64 位 Linux 服务器具有 SSH 访问权限。很遗憾,我们无法支持任何其他安装方法,包括 cpanel、plesk、webmin 等。

为什么只正式支持 Docker?

托管 Rails 应用程序很复杂。即使你的服务器上已经安装了 Postgres、Redis 和 Ruby,你仍然需要担心运行和监控你的 Sidekiq 和 Rails 进程,以及配置 Nginx。借助 Docker,您可以在一个简单的容器中使用我们完全优化的 Discourse 配置,以及基于 Web 的 GUI,只需单击按钮即可轻松升级到新版本的 Discourse。

硬件要求

  • 现代单核CPU,推荐双核
  • 至少 1 GB RAM(带交换)
  • 64 位 Linux 与 Docker 兼容
  • 至少 10 GB 磁盘空间

软件要求

安装 Docker 的先决条件(基于 Debian/Ubuntu 的发行版示例)

 

sudo apt install docker.io sudo apt install git

安装

官方 Docker 映像克隆到 ./var/discourse

 

sudo -s git clone https://kkgithub.com/discourse/discourse_docker.git /var/discourse cd /var/discourse chmod 700 containers

您将需要通过其余的设置和引导过程成为 root。

编辑配置

启动设置工具,网址为

 

./discourse-setup

出现提示时,请回答以下问题:

 

Hostname for your Discourse? [discourse.example.com]: Email address for admin account(s)? [me@example.com,you@example.com]: SMTP server address? [smtp.example.com]: SMTP port? [587]: SMTP user name? [user@example.com]: SMTP password? [pa$word]: Let's Encrypt account email? (ENTER to skip) [me@example.com]: Optional Maxmind License key () [xxxxxxxxxxxxxxxx]:

您将从电子邮件设置中获取 SMTP 详细信息,请务必完成该部分。

Let’s Encrypt 帐户设置是为您的网站提供免费的 HTTPS 证书,如果您希望您的网站安全,请务必进行设置。

这将代表您生成一个配置文件,然后启动引导程序。引导需要 2-8 分钟来设置您的话语。如果需要在引导后更改这些设置,可以再次运行(它将重新使用文件中以前的值)或使用 和 手动编辑,否则您的更改将不会生效。app.yml ./discourse-setup /containers/app.yml nano ./launcher rebuild app

开始讨论

引导完成后,您的 Discourse 应该可以通过您之前输入的域名在您的 Web 浏览器中访问。discourse.example.com

注册新帐户并成为管理员

使用您在引导之前输入的电子邮件地址之一注册一个新的管理员帐户。

(如果您无法注册管理员帐户,请查看日志并查看我们的电子邮件故障排除清单/var/discourse/shared/standalone/log/rails/production.log

注册管理员帐户后,设置向导将启动并指导您完成 Discourse 的基本配置。

完成设置向导后,将出现一个弹出窗口,欢迎您访问新站点。它还会将您链接到管理员指南,我们强烈建议您立即查看并经常参考。该指南提供了设置清单、有关如何成功启动社区的重要指导以及故障排除提示。

安装后维护

  • 我们强烈建议您为操作系统启用自动安全更新。在 Ubuntu 中,请使用以下命令。在 CentOS/RHEL 中,使用 yum-cron 组件。dpkg-reconfigure -plow unattended-upgrades
  • 如果您使用的是密码而不是 SSH 密钥,请务必强制使用强 root 密码。在 Ubuntu 中,使用该包。我们还建议在 10 分钟内阻止任何尝试超过 3 次密码重试的 IP 地址。apt install libpam-cracklib fail2ban
    • Ubuntu的:apt install fail2ban
    • CentOS/RHEL操作系统:sudo dnf install fail2ban
  • 如果您需要或想要默认防火墙,请为 Ubuntu 打开 ufw 或为 CentOS/RHEL 打开。firewalld

:bulb:

 当 Discourse 的新版本发布时,Discourse 将向您发送电子邮件通知。请保持最新状态以获取最新功能和安全修复程序。

将 Discourse 升级到最新版本,请在浏览器中访问并单击“升级”按钮。https://discourse.example.com/admin/upgrade

或者,您可以通过 ssh 连接到服务器并使用以下命令进行重建:

 

cd /var/discourse git pull ./launcher rebuild app

文件夹中的命令可用于各种维护:launcher /var/discourse

 

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

(可选)添加更多功能

你想要吗。。。

【附】 官方高级安装教程(Github机翻

话语 Docker 镜像

大约

  • Docker 是一个开源项目,用于在比传统虚拟机更轻、更快速的容器中打包、交付和运行任何 Linux 应用程序。
  • Docker 使在服务器上部署 Discourse 论坛并保持更新变得更加容易。有关背景信息,请参阅 Sam 的博客文章
  • 模板和基础映像使用 Discourse 团队推荐的最佳默认值配置 Discourse。

开始

最简单的入门方法是通过独立模板,该模板可以在 30 分钟或更短的时间内完成安装。有关详细的安装说明,请参阅

GitHub

discourse/docs/INSTALL-cloud.md at main · discourse/discourse

A platform for community discussion. Free, open, simple. - discourse/discourse

目录结构

/cids

包含当前正在运行的 Docker 容器的容器 ID。cids 是 Docker 的 pid 的“等价物”。每个容器都有一个唯一的 git,如哈希。

/containers

此目录用于各种话语容器的容器定义。你负责这个目录,它是空的。

/samples

可用于引导环境的示例容器定义。您可以将模板从此处复制到 containers 目录中。

/shared

具有各种话语容器的共享卷的占位符位置。您可以选择将某些持久性信息存储在容器之外,在我们的例子中,我们会将各种日志文件和上传目录保存在外面。这使您可以轻松地重建容器,而不会丢失重要信息。通过将上传内容保留在容器之外,可以在多个 Web 实例之间共享它们。

/templates

可用于引导环境的 PUPS 托管模板。

/image

用于话语的 Dockerfiles;有关详细信息,请参阅自述文件

Docker 存储库将始终包含最新的生成版本,位于: https://hub.docker.com/r/discourse/base/,您不需要生成基础映像。

发射

基目录包含一个用于管理容器的 bash 脚本。您可以使用它来“引导”新容器,进入、启动、停止和销毁容器。

 

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: Open a shell to run commands inside the container logs: View the Docker logs for a container bootstrap: Bootstrap a container for the config based on a template run: Run the given command with the config in the context of the last bootstrapped image rebuild: Rebuild a container (destroy old, bootstrap, start new) cleanup: Remove all containers that have stopped for > 24 hours start-cmd: Generate docker command used to start container

如果环境变量“SUPERVISED”设置为 true,则不会分离容器,从而允许进程监视工具管理容器的重启行为。

容器配置

容器定义的开头可以包含以下“特殊”部分:

模板:

templates: - ‘templates/cron.template.yml’ - ‘templates/postgres.template.yml’

此模板由所有这些子模板“组成”,这允许非常灵活的配置结构。此外,您可以添加特定的钩子来扩展您引用的模板。

暴露:

expose: - ‘2222:22’ - ‘127.0.0.1:20080:80’

在所有本地主机接口上的端口 2222 上发布容器内的端口 22。为了仅绑定到一个接口,您可以指定主机的 IP 地址,如 docker 端口绑定文档中所定义。要在不发布端口的情况下公开端口,请仅指定端口号(例如 )。([<host_interface>:[host_port]])|(<host_port>):<container_port>[/udp] 80

卷:

volumes: - volume: host: /var/discourse/shared guest: /shared

向容器公开主机内的目录。

链接:

links: - link: name: postgres alias: postgres

将另一个容器链接到当前容器。这将在运行容器时添加到选项中。--link postgres:postgres

环境变量:

将环境变量设置为当前容器。

env: DISCOURSE_DB_HOST: some-host DISCOURSE_DB_NAME: ‘{{config}}_discourse’

上述内容将在运行容器时添加到选项中。-e DISCOURSE_DB_HOST=some-host -e DISCOURSE_DB_NAME=app_discourse

标签:

labels: monitor: ‘true’ app_name: ‘{{config}}_discourse’

向当前容器添加标签。以上将添加到选项中 运行容器时--l monitor=true -l app_name=dev_discourse

升级话语

Docker 设置为您提供了多个升级选项:

  1. 使用 http://yoursite.com/admin/upgrade 的前端升级已运行的映像。
  2. 通过运行以下命令手动创建新的基础映像:./launcher rebuild my_image

单容器与多容器

samples 目录包含一个独立模板。此模板将运行 Discourse 所需的所有软件捆绑到一个容器中。优点是很容易。

多容器配置设置更加灵活和可靠,但设置起来也更加复杂。多容器设置允许您:

  • 最大限度地减少升级到新版本 Discourse 时的停机时间。您可以在站点运行时启动新的 Web 进程,并且只有在构建站点后,才能切换新映像。
  • 将您的论坛扩展到多个服务器。
  • 添加服务器以实现冗余。
  • 在更强大的硬件上运行一些必需的服务(例如数据库)。

如果需要多容器设置,请参阅示例目录中的 和 模板。为了简化此过程,将注入一个名为 env var,该变量将在映像中可用。data.yml web_only.yml launcher DISCOURSE_HOST_IP

警告:在多容器配置中,请确保设置 iptables 或其他防火墙来保护各种端口(用于 postgres/redis)。 在 Ubuntu 上,安装 or 包以管理防火墙规则。ufw iptables-persistent

电子邮件

要使 Discourse 实例正常运行,必须设置电子邮件。使用 env var 设置 SMTP 地址,有关示例,请参阅示例模板。Docker 映像不包含 postfix、exim 或其他 MTA,它被省略了,因为它非常棘手地正确设置。SMTP_URL

故障 排除

查看容器日志:./launcher logs my_container

使用 在容器内生成一个 shell。如果您具有主机root访问权限,这是最万无一失的方法。./launcher enter my_container

如果您在尝试检索代码时遇到网络错误或重试 - 有时会出现暂时中断,只需重试即可。github.com rubygems.org

在无法直接访问互联网的代理网络后面?通过添加到文件中的现有块,将代理信息添加到容器环境中:env container.yml

env: …existing entries… HTTP_PROXY: http://proxyserver:port/ http_proxy: http://proxyserver:port/ HTTPS_PROXY: http://proxyserver:port/ https_proxy: http://proxyserver:port/

安全

Linux 中的目录权限是基于 UID/GID 的,如果您的数字 ID 在 host 与 guest 中的 ID 不匹配,权限将不匹配。在清洁 安装,您可以通过查看 和 来确保它们同步,话语帐户将具有 UID 1000。/etc/passwd /etc/group

高级主题

许可证

麻省理工学院

  • 31
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值