如何在 Rocky Linux 9 上安裝 Discourse

在本教程中,我們將向您展示如何在 Rocky Linux 9 上安裝 Discourse。對於那些不知道的人來說,Discourse 是一個強大的在線討論和論壇平台,是想要培養的社區和組織的絕佳選擇引人入勝且富有成效的討論。 Discourse 是用 Ruby on Rails 編寫的,使用現代網絡架構,包括實時更新、移動友好的設計和復雜的 API。 它是高度可定制的,並提供一系列旨在使在線討論引人入勝、富有成效且易於訪問的功能。

本文假定您至少具有 Linux 的基本知識,知道如何使用 shell,最重要的是,您在自己的 VPS 上託管您的站點。 安裝非常簡單,假設您在 root 帳戶下運行,如果不是,您可能需要添加 ‘sudo‘ 到獲取 root 權限的命令。 我將向您展示在 Rocky Linux 上逐步安裝 Discourse 開源社區討論平台。 9.

先決條件

  • 運行以下操作系統之一的服務器: 洛基Linux 9.
  • 建議您使用全新的操作系統安裝,以防止出現任何潛在問題。
  • 通過 SSH 訪問服務器(如果您在桌面上,則只需打開終端)。
  • 有效的互聯網連接。 您需要互聯網連接才能下載 Discourse 所需的包和依賴項。
  • 一種 non-root sudo user或訪問 root user. 我們建議充當 non-root sudo user,但是,如果您在充當根用戶時不小心,可能會損害您的系統。

在 Rocky Linux 9 上安裝 Discourse

步驟 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 "[email protected]"

要驗證您的姓名和電子郵件是否已配置:

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。

首先,我們將官方的 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。

下載 Discourse Docker 鏡像後,下一步就是配置它。 您可以通過編輯 containers/app.yml 文件。 這是一個 example 如何配置文件:

cp samples/standalone.yml containers/app.yml
nano containers/app.yml

設置變量 DISCOURSE_HOSTNAME 到域名:

DISCOURSE_HOSTNAME: 'your-domain.com'

換線 "80:80"8080:80". 這會將 Discourse 的外部 HTTP 端口更改為 8080,因為我們將在端口 80 使用 Nginx。註釋掉 "443:443":

expose:
  - "8080:80"   # http
 #- "443:443"   # https

為您的管理員設置電子郵件:

DISCOURSE_DEVELOPER_EMAILS: '[email protected],[email protected]'

設置 SMTP 設置:

ISCOURSE_SMTP_ADDRESS: smtp.your-domain.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: [email protected]
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: n[email protected]    # (address to send notifications from)

步驟 5. 在 Rocky Linux 9 上安裝 Discourse。

配置文件設置完成後,我們可以使用以下命令啟動Discourse:

sudo ./launcher bootstrap app

啟動 Discourse 應用程序:

sudo ./launcher start app

步驟 6. 為 Discourse 安裝和配置 Nginx。

默認情況下,Nginx 在 Rocky Linux 9 基礎存儲庫中不可用。 現在運行以下命令將 Nginx 穩定存儲庫添加到您的系統:

sudo tee /etc/yum.repos.d/nginx-stable.repo<<EOF
[nginx-stable]
name=nginx stable repo
baseurl=https://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

這是一個 example 如何配置 Nginx 來服務 Discourse:

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 https://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 "";
}

Save 和 close 該文件,然後重新啟動 Nginx 服務以啟用新配置:

sudo systemctl restart nginx

有關安裝 Nginx 的其他資源,請閱讀以下帖子:

  • 如何在 Rocky Linux 上安裝 Nginx √

步驟 7. 安全對話 Let’s Encrypt SSL。

首先,使用以下命令安裝 Certbot 客戶端:

sudo dnf install certbot python3-certbot-nginx

接下來,獲取您的 SSL 證書 Let’s Encrypt 通過執行以下步驟:

sudo certbot --nginx -d your-domain.com

Let’s Encrypt 證書的有效期為 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 步。訪問 Discourse Web 界面。

成功安裝後,打開您的網絡瀏覽器並使用 URL 訪問 Discourse Web UI https://.your-domain.com. 您應該會看到以下頁面:

恭喜! 您已經成功安裝了 Discourse。 感謝您使用本教程在您的 Rocky Linux 9 系統上安裝 Discourse 討論平台。 如需更多幫助或有用信息,我們建議您查看 官方話語網站.