Installation · 10 min read · Dec 19, 2025
Comment installer Wiki.js sur Ubuntu 22.04 LTS

Wiki.js est un logiciel wiki open-source et léger. Il est construit sur le framework JavaScript Node.js. Il peut être utilisé pour rédiger de la documentation, des wikis et du contenu web à l’aide d’un éditeur Markdown pour les développeurs et d’un éditeur WYSIWYG pour les personnes non techniques. Il prend en charge plusieurs types de contenu, y compris des diagrammes UML, des expressions mathématiques utilisant la syntaxe Tex ou MathML, et du code. Il comprend plusieurs modules pour diverses fonctions, y compris l’analyse, l’authentification, la journalisation, les moteurs de recherche tiers et plusieurs services de stockage pour synchroniser votre contenu.
Dans ce tutoriel, vous apprendrez à installer Wiki.js sur un serveur Ubuntu 22.04 en utilisant la base de données PostgreSQL et le serveur Nginx pour le proxy.
Prérequis
- Un serveur exécutant Ubuntu 22.04.
- Un utilisateur non-root avec des privilèges sudo.
- Un nom de domaine entièrement qualifié (FQDN) pointant vers votre serveur. Pour nos besoins, nous utiliserons
wiki.example.comcomme nom de domaine. - Assurez-vous que tout est à jour.
$ sudo apt update && sudo apt upgrade - Installez les paquets utilitaires de base. Certains d’entre eux peuvent déjà être installés.
$ sudo apt install wget curl ca-certificates gnupg gnupg2 nano unzip lsb-release ubuntu-keyring -y
Étape 1 - Configurer le pare-feu
Avant d’installer des paquets, la première étape consiste à configurer le pare-feu pour autoriser les connexions HTTP et HTTPS.
Vérifiez l’état du pare-feu.
$ sudo ufw status
Vous devriez voir quelque chose comme ce qui suit.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Autorisez les ports HTTP et HTTPS.
$ sudo ufw allow http
$ sudo ufw allow https
Vérifiez à nouveau l’état pour confirmer.
$ 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)
Étape 2 - Installer PostgreSQL et les utilitaires
Ubuntu 22.04 est livré avec une version plus ancienne de PostgreSQL. Nous allons installer Postgres 14 pour notre tutoriel.
Installez le dépôt pour 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'
Importez la clé GPG de 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
Mettez à jour la liste des dépôts du système.
$ sudo apt update
Installez le serveur PostgreSQL 14.
$ sudo apt install -y postgresql-14
Vérifiez l’état du service.
$ 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.
Étape 3 - Configurer PostgreSQL
Connectez-vous à l’interface de commande de PostgreSQL.
$ sudo -i -u postgres psql
Créez une nouvelle base de données pour Wiki.js.
postgres=# CREATE DATABASE wikidb;
Créez un nouvel utilisateur de base de données avec un mot de passe fort.
postgres=# CREATE USER wikiuser WITH ENCRYPTED PASSWORD 'wikipassword';
Accordez les droits à l’utilisateur pour utiliser la base de données.
postgres=# GRANT ALL PRIVILEGES ON DATABASE wikidb TO wikiuser;
Quittez l’interface de commande de Postgres.
postgres=# \q
Étape 4 - Installer Node.js
Wiki.js prend en charge Node v16 au moment de la rédaction de ce tutoriel.
Installez le dépôt Node en utilisant la commande suivante.
$ curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
Installez Node.
$ sudo apt install nodejs -y
Vérifiez l’installation de Node.
$ node --version
v16.18.0
Étape 5 - Télécharger Wiki.js
Créez un dossier pour installer Wiki.js.
$ sudo mkdir -p /var/www/wikijs
Définissez l’utilisateur actuellement connecté comme propriétaire du dossier.
$ sudo chown $USER:$USER /var/www/wikijs
Accédez au répertoire et téléchargez l’archive de code de Wiki.js.
$ cd /var/www/wikijs && wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
Extrayez l’archive téléchargée.
$ tar xzf wiki-js.tar.gz
Supprimez l’archive.
$ rm wiki-js.tar.gz
Étape 6 - Configurer et exécuter Wiki.js
Créez le fichier de configuration à partir de l’exemple.
$ cp config.sample.yml config.yml
Ouvrez le fichier de configuration pour l’éditer.
$ nano config.yml
Trouvez les paramètres de base de données suivants et mettez à jour leurs valeurs avec celles configurées à l’étape 3.
# PostgreSQL / MySQL / MariaDB / MS SQL Server uniquement :
host: localhost
port: 5432
user: wikiuser
pass: wikipassword
db: wikidb
ssl: false
Trouvez la ligne bindIP: 0.0.0.0 et mettez-la à jour comme suit.
bindIP: 127.0.0.1
Cela fera en sorte que Wiki.js écoute sur l’adresse de boucle locale car nous utiliserons le proxy Nginx pour y accéder depuis l’extérieur.
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Exécutez Wiki.js en utilisant la commande suivante.
$ node server
Vous recevrez une sortie similaire confirmant une installation réussie.
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: ............................................................................
Appuyez sur Ctrl + C pour arrêter le processus.
Étape 7 - Configurer un service Systemd
Le processus ci-dessus pour garder Wiki.js en cours d’exécution est temporaire. Pour rendre le processus permanent, nous devrons créer un service systemd pour exécuter Wiki.js en tant que service en arrière-plan. Cela permettra à Wiki.js de fonctionner lors des redémarrages du système.
Créez un fichier de service systemd pour Wiki.js et ouvrez-le pour l’éditer.
$ sudo nano /etc/systemd/system/wikijs.service
Collez le code suivant dedans. Remplacez la valeur de la variable User par le nom de votre utilisateur système.
[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
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Rechargez le démon du système.
$ sudo systemctl daemon-reload
Activez le service Wiki.js.
$ sudo systemctl enable wikijs
Étape 8 - Installer Nginx
Ubuntu 22.04 est livré avec une version plus ancienne de Nginx. Vous devez télécharger le dépôt officiel de Nginx pour installer la dernière version.
Importez la clé officielle de Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Configurez le dépôt officiel pour 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
Épinglez le dépôt pour donner la préférence au dépôt officiel par rapport à celui d’Ubuntu.
$ echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
| sudo tee /etc/apt/preferences.d/99nginx
Mettez à jour la liste des dépôts du système.
$ sudo apt update
Installez le serveur Nginx.
$ sudo apt install nginx -y
Vérifiez l’installation.
$ nginx -v
nginx version: nginx/1.22.1
Démarrez le serveur Nginx.
$ sudo systemctl start nginx
Vérifiez l’état du service.
$ sudo systemctl status nginx
? nginx.service - nginx - serveur web haute performance
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 - serveur web haute performance...
Étape 9 - Installer SSL
Nous devons installer Certbot pour générer le certificat SSL. Vous pouvez soit installer Certbot en utilisant le dépôt d’Ubuntu, soit obtenir la dernière version en utilisant l’outil Snapd. Nous allons utiliser la version Snapd.
Ubuntu 22.04 est livré avec Snapd installé par défaut. Exécutez les commandes suivantes pour vous assurer que votre version de Snapd est à jour.
$ sudo snap install core
$ sudo snap refresh core
Installez Certbot.
$ sudo snap install --classic certbot
Utilisez la commande suivante pour vous assurer que la commande Certbot peut être exécutée en créant un lien symbolique vers le répertoire /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Exécutez la commande suivante pour émettre le certificat.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d wiki.example.com
La commande ci-dessus téléchargera un certificat dans le répertoire /etc/letsencrypt/live/wiki.example.com sur votre serveur.
Générez un certificat de groupe Diffie-Hellman.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Vérifiez le service de planification de renouvellement de Certbot.
$ sudo systemctl list-timers
Vous trouverez snap.certbot.renew.service comme l’un des services programmés pour s’exécuter.
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
Faites un essai à blanc du processus pour vérifier si le renouvellement SSL fonctionne correctement.
$ sudo certbot renew --dry-run
Si vous ne voyez pas d’erreurs, vous êtes prêt. Votre certificat se renouvellera automatiquement.
Étape 10 - Configurer Nginx
Créez et ouvrez le fichier /etc/nginx/conf.d/wikijs.conf pour l’éditer.
$ sudo nano /etc/nginx/conf.d/wikijs.conf
Collez le code suivant dedans.
# imposer 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; # Activer le 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;
# Activer les versions TLS (TLSv1.3 est requis pour le prochain HTTP/3 QUIC).
ssl_protocols TLSv1.2 TLSv1.3;
# Activer le 0-RTT de TLSv1.3. Utilisez $ssl_early_data lors du proxy inverse pour
# éviter les attaques par rejeu.
#
# @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-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
# OCSP Stapling ---
# récupérer les enregistrements OCSP à partir de l'URL dans ssl_certificate et les mettre en cache
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;
}
}
# Ce bloc est utile pour déboguer TLS v1.3. N'hésitez pas à le supprimer
# et à utiliser la variable `$ssl_early_data` exposée par NGINX directement si vous
# souhaitez le faire.
map $ssl_early_data $tls1_3_early_data {
"~." $ssl_early_data;
default "";
}
Remplacez l’emplacement racine dans le fichier ci-dessus par le répertoire sur votre serveur.
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Ouvrez le fichier /etc/nginx/nginx.conf pour l’éditer.
$ sudo nano /etc/nginx/nginx.conf
Ajoutez la ligne suivante avant la ligne include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Vérifiez votre configuration Nginx.
$ sudo nginx -t
Si vous ne voyez pas d’erreurs, cela signifie que vous êtes prêt à partir.
Démarrez le service Wiki.js.
$ sudo systemctl start wikijs
Rechargez le serveur Nginx.
$ sudo systemctl reload nginx
Étape 11 - Terminer l’installation
Visitez l’URL https://wiki.example.com pour terminer l’installation.

Remplissez les détails de votre compte administrateur et l’URL. Désactivez la télémétrie en décochant l’option Allow Telemetry. Vous pouvez également la désactiver depuis le panneau d’administration. Cliquez sur le bouton Install pour continuer.
Vous serez dirigé vers la page de connexion.

Entrez vos détails de compte et cliquez sur le bouton Log in pour accéder à la page d’administration.

Vous pouvez maintenant commencer à utiliser Wiki.js.
Conclusion
Cela conclut notre tutoriel, où vous avez appris à installer Wiki.js sur un serveur Ubuntu 22.04. Si vous avez des questions, posez-les dans les commentaires ci-dessous.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.