Installazione · 10 min read · Dec 19, 2025
Come installare Wiki.js su Ubuntu 22.04 LTS

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 contenuti, 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 Ubuntu 22.04 utilizzando il database PostgreSQL e il server Nginx per il proxy.
Prerequisiti
- Un server che esegue Ubuntu 22.04.
- 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.comcome nome di dominio. - Assicurati che tutto sia aggiornato.
$ sudo apt update && sudo apt upgrade - Installa pacchetti di utilità di base. Alcuni di essi potrebbero già essere installati.
$ sudo apt install wget curl ca-certificates gnupg gnupg2 nano unzip lsb-release ubuntu-keyring -y
Passo 1 - Configurare il Firewall
Prima di installare qualsiasi pacchetto, il primo passo è configurare il firewall per consentire connessioni HTTP e HTTPS.
Controlla lo stato del firewall.
$ sudo ufw status
Dovresti vedere qualcosa di simile al seguente.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Consenti le porte HTTP e HTTPS.
$ sudo ufw allow http
$ sudo ufw allow https
Controlla di nuovo lo stato per confermare.
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Passo 2 - Installare PostgreSQL e Utilità
Ubuntu 22.04 viene fornito con una versione più vecchia di PostgreSQL. Installeremo Postgres 14 per il nostro tutorial.
Installa il repository per PostgreSQL.
$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
Importa la chiave GPG di PostgreSQL.
$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null
Aggiorna l’elenco dei repository di sistema.
$ sudo apt update
Installa il server PostgreSQL 14.
$ sudo apt install -y postgresql-14
Controlla lo stato del servizio.
$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Tue 2022-10-25 06:24:24 UTC; 10min ago
Main PID: 4032 (code=exited, status=0/SUCCESS)
CPU: 1ms
Oct 25 06:24:24 wiki systemd[1]: Starting PostgreSQL RDBMS...
Oct 25 06:24:24 wiki systemd[1]: Finished PostgreSQL RDBMS.
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 per 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://deb.nodesource.com/setup_16.x | sudo -E bash -
Installa Node.
$ sudo apt 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
Elimina l’archivio.
$ rm 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.
Loading configuration from /var/www/wikijs/config.yml... OK
2022-10-25T06:40:46.294Z [MASTER] info: =======================================
2022-10-25T06:40:46.296Z [MASTER] info: = Wiki.js 2.5.289 =====================
2022-10-25T06:40:46.296Z [MASTER] info: =======================================
2022-10-25T06:40:46.296Z [MASTER] info: Initializing...
2022-10-25T06:40:46.962Z [MASTER] info: Using database driver pg for postgres [ OK ]
2022-10-25T06:40:46.974Z [MASTER] info: Connecting to database...
2022-10-25T06:40:47.067Z [MASTER] info: Database Connection Successful [ OK ]
2022-10-25T06:40:47.345Z [MASTER] warn: DB Configuration is empty or incomplete. Switching to Setup mode...
2022-10-25T06:40:47.345Z [MASTER] info: Starting setup wizard...
2022-10-25T06:40:47.510Z [MASTER] info: Starting HTTP server on port 3000...
2022-10-25T06:40:47.511Z [MASTER] info: HTTP Server on port: [ 3000 ]
2022-10-25T06:40:47.515Z [MASTER] info: HTTP Server: [ RUNNING ]
2022-10-25T06:40:47.515Z [MASTER] info: .......................................................................
2022-10-25T06:40:47.515Z [MASTER] info:
2022-10-25T06:40:47.516Z [MASTER] info: Browse to http://YOUR-SERVER-IP:3000/ to complete setup!
2022-10-25T06:40:47.516Z [MASTER] info:
2022-10-25T06:40:47.516Z [MASTER] info: ........................................................................
Premi Ctrl + C per fermare 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 al suo interno. 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
Ubuntu 22.04 viene fornito con una versione più vecchia di Nginx. Devi scaricare il repository ufficiale di Nginx per installare l’ultima versione.
Importa la chiave ufficiale di Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Imposta il repository ufficiale per Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Fissa il repository per dare priorità al repository ufficiale rispetto a quello di Ubuntu.
$ echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
| sudo tee /etc/apt/preferences.d/99nginx
Aggiorna l’elenco dei repository di sistema.
$ sudo apt update
Installa il server Nginx.
$ sudo apt install nginx -y
Verifica l’installazione.
$ nginx -v
nginx version: nginx/1.22.1
Avvia il server Nginx.
$ sudo systemctl start nginx
Controlla lo stato del servizio.
$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-10-25 06:50:05 UTC; 2s ago
Docs: https://nginx.org/en/docs/
Process: 5522 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 5523 (nginx)
Tasks: 2 (limit: 1030)
Memory: 1.8M
CPU: 4ms
CGroup: /system.slice/nginx.service
??5523 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
??5524 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
Oct 25 06:50:05 wiki systemd[1]: Starting nginx - high performance web server...
Passo 9 - Installare SSL
Dobbiamo installare Certbot per generare il certificato SSL. Puoi installare Certbot utilizzando il repository di Ubuntu o scaricare l’ultima versione utilizzando lo strumento Snapd. Utilizzeremo la versione Snapd.
Ubuntu 22.04 viene fornito con Snapd installato per impostazione predefinita. Esegui i seguenti comandi per assicurarti che la tua versione di Snapd sia aggiornata.
$ sudo snap install core
$ sudo snap refresh core
Installa Certbot.
$ sudo snap install --classic certbot
Usa il seguente comando per assicurarti che il comando Certbot possa essere eseguito creando un collegamento simbolico alla directory /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Esegui il seguente comando per emettere il certificato.
$ 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
Controlla il servizio di pianificazione del rinnovo di Certbot.
$ sudo systemctl list-timers
Troverai snap.certbot.renew.service come uno dei servizi programmati per l’esecuzione.
NEXT LEFT LAST PASSED UNIT ACTIVATES
.................................................................................................................................
Tue 2022-10-25 00:00:00 UTC 17h left Tue 2022-10-25 04:49:20 UTC 2h ago logrotate.timer logrotate.service
Tue 2022-10-25 02:39:09 UTC 20h left Tue 2022-10-25 06:47:33 UTC 12min ago apt-daily.timer apt-daily.service
Tue 2022-10-25 06:02:00 UTC 8h left n/a n/a snap.certbot.renew.timer snap.certbot.renew.service
Fai una 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 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 al suo interno.
# 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 11 - Completa l’Installazione
Visita l’URL https://wiki.example.com per completare l’installazione.

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. Clicca sul pulsante Installa per procedere.
Verrai portato alla pagina di accesso.

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

Ora puoi iniziare a utilizzare Wiki.js.
Conclusione
Questo conclude il nostro tutorial, dove hai imparato come installare Wiki.js su un server Ubuntu 22.04. Se hai domande, postale nei commenti qui sotto.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.