Installation · 10 min read · Oct 14, 2025

Comment installer Wiki.js sur Rocky Linux 9

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 en utilisant un éditeur Markdown pour les développeurs et 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 Rocky Linux 9 en utilisant la base de données PostgreSQL et le serveur Nginx pour le proxy.

Prérequis

  • Un serveur exécutant Rocky Linux 9.
  • 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 dnf update
  • Installez des paquets utilitaires de base. Certains d’entre eux peuvent déjà être installés. $ sudo dnf install wget curl nano unzip yum-utils -y

Étape 1 - Configurer le pare-feu

La première étape consiste à configurer le pare-feu. Rocky Linux utilise le pare-feu Firewalld. Vérifiez l’état du pare-feu.

$ sudo firewall-cmd --state
running

Le pare-feu fonctionne avec différentes zones, et la zone publique est celle par défaut que nous allons utiliser. Listez tous les services et ports actifs sur le pare-feu.

$ sudo firewall-cmd --permanent --list-services

Il devrait afficher la sortie suivante.

cockpit dhcpv6-client ssh

Wiki.js a besoin des ports HTTP et HTTPS pour fonctionner. Ouvrez-les.

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

Rechargez le pare-feu pour appliquer les modifications.

$ sudo firewall-cmd --reload

Étape 2 - Installer PostgreSQL et les utilitaires

Rocky Linux 9 est livré avec une version plus ancienne de PostgreSQL. Nous allons installer Postgres 14 pour notre tutoriel.

Installez le RPM du dépôt pour PostgreSQL.

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

Installez le serveur PostgreSQL 14.

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

Initialisez la base de données.

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

Activez et démarrez le service PostgreSQL.

$ sudo systemctl enable postgresql-14 --now

Vérifiez l’état du service.

$ sudo systemctl status postgresql-14
? postgresql-14.service - Serveur de base de données PostgreSQL 14
     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...

Étape 3 - Configurer PostgreSQL

Connectez-vous à l’interface en ligne 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 d’utiliser la base de données.

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

Quittez l’interface en ligne 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://rpm.nodesource.com/setup_16.x | sudo bash -

Installez Node.

$ sudo dnf 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 du 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

É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’édition.

$ 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 allons utiliser 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.

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!

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 Wiki.js afin de l’exécuter 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’édition.

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

Collez le code suivant. 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 système.

$ sudo systemctl daemon-reload

Activez le service Wiki.js.

$ sudo systemctl enable wikijs

Étape 8 - Installer Nginx

Rocky Linux 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.

Créez et ouvrez le fichier /etc/yum.repos.d/nginx.repo pour créer le dépôt officiel de Nginx.

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

Collez le code suivant.

[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

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Installez le serveur Nginx.

$ sudo dnf install nginx -y

Vérifiez l’installation.

$ nginx -v
nginx version: nginx/1.22.1

Activez et démarrez le serveur Nginx.

$ sudo systemctl enable nginx --now

Vérifiez l’état du serveur.

$ sudo systemctl status nginx
? nginx.service - nginx - serveur web haute performance
     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...

Étape 9 - Installer SSL

Nous allons utiliser l’outil Certbot en utilisant l’outil Snapd pour émettre des certificats SSL. Il nécessite le dépôt EPEL pour fonctionner.

$ sudo dnf install epel-release

Nous allons utiliser Snapd pour installer Certbot. Installez Snapd.

$ sudo dnf install snapd

Activez et démarrez le service Snap.

$ sudo systemctl enable snapd.socket --now

Créez les liens nécessaires pour que Snapd fonctionne.

$ 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

Installez le dépôt Snapd core.

$ sudo snap install core
$ sudo snap refresh core

Installez Certbot.

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

Générez le certificat. La commande suivante configurera également automatiquement Nginx.

$ 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

Faites un essai 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 SELinux

Exécutez les commandes suivantes pour appliquer le bon contexte SELinux au répertoire Wiki.js.

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

Créez un port pour HTTP et assignez-le à 3000 pour faire fonctionner Wiki.js avec SELinux.

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

Autorisez Nginx à se connecter au réseau.

$ sudo setsebool -P httpd_can_network_connect 1

Étape 11 - Configurer Nginx

Créez et ouvrez le fichier /etc/nginx/conf.d/wikijs.conf pour l’édition.

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

Collez le code suivant.

# appliquer 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 serveur HTTP/2 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 de 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 de 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’édition.

$ 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.

Démarrez le service Wiki.js.

$ sudo systemctl start wikijs

Rechargez le serveur Nginx.

$ sudo systemctl reload nginx

Étape 12 - 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 Rocky Linux 9. 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.