Cómo instalar Discourse en Rocky Linux 9

En este tutorial, le mostraremos cómo instalar Discourse en Rocky Linux 9. Para aquellos de ustedes que no lo sabían, Discourse es una plataforma poderosa para discusiones y foros en línea y es una excelente opción para comunidades y organizaciones que desean fomentar debates interesantes y productivos. Discourse está escrito en Ruby on Rails y utiliza una arquitectura web moderna que incluye actualizaciones en tiempo real, un diseño compatible con dispositivos móviles y una API sofisticada. Es altamente personalizable y ofrece una variedad de características diseñadas para hacer que las discusiones en línea sean interesantes, productivas y accesibles.

Este artículo asume que tiene al menos un conocimiento básico de Linux, sabe cómo usar el shell y, lo que es más importante, aloja su sitio en su propio VPS. La instalación es bastante simple y se supone que está ejecutando en la cuenta raíz, si no, es posible que deba agregar ‘ sudo ‘ a los comandos para obtener privilegios de root. Le mostraré la instalación paso a paso de la plataforma de discusión comunitaria de código abierto Discourse en Rocky Linux. 9.

requisitos previos

  • Un servidor que ejecuta uno de los siguientes sistemas operativos: Linux rocoso 9 .
  • Se recomienda que utilice una instalación de sistema operativo nueva para evitar posibles problemas.
  • Acceso SSH al servidor (o simplemente abra la Terminal si está en una computadora de escritorio).
  • Una conexión a Internet activa. Necesitará una conexión a Internet para descargar los paquetes y dependencias necesarios para Discourse.
  • A non-root sudo user o acceder a la root user . Recomendamos actuar como un non-root sudo user sin embargo, puede dañar su sistema si no tiene cuidado al actuar como raíz.

Instale Discourse en Rocky Linux 9

Paso 1. El primer paso es actualizar su sistema a la última versión de la lista de paquetes. Para hacerlo, ejecute los siguientes comandos:

                      sudo dnf check-update
sudo dnf install dnf-utils epel-release
                    

Paso 2. Instalación de Git.

De manera predeterminada, Git está disponible en el repositorio Rocky Linux 9 AppStream. Ahora ejecute el siguiente comando a continuación para instalar la versión estable de Git en su sistema:

                      sudo dnf install git
                    

Puede verificar la versión instalada usando el siguiente comando:

                      git --version
                    

Ahora configuramos configuraciones estándar como nombres y correos electrónicos, principalmente en torno a los mensajes de confirmación de git:

                      git config --global user.name "idroot"
git config --global user.email "[email protected]"
                    

Para verificar que su nombre y correo electrónico hayan sido configurados:

                      git config --list
                    

Para obtener recursos adicionales sobre la instalación de Git, lea la publicación a continuación:

  • Cómo instalar Git en Rocky Linux √

Paso 3. Instalación de Docker.

De forma predeterminada, Docker no está disponible en el repositorio base de Rocky Linux 9. Ahora ejecute el siguiente comando a continuación para agregar el repositorio Docker CE a su sistema:

                      sudo dnf config-manager --add-repo=https://download.docker.com/linux/
                      
                        centos
                      
                      /docker-ce.repo
                    

Después de agregar los repositorios al sistema, ejecute el siguiente comando para instalar Docker CE Rocky Linux:

                      sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin --allowerasing
                    

Una vez que se complete la instalación, inicie el servicio Docker en su Rocky Linux y habilítelo para que se ejecute automáticamente con el arranque del sistema:

                      sudo systemctl enable docker
sudo systemctl start docker
                    

Luego, agregue el usuario al grupo Docker usando el comando:

                      sudo usermod -aG docker $USER
                    

Luego, crea un nuevo grupo:

                      newgrp docker
                    

Verifique que la versión de Docker esté instalada:

                      docker version
                    

Para obtener recursos adicionales sobre la instalación de Docker, lea la publicación a continuación:

  • Cómo instalar Docker en Rocky Linux √

Paso 3. Descarga el Discurso.

Primero, clonamos el repositorio oficial de Discourse Docker GitHub en el /var/discourse directorio:

                      sudo git clone https://github.com/discourse/discourse_docker.git /var/discourse
                    

A continuación, cambie al directorio de Discourse y elimine los permisos de escritura y ejecución del directorio. containers directorio:

                      cd /var/discourse
sudo chmod 700 containers
                    

Paso 4. Configurar discurso.

Después de descargar la imagen de Discourse Docker, el siguiente paso es configurarlo. Puede hacer esto editando el containers/app.yml expediente. Aquí hay un example de cómo se puede configurar el archivo:

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

Establecer la variable DISCOURSE_HOSTNAME al nombre de dominio:

                      DISCOURSE_HOSTNAME: 'your-domain.com'
                    

cambiar la línea "80:80 a "8080:80" . Esto cambiará el puerto HTTP externo para Discourse a 8080 ya que usaremos Nginx en el puerto 80. Comente el "443:443" :

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

Configure el correo electrónico para su administrador:

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

Configure los ajustes de 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: [email protected]    # (address to send notifications from)
                    

Paso 5. Instalación de Discourse en Rocky Linux 9.

Después de configurar el archivo de configuración, podemos iniciar Discourse usando el siguiente comando a continuación:

                      sudo ./launcher bootstrap app
                    

Inicie la aplicación Discourse:

                      sudo ./launcher start app
                    

Paso 6. Instalación y configuración de Nginx para Discourse.

De forma predeterminada, Nginx no está disponible en el repositorio base de Rocky Linux 9. Ahora ejecute el siguiente comando a continuación para agregar el repositorio estable de Nginx a su sistema:

                      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
                    

Ahora, ejecute el siguiente comando para instalar la última versión estable de Nginx en su servidor:

                      sudo dnf update
sudo dnf install nginx
                    

Una vez finalizada la instalación, inicie el servicio Nginx y habilítelo para que se inicie automáticamente al reiniciar todo de una vez con:

                      sudo systemctl enable --now nginx
                    

Para verificar que se haya instalado la última versión de Nginx, ejecute:

                      nginx -v
                    

Aquí hay un example de cómo configurar Nginx para servir a Discourse:

                      nano /etc/nginx/conf.d/discourse.conf
                    

Agregue el siguiente archivo:

                      # enforce HTTPS
server {
    listen       80; 
    listen 		[::]:80;
    server_name  discourse.googlesyndication.com;
    location / { return 301 https://$host$request_uri; }
}
server {
    listen       443 ssl http2;
    listen 		[::]:443 ssl http2;
    server_name  discourse.googlesyndication.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 "";
}
                    

Guardar y close el archivo, luego reinicie el servicio Nginx para habilitar la nueva configuración:

                      sudo systemctl restart nginx
                    

Para obtener recursos adicionales sobre la instalación de Nginx, lea la publicación a continuación:

  • Cómo instalar Nginx en Rocky Linux √

Paso 7. Discurso seguro con Let’s Encrypt SSL.

Primero, instale el cliente Certbot usando el siguiente comando a continuación:

                      sudo dnf install certbot python3-certbot-nginx
                    

A continuación, obtenga su certificado SSL con Let’s Encrypt siguiendo estos pasos:

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

Let’s Encrypt los certificados tienen 90 días de validez, siendo muy recomendable renovar los certificados antes de que caduquen. Puede probar la renovación automática de sus certificados ejecutando este comando:

                      sudo certbot renew --dry-run
                    

Paso 8. Configure el cortafuegos.

De forma predeterminada, Nginx escucha en los puertos 80 y 443. Si hay algún firewall instalado y configurado en su servidor, deberá permitir ambos puertos a través de firewalld. Puede permitirlos con el siguiente comando:

                      sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
                    

Puede verificar enumerando la configuración actual del firewall:

                      sudo firewall-cmd --permanent --list-all
                    

Paso 9. Acceso a la interfaz web de Discourse.

Una vez que se haya instalado correctamente, abra su navegador web y acceda a la interfaz de usuario web de Discourse usando la URL https://.your-domain.com . Deberías ver la siguiente página:

¡Felicidades! Has instalado Discourse con éxito. Gracias por usar este tutorial para instalar la plataforma de discusión Discourse en su sistema Rocky Linux 9. Para obtener ayuda adicional o información útil, le recomendamos que consulte el sitio web oficial del discurso .

Related Posts