如何在 Rocky Linux 9 上安装 Discourse。
admin
2023-08-01 00:20:32
0

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

现在,运行以下命令将 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-interfacediscourse-web-interface

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

相关内容

热门资讯

Windows 11 和 10... Windows 11/10 文件夹属性中缺少共享选项卡 – 已修复 1.检查共享选项卡是否可用 右键...
Radmin VPN Wind... Radmin VPN 是一款免费且用户友好的软件,旨在牢固地连接计算机以创建一个有凝聚力的虚拟专用网...
如何修复 Steam 内容文件... Steam 内容文件锁定是当您的 Steam 文件无法自行更新时出现的错误。解决此问题的最有效方法之...
事件 ID 7034:如何通过... 点击进入:ChatGPT工具插件导航大全 服务控制管理器 (SCM) 负责管理系统上运行的服务的活动...
Hive OS LOLMine... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
在 Windows 11 中打... 什么是链路状态电源管理? 您可以在系统控制面板的电源选项中看到链接状态电源管理。它是 PCI Exp...
如何在 iPhone 14 P... Apple 的 iPhone 14 Pro 是第一款配备 48MP 传感器的 iPhone。所有以前...
在 iCloud 上关闭“查找... 如果您是 Apple 的长期用户,您肯定会遇到过 Find My 应用程序,它本机安装在 iPhon...
farols1.1.501.0... faro ls 1.1.501.0(64bit)可以卸载,是一款无需连接外部PC机或笔记本计算机即可...
如何在电报Telegram中隐... 点击进入:ChatGPT工具插件导航大全 在Android上的电报中隐藏您的电话号码 您可以通过切换...