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

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