如何在 Rocky Linux 9 上安装 Discourse。

Discourse是在线讨论和论坛的强大平台,对于希望促进引人入胜和富有成效的讨论的社区和组织来说,这是一个不错的选择。Discourse是用Ruby on Rails编写的,并使用现代Web架构,包括实时更新,移动友好的设计和复杂的API。它是高度可定制的,并提供一系列功能,旨在使在线讨论引人入胜、富有成效且易于访问。discourse-logo)" 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

discourse-web-interface

感谢您使用本教程在您的 Rocky Linux 9 系统上安装 Discourse 讨论平台。如需其他帮助或有用信息,我们建议您查看官方话语网站

未经允许不得转载:统信UOS之家 » 如何在 Rocky Linux 9 上安装 Discourse。

相关文章