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.com comme 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.

Page de configuration de Wiki.js

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.

Page de connexion de Wiki.js

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

Page d'administration de Wiki.js

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.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.