Discourse是在线讨论和论坛的强大平台,对于希望促进引人入胜和富有成效的讨论的社区和组织来说,这是一个不错的选择。Discourse是用Ruby on Rails编写的,并使用现代Web架构,包括实时更新,移动友好的设计和复杂的API。它是高度可定制的,并提供一系列功能,旨在使在线讨论引人入胜、富有成效且易于访问。)" data-mce-src="https://idroot.us/wp-content/uploads/2021/11/discourse-logo.png">
在 Rocky Linux 9 上安装 Discourse(英语:Rocky Linux <>)
第 1 步。第一步是将系统更新到最新版本的软件包列表。为此,请运行以下命令:
sudo dnf check-update sudo dnf install dnf-utils epel-release
第 2 步。安装 Git。
默认情况下,Git 在 Rocky Linux 9 AppStream 存储库中可用。现在运行以下命令将稳定版本的 Git 安装到您的系统中:
sudo dnf install git
您可以使用以下命令验证已安装的版本:
git --version
现在我们设置标准设置,例如名称和电子邮件,主要围绕 git 提交消息:
git config --global user.name "idroot" git config --global user.email "godetz@idroot.us"
要验证您的姓名和电子邮件是否已配置,请执行以下操作:
git config --list
有关安装 Git 的其他资源,请阅读下面的帖子:
- 如何在 Rocky Linux √ 上安装 Git
第 3 步。安装 Docker。
默认情况下,Docker 在 Rocky Linux 9 基础存储库中不可用。现在运行以下命令将 Docker CE 存储库添加到您的系统中:
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
将存储库添加到系统后,现在运行以下命令来安装 Docker CE Rocky Linux:
sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin --allowerasing
安装完成后,在 Rocky Linux 上启动 Docker 服务,并使其在系统启动时自动运行:
sudo systemctl enable docker
sudo systemctl start docker
接下来,使用以下命令将用户添加到 Docker 组:
sudo usermod -aG docker $USER
然后,创建一个新组:
newgrp docker
验证是否已安装 Docker 版本:
docker version
有关安装 Docker 的其他资源,请阅读下面的帖子:
- 如何在 Rocky Linux √ 上安装 Docker。
第 3 步。下载话语。
首先,我们将官方的 Discourse Docker GitHub 仓库克隆到目录:/var/discourse
sudo git clone https://github.com/discourse/discourse_docker.git /var/discourse
接下来,切换到 Discourse 目录并从目录中删除写入和可执行权限:containers
cd /var/discourse sudo chmod 700 containers
第 4 步。配置话语。
下载 Discourse Docker 镜像后,下一步是对其进行配置。您可以通过编辑文件来执行此操作。下面是如何配置文件的示例:containers/app.yml
cp samples/standalone.yml containers/app.yml nano containers/app.yml
将变量设置为域名:DISCOURSE_HOSTNAME
DISCOURSE_HOSTNAME: 'your-domain.com'
将行更改为 。这会将 Discourse 的外部 HTTP 端口更改为 8080,因为我们将在端口 80 使用 Nginx。注释掉:"80:80
"8080:80"
"443:443"
expose: - "8080:80" # http #- "443:443" # https
为管理员设置电子邮件:
DISCOURSE_DEVELOPER_EMAILS: 'idroot@your-domian.com,admin@your-domian.com'
设置 SMTP 设置:
ISCOURSE_SMTP_ADDRESS: smtp.your-domain.com DISCOURSE_SMTP_PORT: 587 DISCOURSE_SMTP_USER_NAME: user@your-domain.com DISCOURSE_SMTP_PASSWORD: your-strong-smtp-password #DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true) DISCOURSE_SMTP_DOMAIN: your-domain.com # (required by some providers) DISCOURSE_NOTIFICATION_EMAIL: noreply@your-domain.com # (address to send notifications from)
第5步。在 Rocky Linux 9 上安装 Discourse。
配置文件设置好后,我们可以使用以下命令启动 Discourse:
sudo ./launcher bootstrap app
启动话语应用程序:
sudo ./launcher start app
第 6 步。安装和配置 Nginx for Discourse。
默认情况下,Nginx 在 Rocky Linux 9 基础存储库中不可用。现在运行以下命令将 Nginx 稳定存储库添加到您的系统中:
sudo tee /etc/yum.repos.d/nginx-stable.repo<<EOF [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/9/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true EOF
现在,运行以下命令将 Nginx 的最新稳定版本安装到您的服务器上:
sudo dnf update
sudo dnf install nginx
安装完成后,启动 Nginx 服务并使其能够在重新启动时自动启动,一次性完成:
sudo systemctl enable --now nginx
要验证是否已安装最新版本的 Nginx,请运行:
nginx -v
下面是一个如何配置 Nginx 以服务于话语的示例:
nano /etc/nginx/conf.d/discourse.conf
添加以下文件:
# enforce HTTPS server { listen 80; listen [::]:80; server_name discourse.example.com; location / { return 301 https://$host$request_uri; } } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name discourse.example.com; access_log /var/log/nginx/discourse.access.log; error_log /var/log/nginx/discourse.error.log; http2_push_preload on; # Enable HTTP/2 Server Push # Enable TLSv1.3's 0-RTT. Use $ssl_early_data when reverse proxying to # prevent replay attacks. # # @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data ssl_early_data on; # Security / XSS Mitigation Headers # NOTE: X-Frame-Options may cause issues with the webOS app add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; add_header X-Early-Data $tls1_3_early_data; client_max_body_size 100m; location / { proxy_pass http://your-domain.com:8080/; proxy_set_header Host $http_host; proxy_http_version 1.1; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } } # This block is useful for debugging TLS v1.3. Please feel free to remove this # and use the `$ssl_early_data` variable exposed by NGINX directly should you # wish to do so. map $ssl_early_data $tls1_3_early_data { "~." $ssl_early_data; default ""; }
保存并关闭文件,然后重新启动 Nginx 服务以启用新配置:
sudo systemctl restart nginx
有关安装 Nginx 的其他资源,请阅读下面的帖子:
- 如何在 Rocky Linux √ 上安装 Nginx
步骤 7.使用Let's Encrypt SSL保护话语。
首先,使用以下命令安装 Certbot 客户端:
sudo dnf install certbot python3-certbot-nginx
接下来,按照以下步骤使用Let's Encrypt获取SSL证书:
sudo certbot --nginx -d your-domain.com
让我们加密证书的有效期为 90 天,强烈建议在证书过期之前续订证书。您可以通过运行以下命令来测试证书的自动续订:
sudo certbot renew --dry-run
第8步。配置防火墙。
默认情况下,Nginx 侦听端口 80 和 443。如果您的服务器上安装并配置了任何防火墙,则需要通过 firewalld 允许这两个端口。您可以使用以下命令允许它们:
sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload
您可以通过列出当前防火墙设置进行验证:
sudo firewall-cmd --permanent --list-all
第9步。访问话语网络界面。
成功安装后,打开您的 Web 浏览器并使用 URL 访问话语 Web UI。您应该看到以下页面:https://.your-domain.com
感谢您使用本教程在您的 Rocky Linux 9 系统上安装 Discourse 讨论平台。如需其他帮助或有用信息,我们建议您查看官方话语网站。