Cómo instalar Discourse Forum con Nginx en Rocky Linux 9

Discourse es una plataforma de debate comunitario de código abierto construida utilizando el lenguaje Ruby. Está diseñada para funcionar como foro, software de chat o lista de correo. Se integra fácilmente con otras plataformas y puede ampliarse mediante plugins.

En este tutorial, aprenderás a instalar Discourse Forum con el servidor Nginx en un servidor que ejecuta Rocky Linux 9.

Requisitos previos

  • Un servidor que ejecute Rocky Linux 9 con un mínimo de 1 GB de RAM y 1 CPU Core. La instalación de Discourse creará automáticamente una partición swap en sistemas con 1GB o menos de RAM. Por lo tanto, se recomienda instalarlo en un sistema con al menos 2 GB de RAM.
  • Un usuario no root con privilegios sudo.
  • Un nombre de dominio (discourse.example.com) que apunte al servidor.
  • Todo actualizado.
    $ sudo dnf update
    
  • Pocos paquetes que necesite tu sistema.
    $ sudo dnf install wget curl nano unzip yum-utils -y
    

    Puede que algunos de estos paquetes ya estén instalados en tu sistema.

Paso 1 – Configurar el cortafuegos

El primer paso es configurar el cortafuegos. Rocky Linux utiliza el cortafuegos Firewalld. Comprueba el estado del cortafuegos.

$ sudo firewall-cmd --state
running

El cortafuegos funciona con diferentes zonas, y la zona pública es la que utilizaremos por defecto. Enumera todos los servicios y puertos activos en el cortafuegos.

$ sudo firewall-cmd --permanent --list-services

Debería mostrar la siguiente salida.

cockpit dhcpv6-client ssh

Discurso necesita los puertos HTTP y HTTPS para funcionar. Ábrelos.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Añade enmascaramiento, ya que la aplicación contactará con otras instancias.

$ sudo firewall-cmd --permanent --add-masquerade

Recarga el cortafuegos para aplicar los cambios.

$ sudo firewall-cmd --reload

Vuelve a listar todos los servicios.

$ sudo firewall-cmd --permanent --list-services

Deberías obtener el siguiente resultado.

cockpit dhcpv6-client http https ssh

Configurar SELinux

Discourse no será accesible aunque abras los puertos debido a la política de acceso de SELinux. Configura SELinux para permitir las conexiones de red.

$ sudo setsebool -P httpd_can_network_connect 1

Paso 2 – Instalar Git

Instala Git.

$ sudo dnf install git

Confirma la instalación.

$ git --version
git version 2.31.1

Ejecuta los siguientes comandos para configurar la instalación de Git.

$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"

Paso 3 – Instala Docker

Rocky Linux viene con una versión antigua de Docker. Para instalar la última versión, instala primero el repositorio oficial de Docker.

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

Instala la última versión de Docker.

$ sudo dnf install docker-ce docker-ce-cli containerd.io

Es posible que obtengas el siguiente error al intentar instalar Docker.

ror: 
 Problem: problem with installed package buildah-1:1.26.2-1.el9_0.x86_64
  - package buildah-1:1.26.2-1.el9_0.x86_64 requires runc >= 1.0.0-26, but none of the providers can be installed
  - package containerd.io-1.6.9-3.1.el9.x86_64 conflicts with runc provided by runc-4:1.1.3-2.el9_0.x86_64
  - package containerd.io-1.6.9-3.1.el9.x86_64 obsoletes runc provided by runc-4:1.1.3-2.el9_0.x86_64
  - cannot install the best candidate for the job

Utiliza el siguiente comando si te aparece el error anterior.

$ sudo dnf install docker-ce docker-ce-cli containerd.io --allowerasing

Habilita y ejecuta el demonio Docker.

$ sudo systemctl enable docker --now

Comprueba que se está ejecutando.

? docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
     Active: active (running) since Sat 2023-01-20 06:49:44 UTC; 6s ago
TriggeredBy: ? docker.socket
       Docs: https://docs.docker.com
   Main PID: 99263 (dockerd)
      Tasks: 8
     Memory: 28.1M
        CPU: 210ms
     CGroup: /system.slice/docker.service
             ??99263 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Por defecto, Docker requiere privilegios de root. Si quieres evitar utilizar sudo cada vez que ejecutes el comando docker, añade tu nombre de usuario al grupo docker.

$ sudo usermod -aG docker $(whoami)

Tendrás que salir del servidor y volver a entrar como el mismo usuario para activar este cambio o utilizar el siguiente comando.

$ su - ${USER}

Confirma que tu usuario se ha añadido al grupo Docker.

$ groups
navjot wheel docker

Paso 4 – Descarga Discourse

Clona el repositorio oficial de GitHub de Discourse Docker en el directorio /var/discourse.

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

Cambia al directorio de Discourse.

$ cd /var/discourse

Elimina los permisos de escritura y ejecución del directorio containers.

$ sudo chmod 700 containers

Paso 5 – Configura Discourse

Crea el archivo de configuración app.yml copiando el archivo de ejemplo standalone.yml.

$ sudo cp samples/standalone.yml containers/app.yml

Abre app.yml para editarlo.

$ sudo nano containers/app.yml

Establece el dominio

Establece la variable DISCOURSE_HOSTNAME con el nombre de dominio que hayas elegido para tu foro. Si no tienes un nombre de dominio, puedes utilizar aquí una dirección IP.

DISCOURSE_HOSTNAME: 'discourse.example.com'

Configurar puertos expuestos

Cambia la línea "80:80 por "8080:80". Esto cambiará el puerto HTTP externo para Discourse a 8080 ya que utilizaremos Nginx en el puerto 80. Comenta la línea "443:443" ya que instalaremos SSL externamente.

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

Configura el correo electrónico para el administrador

Configura el correo electrónico para tu cuenta de administrador y para el desarrollador utilizando la variable DISCOURSE_DEVELOPER_EMAILS. Este paso es obligatorio, de lo contrario, tu foro no arrancará.

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

Configurar los ajustes SMTP

Rellena las siguientes variables dependiendo del servicio de correo electrónico transaccional que estés utilizando.

DISCOURSE_SMTP_ADDRESS: smtp.example.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: [email protected]
DISCOURSE_SMTP_PASSWORD: your_smtp_password
#DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, default true)
DISCOURSE_SMTP_DOMAIN: discourse.example.com    # (required by some providers)
DISCOURSE_NOTIFICATION_EMAIL: [email protected]    # (address to send notifications from)

Configuración de la memoria (opcional)

Si tu servidor tiene poca RAM, puedes configurar las siguientes variables en consecuencia para reducir el consumo de memoria de Discourse.

db_shared_buffers: '128MB'
UNICORN_WORKERS: 2

La variable db_shared_buffers se suele configurar al 25% de la memoria disponible.

Configuración de GeoLite2 (Opcional)

Si quieres la función de búsqueda de IP en Discurso, regístrate en la cuenta gratuita Maxmind Geolite2 y obtén una clave de licencia. Pega esa clave de licencia como valor de la siguiente variable.

DISCOURSE_MAXMIND_LICENSE_KEY: your_maxmind_license_key

Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te solicite.

Paso 6 – Instalar Discourse

Ejecuta el siguiente comando para arrancar tu contenedor de Discourse.

$ sudo ./launcher bootstrap app

Inicia la aplicación Discourse.

$ sudo ./launcher start app

Abre el puerto para probar la aplicación Discourse.

$ sudo firewall-cmd --permanent --add-port=8080/tcp

Ahora puedes acceder al foro visitando las URL http://yourserver_IP:8080 o http://discourse.example.com:8080 en tu navegador. Obtendrás la siguiente pantalla.

Configuración del discurso Inicio

Paso 7 – Instalar Nginx

Rocky Linux 9 viene con una versión antigua de Nginx. Necesitas descargar el repositorio oficial de Nginx para instalar la última versión.

Crea y abre el archivo /etc/yum.repos.d/nginx.repo para crear el repositorio oficial de Nginx.

$ sudo nano /etc/yum.repos.d/nginx.repo

Pega en él el siguiente código.

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida.

Instala el servidor Nginx.

$ sudo dnf install nginx

Verifica la instalación.

$ nginx -v
nginx version: nginx/1.22.1

Habilita e inicia el servidor Nginx.

$ sudo systemctl enable nginx --now

Comprueba el estado del servidor.

$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
     Active: active (running) since Sun 2023-01-20 07:49:55 UTC; 1s ago
       Docs: http://nginx.org/en/docs/
    Process: 230797 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 230798 (nginx)
      Tasks: 3 (limit: 12355)
     Memory: 2.8M
        CPU: 13ms
     CGroup: /system.slice/nginx.service
             ??230798 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??230799 "nginx: worker process"
             ??230800 "nginx: worker process"

Paso 8 – Instalar SSL

Para instalar un certificado SSL utilizando Let’s Encrypt, necesitamos instalar la herramienta Certbot.

Para ello utilizaremos el instalador de paquetes Snapd. Como Rocky Linux no lo incluye, instala el instalador Snapd. Necesita el repositorio EPEL para funcionar.

$ sudo dnf install epel-release

Instala Snapd.

$ sudo dnf install snapd

Activa e inicia el servicio Snap.

$ sudo systemctl enable snapd --now

Instala el paquete principal de Snap, y asegúrate de que tu versión de Snapd está actualizada.

$ sudo snap install core && sudo snap refresh core

Crea los enlaces necesarios para que Snapd funcione.

$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh

Ejecuta el siguiente comando para instalar Certbot.

$ sudo snap install --classic certbot

Utiliza el siguiente comando para asegurarte de que se puede ejecutar el comando Certbot creando un enlace simbólico al directorio /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Verifica la instalación.

$ certbot --version
certbot 1.32.2

Genera el certificado SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d discourse.example.com

El comando anterior descargará un certificado en el directorio /etc/letsencrypt/live/discourse.example.com de tu servidor.

Genera un certificado de grupo Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Para comprobar si la renovación SSL funciona correctamente, realiza una ejecución en seco del proceso.

$ sudo certbot renew --dry-run

Si no ves ningún error, ya está todo listo. Tu certificado se renovará automáticamente.

Paso 9 – Configurar Nginx

Crea y abre el archivo /etc/nginx/conf.d/discourse.conf para editarlo.

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

Pega en él el siguiente código.

# 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;
    
    # SSL
    ssl_certificate         /etc/letsencrypt/live/discourse.example.com/fullchain.pem;
    ssl_certificate_key     /etc/letsencrypt/live/discourse.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/discourse.example.com/chain.pem;
    ssl_session_timeout  5m;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    resolver 8.8.8.8;
    
    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://discourse.example.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 "";
}

Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida una vez hayas terminado.

Abre el archivo /etc/nginx/nginx.conf para editarlo.

$ sudo nano /etc/nginx/nginx.conf

Añade la siguiente línea antes de la línea include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te solicite.

Verifica la sintaxis del archivo de configuración de Nginx.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Reinicia el servicio Nginx para habilitar la nueva configuración.

$ sudo systemctl restart nginx

Paso 10 – Acceder y finalizar la instalación de Discourse

Puedes acceder al foro visitando la URL https://discourse.example.com en tu navegador. Aparecerá la siguiente pantalla.

Configuración del discurso Inicio

Haz clic en el botón Registrar para continuar. El identificador de correo electrónico establecido en el archivo app.yml se rellenará previamente para ti.

Discurso Crear cuenta de administrador

Haz clic en el botón Registrar para registrar la cuenta de administrador. Pasarás a la pantalla de confirmación del correo electrónico.

Confirmar correo electrónico de Discourse

Si tu configuración SMTP es correcta, recibirás un correo para activar la cuenta. Haz clic en el enlace de tu correo electrónico para terminar de configurar la cuenta.

Correo electrónico de confirmación del discurso

Haz clic en el botón Activar para finalizar la instalación.

Activar cuenta de Discourse

Llegarás a la pantalla del Asistente de Configuración de Discourse. Rellena el nombre y la descripción de tu foro y elige el idioma. Haz clic en el botón Siguiente para continuar.

Asistente de configuración de Discourse

A continuación, accederás a la página de Experiencia de usuario. Elige las opciones según tus necesidades y haz clic en el botón Siguiente para continuar.

Configuración de la Experiencia de Miembro de Discourse

A continuación, pasarás a la página de finalización de la configuración. Puedes elegir configurar más o simplemente Entrar y empezar a utilizar el foro. Estos ajustes pueden seguir configurándose mediante los ajustes del administrador.

Sitio Discourse listo

Elegiremos Configurar más para nuestro tutorial. Se te llevará a la página y se te pedirá que configures logotipos y banner para tu foro. Haz clic en el botón Siguiente para continuar.

Logotipo de Discourse Configure

A continuación, se te pedirá que configures las opciones básicas de estilo para la interfaz del foro. Haz clic en el botón Siguiente para continuar.

Configurar la apariencia de Discourse

A continuación, se te llevará a la página de configuración de la Organización. Rellena la información apropiada.

Configuración de la organización del discurso

Haz clic en el botón ¡Adelante! para continuar. Accederás a la página de inicio del foro. Tu foro de Discourse está listo para ser utilizado.

Página de inicio del discurso

Paso 11 – Comandos de Discourse

Activar Discourse Administrator desde la línea de comandos

Si no recibes el correo electrónico de activación, puedes activar la cuenta de administrador desde la línea de comandos.

Cambia al directorio de Discourse.

$ cd /var/discourse

Entra en el shell contenedor de Discurso.

$ sudo ./launcher enter app

Introduce el comando rails c para acceder a la línea de comandos de Rails.

root@discourse-app:/var/www/discourse# rails c

Verás el siguiente mensaje.

[1] pry(main)> 

Introduce el comando para localizar la cuenta de administrador.

[1] pry(main)>  User.find_by_email("[email protected]")
=> #<User:0x00007fdf020229f0
 id: 1,
 username: "username",
 created_at: Fri, 20 Jan 2023 08:14:36.735552000 UTC +00:00,
 updated_at: Fri, 20 Jan 2023 14:14:12.094234000 UTC +00:00,
 name: nil,
 seen_notification_id: 4,
 last_posted_at: nil,
 password_hash: "98c774785bda45b4edbaea90eeb3bd5da00f65487ba6d0b3930082ce098bf174",
 salt: "ca175ea7f5653ce8122b76b68b549936",
 active: true,
 username_lower: "username",
 last_seen_at: Fri, 20 Jan 2023 23:01:21.001705000 UTC +00:00,
 admin: true,
 last_emailed_at: Fri, 20 Jan 2023 09:48:47.896200000 UTC +00:00,
 trust_level: 1,
 approved: false,
 approved_by_id: nil,
 approved_at: nil,
 previous_visit_at: Fri, 20 Jan 2023 21:28:23.665502000 UTC +00:00,
 suspended_at: nil,
 suspended_till: nil,
 date_of_birth: nil,
 views: 0,
 flag_level: 0,
 ip_address: #<IPAddr: IPv4:122.161.92.70/255.255.255.255>,
 moderator: false,
 title: nil,
 uploaded_avatar_id: nil,
 :

Introduce q para volver al prompt e introduce los siguientes comandos en secuencia.

[2] pry(main)> user.approved = true
[3] pry(main)> user.save
[4] pry(main)> EmailToken.confirm(user.email_tokens.first.token)

Escribe exit dos veces para volver al intérprete de comandos. Tu cuenta de administrador está activada y lista para ser utilizada.

Copia de seguridad de Discurso

Por defecto, Discourse realiza copias de seguridad de la base de datos cada 7 días. Puedes encontrar los archivos de copia de seguridad en el directorio `/var/discourse/shared/standalone/backups/default.

$ ls /var/discourse/shared/standalone/backups/default -al
total 1480
drwxr-xr-x. 2 navjot tape    4096 Jan 21 03:34 .
drwxr-xr-x. 3 navjot tape    4096 Jan 20 12:01 ..
-rw-r--r--. 1 navjot tape 1503748 Jan 21 03:34 howtoforge-forums-2023-01-21-033439-v20230119094939.tar.gz

Puedes configurar las copias de seguridad visitando la sección Admin >> Configuración >> Copias de seguridad. Discourse te da la opción de almacenar las copias de seguridad localmente o en un almacenamiento en la nube al estilo de Amazon S3.

Configuración de las copias de seguridad de Discourse

Puedes descargar las copias de seguridad desde la página Admin >> Copias de seguridad. La restauración está desactivada por defecto. Si quieres restaurar la base de datos, tienes que activar la opción de permitir restauración desde la sección Admin >> Configuración >> Copias de seguridad.

Página de copias de seguridad de Discourse

Actualizar Discourse

Para actualizar el foro, puedes utilizar una de estas dos formas. La primera es actualizarlo a través del panel de control del administrador. El segundo método es utilizar una línea de comandos.

Cambia al directorio de Discourse.

$ cd /var/discourse

Actualiza la instalación de Discourse tomando los últimos archivos de GitHub.

$ git pull

Reconstruye Discourse.

$ sudo ./launcher rebuild app

Debes reconstruir Discourse cada vez que realices algún cambio en el archivo app.yml. Tras realizar los cambios, ejecuta el comando anterior. Destruye el contenedor antiguo, arranca uno nuevo e inícialo.

Detener Discurso

$ sudo ./launcher stop app

Ver los registros de Discourse

$ sudo ./launcher logs app

También puedes ver los laboratorios detallados visitando la URL https://discourse.example.com/logs/ en tu navegador. Obtendrás una pantalla similar.

Página de registros del discurso

Registros de Rails / Unicornio

Ruby on Rails contiene un registro muy verboso que se escribe en el disco. Además, el servidor web unicornio también registra en disco. Puedes verlos en el directorio var/discourse/shared/standalone/log/rails.

$ ls /var/discourse/shared/standalone/log/rails -al
total 552
drwxr-xr-x. 2 navjot tape   4096 Jan 20 07:09 .
drwxr-xr-x. 4 root   root   4096 Jan 20 07:09 ..
-rw-r--r--. 1 navjot tape      0 Jan 20 07:09 production_errors.log
-rw-r--r--. 1 navjot tape 361031 Jan 21 11:46 production.log
-rw-r--r--. 1 navjot tape      0 Jan 20 07:09 sidekiq.log
-rw-r--r--. 1 navjot tape  60919 Jan 20 08:42 unicorn.stderr.log
-rw-r--r--. 1 navjot tape 119403 Jan 21 03:34 unicorn.stdout.log

Registros Nginx

Discourse ejecuta un servidor Nginx dentro de un contenedor docker. Puedes ver los registros en la siguiente ubicación.

$ ls /var/discourse/shared/standalone/log/var-log/nginx -al
total 1852
drwxr-xr-x. 2   33 tape    4096 Jan 20 07:39 .
drwxrwxr-x. 5 root adm     4096 Jan 21 08:04 ..
-rw-r--r--. 1   33 tape 1878744 Jan 21 12:18 access.log
-rw-r--r--. 1   33 tape    1017 Jan 20 07:45 error.log

Registros Redis

Puedes obtener los registros del servidor de base de datos Redis en la siguiente ubicación. Las entradas de registro más recientes estarán en el archivo current.

$ ls /var/discourse/shared/standalone/log/var-log/redis -al
total 140
drwxr-xr-x. 2 root root   4096 Jan 20 07:39 .
drwxrwxr-x. 5 root adm    4096 Jan 21 08:04 ..
-rw-r--r--. 1 root root 127002 Jan 21 12:17 current
-rw-------. 1 root root      0 Jan 20 07:39 lock

Registros PostgreSQL

Puedes ver los registros de la base de datos PostgreSQL en la siguiente ubicación.

ls /var/discourse/shared/standalone/log/var-log/postgres -al
total 20
drwxr-xr-x. 2 root root  4096 Jan 20 07:39 .
drwxrwxr-x. 5 root adm   4096 Jan 21 08:04 ..
-rw-r--r--. 1 root root 11400 Jan 21 03:34 current
-rw-------. 1 root root     0 Jan 20 07:39 lock

Las entradas más recientes se encuentran en el archivo current de ese directorio.

Las restantes se encuentran en el propio /var/discourse/shared/standalone/log/var-log.

ls /var/discourse/shared/standalone/log/var-log -al
total 100
drwxrwxr-x. 5 root adm   4096 Jan 21 08:04 .
drwxr-xr-x. 4 root root  4096 Jan 20 07:09 ..
-rw-r--r--. 1 root adm  40943 Jan 21 12:17 auth.log
-rw-r--r--. 1 root adm      0 Jan 20 08:41 kern.log
-rw-r-----. 1 root adm    750 Jan 21 08:04 messages
drwxr-xr-x. 2   33 tape  4096 Jan 20 07:39 nginx
drwxr-xr-x. 2 root root  4096 Jan 20 07:39 postgres
drwxr-xr-x. 2 root root  4096 Jan 20 07:39 redis
-rw-r--r--. 1 root adm  23041 Jan 21 12:17 syslog
-rw-r-----. 1 root adm     70 Jan 21 08:04 user.log

Conclusión

Con esto concluye el tutorial. Has instalado el foro Discourse utilizando Docker detrás del servidor web proxy Nginx en un servidor Rocky Linux 9. Si tienes alguna pregunta, publícala en los comentarios a continuación.

También te podría gustar...