Come installare Discourse Forum con Nginx su Rocky Linux 9
Discourse è una piattaforma di discussione comunitaria open source creata utilizzando il linguaggio Ruby. È progettato per funzionare come forum, software di chat o mailing list. Si integra facilmente con altre piattaforme e può essere esteso tramite plugin.
In questo tutorial imparerai come installare Discourse Forum con il server Nginx su un server che esegue Rocky Linux 9.
Prerequisiti
Un server che esegue Rocky Linux 9 con un minimo di 1 GB di RAM e 1 CPU Core. La configurazione del discorso creerà automaticamente una partizione di swap sui sistemi con 1 GB o meno di RAM. Pertanto si consiglia di installarlo su un sistema con almeno 2 GB di RAM.
Un utente non root con privilegi sudo
.
Un nome di dominio (discourse.example.com
) che punta al server.
Tutto è aggiornato.
$ sudo dnf update
Pochi pacchetti di cui il tuo sistema ha bisogno.
$ sudo dnf install wget curl nano unzip yum-utils -y
Alcuni di questi pacchetti potrebbero essere già installati sul tuo sistema.
Passaggio 1: configurare il firewall
Il primo passo è configurare il firewall. Rocky Linux utilizza Firewalld Firewall. Controlla lo stato del firewall.
$ sudo firewall-cmd --state
running
Il firewall funziona con zone diverse e la zona pubblica è quella predefinita che utilizzeremo. Elenca tutti i servizi e le porte attive sul firewall.
$ sudo firewall-cmd --permanent --list-services
Dovrebbe mostrare il seguente output.
cockpit dhcpv6-client ssh
Discourse ha bisogno di porte HTTP e HTTPS per funzionare. Aprili.
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
Aggiungi mascheramento, poiché l'applicazione contatterà altre istanze.
$ sudo firewall-cmd --permanent --add-masquerade
Ricaricare il firewall per applicare le modifiche.
$ sudo firewall-cmd --reload
Elenca nuovamente tutti i servizi.
$ sudo firewall-cmd --permanent --list-services
Dovresti ottenere il seguente output.
cockpit dhcpv6-client http https ssh
Configura SELinux
Il discorso non sarà accessibile anche se apri le porte a causa della politica di accesso di SELinux. Configura SELinux per consentire le connessioni di rete.
$ sudo setsebool -P httpd_can_network_connect 1
Passaggio 2: installa Git
Installa Git.
$ sudo dnf install git
Conferma l'installazione.
$ git --version
git version 2.31.1
Esegui i seguenti comandi per configurare l'installazione di Git.
$ git config --global user.name "Your Name"
$ git config --global user.email "[email "
Passaggio 3: installare Docker
Rocky Linux viene fornito con una versione precedente di Docker. Per installare la versione più recente, installare innanzitutto il repository Docker ufficiale.
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
Installa l'ultima versione di Docker.
$ sudo dnf install docker-ce docker-ce-cli containerd.io
Potresti ricevere il seguente errore durante il tentativo di installazione di 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
Utilizza il seguente comando se ricevi l'errore riportato sopra.
$ sudo dnf install docker-ce docker-ce-cli containerd.io --allowerasing
Abilita ed esegui il demone Docker.
$ sudo systemctl enable docker --now
Verificare che sia in esecuzione.
? 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
Per impostazione predefinita, Docker richiede i privilegi di root. Se vuoi evitare di utilizzare sudo
ogni volta che esegui il comando docker
, aggiungi il tuo nome utente al gruppo docker
.
$ sudo usermod -aG docker $(whoami)
Sarà necessario disconnettersi dal server e rientrare come lo stesso utente per abilitare questa modifica o utilizzare il comando seguente.
$ su - ${USER}
Conferma che il tuo utente sia aggiunto al gruppo Docker.
$ groups
navjot wheel docker
Passaggio 4: scarica il discorso
Clona il repository GitHub ufficiale di Discourse Docker nella directory /var/discourse
.
$ sudo git clone https://github.com/discourse/discourse_docker.git /var/discourse
Passa alla directory Discorso.
$ cd /var/discourse
Rimuovi i permessi di scrittura ed eseguibili dalla directory containers
.
$ sudo chmod 700 containers
Passaggio 5: configurare il discorso
Crea il file di configurazione app.yml
copiando il file di esempio standalone.yml
.
$ sudo cp samples/standalone.yml containers/app.yml
Apri app.yml
per la modifica.
$ sudo nano containers/app.yml
Imposta dominio
Imposta la variabile DISCOURSE_HOSTNAME
sul nome di dominio che hai scelto per il tuo forum. Se non disponi di un nome di dominio, puoi utilizzare un indirizzo IP qui.
DISCOURSE_HOSTNAME: 'discourse.example.com'
Configura le porte esposte
Cambia la riga "80:80
in "8080:80"
. Ciò cambierà la porta HTTP esterna per Discourse in 8080 poiché utilizzeremo Nginx sulla porta 80. Commenta la riga "443:443"
poiché installeremo SSL esternamente.
expose:
- "8080:80" # http
#- "443:443" # https
Configura gli ID email per l'amministratore
Imposta l'e-mail per il tuo account amministratore e lo sviluppatore utilizzando la variabile DISCOURSE_DEVELOPER_EMAILS
. Questo passaggio è obbligatorio altrimenti il tuo forum non verrà avviato.
DISCOURSE_DEVELOPER_EMAILS: '[email ,[email '
Configura le impostazioni SMTP
Compila le seguenti variabili a seconda del servizio di posta elettronica transazionale che stai utilizzando.
DISCOURSE_SMTP_ADDRESS: smtp.example.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: [email
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 # (address to send notifications from)
Impostazioni della memoria (opzionale)
Se il tuo server ha poca RAM, puoi configurare di conseguenza le seguenti variabili per ridurre l'impronta di memoria di Discourse.
db_shared_buffers: '128MB'
UNICORN_WORKERS: 2
La variabile db_shared_buffers
è solitamente impostata al 25% della memoria disponibile.
Impostazioni GeoLite2 (opzionale)
Se desideri la funzionalità di ricerca IP su Discourse, registrati per l'account Maxmind Geolite2 gratuito e ottieni una chiave di licenza. Incolla la chiave di licenza come valore per la variabile seguente.
DISCOURSE_MAXMIND_LICENSE_KEY: your_maxmind_license_key
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Passaggio 6: installare il discorso
Esegui il comando seguente per avviare il contenitore Discourse.
$ sudo ./launcher bootstrap app
Avvia l'applicazione Discorso.
$ sudo ./launcher start app
Aprire la porta per testare l'applicazione Discourse.
$ sudo firewall-cmd --permanent --add-port=8080/tcp
Ora puoi accedere al forum visitando gli URL http://yourserver_IP:8080
o http://discourse.example.com:8080
nel tuo browser. Otterrai la seguente schermata.
Passaggio 7: installare Nginx
Rocky Linux 9 viene fornito con una versione precedente di Nginx. È necessario scaricare il repository ufficiale Nginx per installare la versione più recente.
Crea e apri il file /etc/yum.repos.d/nginx.repo
per creare il repository Nginx ufficiale.
$ sudo nano /etc/yum.repos.d/nginx.repo
Incolla il seguente codice al suo interno.
[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
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Installa il server Nginx.
$ sudo dnf install nginx
Verificare l'installazione.
$ nginx -v
nginx version: nginx/1.22.1
Abilita e avvia il server Nginx.
$ sudo systemctl enable nginx --now
Controlla lo stato del server.
$ 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"
Passaggio 8: installare SSL
Per installare un certificato SSL utilizzando Let's Encrypt, dobbiamo installare lo strumento Certbot.
Per questo utilizzeremo il programma di installazione del pacchetto Snapd. Poiché Rocky Linux non viene fornito con esso, installa il programma di installazione Snapd. Per funzionare richiede l'archivio EPEL.
$ sudo dnf install epel-release
Installa Snapd.
$ sudo dnf install snapd
Abilita e avvia il servizio Snap.
$ sudo systemctl enable snapd --now
Installa il pacchetto Snap core e assicurati che la tua versione di Snapd sia aggiornata.
$ sudo snap install core && sudo snap refresh core
Crea i collegamenti necessari affinché Snapd funzioni.
$ 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
Emettere il comando seguente per installare Certbot.
$ sudo snap install --classic certbot
Utilizzare il comando seguente per garantire che il comando Certbot possa essere eseguito creando un collegamento simbolico alla directory /usr/bin
.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Verificare l'installazione.
$ certbot --version
certbot 1.32.2
Genera il certificato SSL.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email -d discourse.example.com
Il comando precedente scaricherà un certificato nella directory /etc/letsencrypt/live/discourse.example.com
sul tuo server.
Genera un certificato gruppo Diffie-Hellman.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Per verificare se il rinnovo SSL funziona correttamente, esegui un test del processo.
$ sudo certbot renew --dry-run
Se non vedi errori, è tutto a posto. Il tuo certificato si rinnoverà automaticamente.
Passaggio 9: configurare Nginx
Crea e apri il file /etc/nginx/conf.d/discourse.conf
per la modifica.
$ sudo nano /etc/nginx/conf.d/discourse.conf
Incolla il seguente codice al suo interno.
# 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 "";
}
Salva il file premendo Ctrl + X e inserendo Y quando richiesto una volta terminato.
Apri il file /etc/nginx/nginx.conf
per modificarlo.
$ sudo nano /etc/nginx/nginx.conf
Aggiungi la seguente riga prima della riga include /etc/nginx/conf.d/*.conf;
.
server_names_hash_bucket_size 64;
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Verifica la sintassi del file di configurazione 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
Riavviare il servizio Nginx per abilitare la nuova configurazione.
$ sudo systemctl restart nginx
Passaggio 10: accedere e completare l'installazione di Discourse
Puoi accedere al forum visitando l'URL https://discourse.example.com
nel tuo browser. Otterrai la seguente schermata.
Fai clic sul pulsante Registrati per procedere. L'ID email impostato nel file app.yml
sarà precompilato per te.
Fai clic sul pulsante Registra per registrare l'account amministratore. Passerai alla schermata di conferma dell'e-mail.
Se le tue impostazioni SMTP sono corrette, riceverai un'e-mail per attivare l'account. Fai clic sul collegamento contenuto nella tua email per completare la configurazione dell'account.
Fai clic sul pulsante Attiva per completare l'installazione.
Verrai indirizzato alla schermata di configurazione guidata del discorso. Inserisci il nome e la descrizione del forum e scegli la lingua. Fare clic sul pulsante Avanti per procedere.
Successivamente, verrai indirizzato alla pagina Esperienza membro. Scegli le opzioni in base alle tue esigenze e fai clic sul pulsante Avanti per procedere.
Successivamente, verrai indirizzato alla pagina di completamento della configurazione. Puoi scegliere di configurarne altri o semplicemente entrare e iniziare a utilizzare il forum. Queste impostazioni possono ancora essere configurate utilizzando le impostazioni dell'amministratore.
Sceglieremo Configura di più per il nostro tutorial. Verrai indirizzato alla pagina e ti verrà chiesto di impostare loghi e banner per il tuo forum. Fare clic sul pulsante Avanti per procedere.
Successivamente, ti verrà chiesto di impostare le opzioni di stile di base per il front-end del forum. Fare clic sul pulsante Avanti per procedere.
Successivamente, verrai indirizzato alla pagina di configurazione dell'organizzazione. Compila le informazioni appropriate.
Fai clic sul pulsante Salta! per procedere. Verrai indirizzato alla home del forum. Il tuo forum Discourse è pronto per l'uso.
Passaggio 11: comandi del discorso
Attiva l'amministratore del discorso dalla riga di comando
Se non ricevi l'e-mail di attivazione, puoi attivare l'account amministratore dalla riga di comando.
Passa alla directory Discorso.
$ cd /var/discourse
Inserisci la shell del contenitore Discorso.
$ sudo ./launcher enter app
Inserisci il comando rails c
per accedere al prompt dei comandi di Rails.
root@discourse-app:/var/www/discourse# rails c
Verrà visualizzato il seguente messaggio.
[1] pry(main)>
Immettere il comando per individuare l'account amministratore.
[1] pry(main)> User.find_by_email("[email ")
=> #<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,
:
Inserisci q
per tornare al prompt e inserisci i seguenti comandi in sequenza.
[2] pry(main)> user.approved = true
[3] pry(main)> user.save
[4] pry(main)> EmailToken.confirm(user.email_tokens.first.token)
Digita exit
due volte per tornare alla shell. Il tuo account amministratore è attivato e pronto per l'uso.
Discorso di riserva
Per impostazione predefinita, Discourse esegue il backup del database ogni 7 giorni. Puoi trovare i file di backup nella directory `/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
Puoi configurare le impostazioni di backup visitando la sezione Amministrazione >> Impostazioni >> Backup. Discourse ti offre la possibilità di archiviare i backup localmente o in un archivio cloud in stile Amazon S3.
Puoi scaricare i backup dalla pagina Amministrazione >> Backup. Il ripristino è disabilitato per impostazione predefinita. Se desideri ripristinare il database, devi abilitare l'opzione consenti ripristino dalla sezione Ammin. >> Impostazioni >> Backup.
Discorso di aggiornamento
Per aggiornare il forum, puoi utilizzare uno dei due modi. Il primo modo è aggiornarlo tramite la dashboard dell'amministratore. Il secondo metodo consiste nell'utilizzare una riga di comando.
Passa alla directory Discorso.
$ cd /var/discourse
Aggiorna l'installazione di Discourse recuperando i file più recenti da GitHub.
$ git pull
Ricostruire il discorso.
$ sudo ./launcher rebuild app
Devi ricostruire Discourse ogni volta che apporti modifiche al file app.yml
. Dopo aver apportato le modifiche, esegui il comando sopra. Distrugge il vecchio contenitore, ne avvia uno nuovo e lo avvia.
Interrompi il discorso
$ sudo ./launcher stop app
Visualizza i registri dei discorsi
$ sudo ./launcher logs app
Puoi anche visualizzare i laboratori dettagliati visitando l'URL https://discourse.example.com/logs/
nel tuo browser. Otterrai una schermata simile.
Rotaie/tronchi di unicorno
Ruby on Rails contiene un registro molto dettagliato che viene scritto su disco. Inoltre, anche il server web Unicorn registra su disco. Puoi visualizzarli nella directory 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
Registri Nginx
Discourse esegue un server Nginx all'interno di un contenitore docker. È possibile visualizzare i registri nel seguente percorso.
$ 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
Registri Redis
Puoi ottenere i log per il server database Redis nel seguente percorso. Le voci di registro più recenti si troveranno nel file 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
Registri PostgreSQL
È possibile visualizzare i log del database PostgreSQL nel seguente percorso.
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
Le voci più recenti si trovano nel file current
in quella directory.
Il resto può essere trovato nello stesso /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
Conclusione
Questo conclude il tutorial. Hai installato il forum Discourse utilizzando Docker dietro il server Web proxy Nginx su un server Rocky Linux 9. Se avete domande, pubblicatele nei commenti qui sotto.