Installazione · 9 min read · Oct 14, 2025

Come installare Wiki.js su Rocky Linux 9

Wiki.js è un software wiki open-source e leggero. È costruito sul framework JavaScript Node.js. Può essere utilizzato per scrivere documentazione, wiki e contenuti web utilizzando un editor Markdown per sviluppatori e un editor WYSIWYG per persone non tecniche. Supporta più tipi di contenuto, inclusi diagrammi UML, espressioni matematiche utilizzando la sintassi Tex o MathML e codice. Include più moduli per varie funzioni, tra cui analisi, autenticazione, registrazione, motori di ricerca di terze parti e più servizi di archiviazione per sincronizzare i tuoi contenuti.

In questo tutorial, imparerai a installare Wiki.js su un server Rocky Linux 9 utilizzando il database PostgreSQL e il server Nginx per il proxy.

Prerequisiti

  • Un server che esegue Rocky Linux 9.
  • Un utente non root con privilegi sudo.
  • Un nome di dominio completamente qualificato (FQDN) che punta al tuo server. Per i nostri scopi, utilizzeremo wiki.example.com come nome di dominio.
  • Assicurati che tutto sia aggiornato. $ sudo dnf update
  • Installa pacchetti di utilità di base. Alcuni di essi potrebbero già essere installati. $ sudo dnf install wget curl nano unzip yum-utils -y

Passo 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 diverse zone, 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

Wiki.js ha bisogno delle porte HTTP e HTTPS per funzionare. Aprile.

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

Ricarica il firewall per applicare le modifiche.

$ sudo firewall-cmd --reload

Passo 2 - Installare PostgreSQL e Utilità

Rocky Linux 9 viene fornito con una versione più vecchia di PostgreSQL. Installeremo Postgres 14 per il nostro tutorial.

Installa il repository RPM per PostgreSQL.

$ sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Installa il server PostgreSQL 14.

$ sudo dnf install -y postgresql14-server postgresql14-contrib

Inizializza il database.

$ sudo /usr/pgsql-14/bin/postgresql-14-setup initdb

Abilita e avvia il servizio PostgreSQL.

$ sudo systemctl enable postgresql-14 --now

Controlla lo stato del servizio.

$ sudo systemctl status postgresql-14
? postgresql-14.service - PostgreSQL 14 database server
     Loaded: loaded (/usr/lib/systemd/system/postgresql-14.service; enabled; vendor preset: disabled)
     Active: active (running) since Sat 2022-10-22 09:52:41 UTC; 2s ago
       Docs: https://www.postgresql.org/docs/14/static/
    Process: 103857 ExecStartPre=/usr/pgsql-14/bin/postgresql-14-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
   Main PID: 103862 (postmaster)
      Tasks: 8 (limit: 5915)
     Memory: 16.6M
        CPU: 61ms
     CGroup: /system.slice/postgresql-14.service
             ??103862 /usr/pgsql-14/bin/postmaster -D /var/lib/pgsql/14/data/
             ??103863 "postgres: logger "
             ??103865 "postgres: checkpointer "
             ??103866 "postgres: background writer "
             ??103867 "postgres: walwriter "
             ??103868 "postgres: autovacuum launcher "
             ??103869 "postgres: stats collector "
             ??103870 "postgres: logical replication launcher "

Oct 22 09:52:41 wiki.example.com systemd[1]: Starting PostgreSQL 14 database server...

Passo 3 - Configurare PostgreSQL

Accedi alla shell di PostgreSQL.

$ sudo -i -u postgres psql

Crea un nuovo database per Wiki.js.

postgres=# CREATE DATABASE wikidb;

Crea un nuovo utente del database con una password forte.

postgres=# CREATE USER wikiuser WITH ENCRYPTED PASSWORD 'wikipassword';

Concedi i diritti all’utente di utilizzare il database.

postgres=# GRANT ALL PRIVILEGES ON DATABASE wikidb TO wikiuser;

Esci dalla shell di Postgres.

postgres=# \q

Passo 4 - Installare Node.js

Wiki.js supporta Node v16 al momento della scrittura di questo tutorial.

Installa il repository Node utilizzando il seguente comando.

$ curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -

Installa Node.

$ sudo dnf install nodejs -y

Verifica l’installazione di Node.

$ node --version
v16.18.0

Passo 5 - Scarica Wiki.js

Crea una cartella per installare Wiki.js.

$ sudo mkdir -p /var/www/wikijs

Imposta l’utente attualmente connesso come proprietario della cartella.

$ sudo chown $USER:$USER /var/www/wikijs

Passa alla directory e scarica l’archivio del codice di Wiki.js.

$ cd /var/www/wikijs && wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz

Estrai l’archivio scaricato.

$ tar xzf wiki-js.tar.gz

Passo 6 - Configurare e Eseguire Wiki.js

Crea il file di configurazione dal campione.

$ cp config.sample.yml config.yml

Apri il file di configurazione per la modifica.

$ nano config.yml

Trova le seguenti impostazioni del database e aggiorna i loro valori con quelli configurati nel passo 3.

# PostgreSQL / MySQL / MariaDB / MS SQL Server only:
host: localhost
port: 5432
user: wikiuser
pass: wikipassword
db: wikidb
ssl: false

Trova la riga bindIP: 0.0.0.0 e aggiornala come segue.

bindIP: 127.0.0.1

Questo farà sì che Wiki.js ascolti sull’indirizzo di loopback perché utilizzeremo il proxy Nginx per accedervi dall’esterno.

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Esegui Wiki.js utilizzando il seguente comando.

$ node server

Riceverai un output simile che conferma un’installazione riuscita.

2022-10-22T10:25:48.187Z [MASTER] info: =======================================
2022-10-22T10:25:48.190Z [MASTER] info: = Wiki.js 2.5.289 =====================
2022-10-22T10:25:48.191Z [MASTER] info: =======================================
2022-10-22T10:25:48.191Z [MASTER] info: Initializing...
2022-10-22T10:25:49.079Z [MASTER] info: Using database driver pg for postgres [ OK ]
2022-10-22T10:25:49.086Z [MASTER] info: Connecting to database...
2022-10-22T10:25:49.117Z [MASTER] info: Database Connection Successful [ OK ]
2022-10-22T10:25:49.467Z [MASTER] warn: DB Configuration is empty or incomplete. Switching to Setup mode...
2022-10-22T10:25:49.468Z [MASTER] info: Starting setup wizard...
2022-10-22T10:25:49.740Z [MASTER] info: Starting HTTP server on port 3000...
2022-10-22T10:25:49.741Z [MASTER] info: HTTP Server on port: [ 3000 ]
2022-10-22T10:25:49.745Z [MASTER] info: HTTP Server: [ RUNNING ]
2022-10-22T10:25:49.745Z [MASTER] info: .......................................
2022-10-22T10:25:49.745Z [MASTER] info:
2022-10-22T10:25:49.746Z [MASTER] info: Browse to http://YOUR-SERVER-IP:3000/ to complete setup!

Premi Ctrl + C per interrompere il processo.

Passo 7 - Configurare un Servizio Systemd

Il processo sopra per mantenere Wiki.js in esecuzione è temporaneo. Per rendere il processo permanente, dovremo creare un servizio systemd per Wiki.js per eseguirlo come servizio in background. Questo permetterà a Wiki.js di funzionare attraverso i riavvii del sistema.

Crea un file di servizio systemd per Wiki.js e aprilo per la modifica.

$ sudo nano /etc/systemd/system/wikijs.service

Incolla il seguente codice in esso. Sostituisci il valore della variabile User con il nome del tuo utente di sistema.

[Unit]
Description=Wiki.js
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always

User=navjot
Environment=NODE_ENV=production
WorkingDirectory=/var/www/wikijs

[Install]
WantedBy=multi-user.target

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Ricarica il demone di sistema.

$ sudo systemctl daemon-reload

Abilita il servizio Wiki.js.

$ sudo systemctl enable wikijs

Passo 8 - Installare Nginx

Rocky Linux viene fornito con una versione più vecchia di Nginx. Devi scaricare il repository ufficiale di Nginx per installare l’ultima versione.

Crea e apri il file /etc/yum.repos.d/nginx.repo per creare il repository ufficiale di Nginx.

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

Incolla il seguente codice in esso.

[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 -y

Verifica 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 Sat 2022-10-22 11:15:39 UTC; 49min ago
       Docs: http://nginx.org/en/docs/
    Process: 116236 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 116237 (nginx)
      Tasks: 2 (limit: 5915)
     Memory: 5.0M
        CPU: 245ms
     CGroup: /system.slice/nginx.service
             ??116237 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??116238 "nginx: worker process"

Oct 22 11:15:39 wiki.example.com systemd[1]: Starting nginx - high performance web server...

Passo 9 - Installare SSL

Utilizzeremo lo strumento Certbot utilizzando lo strumento Snapd per emettere certificati SSL. Richiede il repository EPEL per funzionare.

$ sudo dnf install epel-release

Utilizzeremo Snapd per installare Certbot. Installa Snapd.

$ sudo dnf install snapd

Abilita e avvia il servizio Snap.

$ sudo systemctl enable snapd.socket --now

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

Installa il repository core di Snapd.

$ sudo snap install core
$ sudo snap refresh core

Installa Certbot.

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

Genera il certificato. Il seguente comando configurerà automaticamente anche Nginx.

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

Il comando sopra scaricherà un certificato nella directory /etc/letsencrypt/live/wiki.example.com sul tuo server.

Genera un certificato Diffie-Hellman group.

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

Fai un tentativo di prova del processo per controllare se il rinnovo SSL funziona correttamente.

$ sudo certbot renew --dry-run

Se non vedi errori, sei a posto. Il tuo certificato si rinnoverà automaticamente.

Passo 10 - Configurare SELinux

Esegui i seguenti comandi per applicare il contesto SELinux corretto alla directory di Wiki.js.

$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wikijs(/.*)?"
$ sudo restorecon -Rv /var/www/wikijs

Crea una porta per HTTP e assegnala a 3000 per far funzionare Wiki.js con SELinux.

$ sudo semanage port -a -t http_port_t -p tcp 3000

Consenti a Nginx di connettersi alla rete.

$ sudo setsebool -P httpd_can_network_connect 1

Passo 11 - Configurare Nginx

Crea e apri il file /etc/nginx/conf.d/wikijs.conf per la modifica.

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

Incolla il seguente codice in esso.

# enforce HTTPS
server {
  listen 80;
  listen [::]:80;
  server_name wiki.example.com;
  return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name wiki.example.com;

    root /var/www/wikijs;

    access_log  /var/log/nginx/wiki.access.log;
    error_log   /var/log/nginx/wiki.error.log;

    http2_push_preload on; # Enable HTTP/2 Server Push

    ssl_certificate /etc/letsencrypt/live/wiki.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/wiki.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/wiki.example.com/chain.pem;
    ssl_session_timeout 1d;

    # Enable TLS versions (TLSv1.3 is required upcoming HTTP/3 QUIC).
    ssl_protocols TLSv1.2 TLSv1.3;

    # 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;

    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:50m;

    # OCSP Stapling ---
    # fetch OCSP records from URL in ssl_certificate and cache them
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    add_header X-Early-Data $tls1_3_early_data;

    location / {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://127.0.0.1:3000;
    }
}

# 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 "";
}

Sostituisci la posizione root nel file sopra con la directory sul tuo server.

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Apri il file /etc/nginx/nginx.conf per la modifica.

$ 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 tua configurazione Nginx.

$ sudo nginx -t

Se non vedi errori, significa che sei a posto.

Avvia il servizio Wiki.js.

$ sudo systemctl start wikijs

Ricarica il server Nginx.

$ sudo systemctl reload nginx

Passo 12 - Completare l’Installazione

Visita l’URL https://wiki.example.com per completare l’installazione.

Pagina di Configurazione di Wiki.js

Compila i dettagli del tuo account amministratore e l’URL. Disabilita la Telemetria deselezionando l’opzione Consenti Telemetria. Puoi disabilitarla anche dal pannello di Amministrazione. Fai clic sul pulsante Installa per procedere.

Verrai portato alla pagina di accesso.

Pagina di Accesso di Wiki.js

Inserisci i dettagli del tuo account e fai clic sul pulsante Accedi per procedere alla pagina di amministrazione.

Pagina di Amministrazione di Wiki.js

Ora puoi iniziare a utilizzare Wiki.js.

Conclusione

Questo conclude il nostro tutorial in cui hai imparato come installare Wiki.js su un server Rocky Linux 9. Se hai domande, postale nei commenti qui sotto.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.