Module 2 - Installation et configuration de WikiJS
Apprenez à installer et configurer WikiJS sur votre environnement de développement et production
Module 2Introduction
Dans ce module, nous allons installer WikiJS de A à Z. WikiJS est une solution moderne de wiki qui nécessite Node.js et une base de données. Nous verrons plusieurs méthodes d'installation pour répondre à tous les besoins.
Ce que vous allez installer
- Node.js : Runtime JavaScript pour WikiJS
- Base de données : PostgreSQL ou MySQL
- WikiJS : L'application wiki principale
- PM2 : Gestionnaire de processus (optionnel)
- Docker : Conteneurisation (alternative)
- Nginx : Serveur proxy (production)
- SSL/TLS : Certificats de sécurité
- Git : Intégration du contrôle de version
Méthodes d'installation
Nous couvrirons 3 méthodes : installation manuelle (développement), Docker (recommandée), et installation production. Choisissez celle qui correspond à votre environnement et vos besoins.
Prérequis système
- Windows 10/11
- 4 GB RAM minimum
- 2 GB espace disque
- Droits administrateur
- macOS 10.15+
- 4 GB RAM minimum
- 2 GB espace disque
- Homebrew recommandé
- Ubuntu 18.04+
- 4 GB RAM minimum
- 2 GB espace disque
- Curl et wget installés
Checklist avant installation
Installation Node.js
WikiJS nécessite Node.js version 18 ou supérieure. Nous recommandons la version LTS pour une stabilité optimale. Node.js inclut npm (gestionnaire de paquets).
Installation sur Windows
# 1. Aller sur https://nodejs.org/
# 2. Télécharger "LTS" (version recommandée)
# 3. Exécuter le fichier .msi téléchargé
# 4. Suivre l'assistant d'installation
# 5. Redémarrer votre terminal
# Installer Node.js via Chocolatey
choco install nodejs-lts
# Vérifier l'installation
node --version
npm --version
# Installer avec Winget (Windows 10/11)
winget install OpenJS.NodeJS.LTS
Installation sur macOS
# Installer Node.js LTS
brew install node@18
# Ou la version courante
brew install node
# Vérifier l'installation
node --version
npm --version
# 1. Télécharger depuis https://nodejs.org/
# 2. Ouvrir le fichier .pkg téléchargé
# 3. Suivre l'assistant d'installation
# 4. Redémarrer le terminal
Installation sur Linux (Ubuntu/Debian)
# Ajouter le dépôt NodeSource
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
# Installer Node.js
sudo apt-get install -y nodejs
# Vérifier l'installation
node --version
npm --version
# Installer avec Snap
sudo snap install node --classic
Vérification de Node.js
# Vérifier les versions
node --version # Devrait afficher v18.x.x ou v20.x.x
npm --version # Devrait afficher 9.x.x ou plus
# Test rapide
node -e "console.log('Node.js fonctionne !')"
Configuration de la base de données
WikiJS supporte PostgreSQL, MySQL, MariaDB et SQLite. PostgreSQL est recommandé pour la production, SQLite pour les tests locaux.
Installation PostgreSQL
# Installer PostgreSQL
sudo apt update
sudo apt install postgresql postgresql-contrib
# Démarrer le service
sudo systemctl start postgresql
sudo systemctl enable postgresql
# Avec Chocolatey
choco install postgresql
# Ou télécharger depuis https://www.postgresql.org/download/windows/
# Avec Homebrew
brew install postgresql
brew services start postgresql
# Créer utilisateur et base de données
sudo -u postgres psql
# Dans le shell PostgreSQL :
CREATE DATABASE wikijs;
CREATE USER wikijsuser WITH ENCRYPTED PASSWORD 'wikijs123';
GRANT ALL PRIVILEGES ON DATABASE wikijs TO wikijsuser;
\q
Installation MySQL
# Installer MySQL
sudo apt update
sudo apt install mysql-server
# Sécuriser l'installation
sudo mysql_secure_installation
# Se connecter à MySQL
sudo mysql -u root -p
# Créer base et utilisateur
CREATE DATABASE wikijs CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wikijsuser'@'localhost' IDENTIFIED BY 'wikijs123';
GRANT ALL PRIVILEGES ON wikijs.* TO 'wikijsuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Configuration SQLite
SQLite pour le développement
SQLite ne nécessite pas d'installation séparée. WikiJS créera automatiquement le fichier de base de données. Parfait pour les tests et le développement.
# SQLite sera configuré automatiquement lors de l'installation WikiJS
# Le fichier db.sqlite sera créé dans le dossier WikiJS
Installation WikiJS
Téléchargement et installation de la dernière version stable de WikiJS avec configuration personnalisée.
# Créer le dossier d'installation
mkdir wikijs
cd wikijs
# Télécharger la dernière version
curl -sSo- https://wiki.js.org/install.sh | bash
# Ou téléchargement manuel :
# wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
# tar xzf wiki-js.tar.gz
# Copier le fichier de configuration
cp config.sample.yml config.yml
# Éditer la configuration (voir section suivante)
nano config.yml
Structure des fichiers WikiJS
wikijs/
├── config.yml # Configuration principale
├── server/ # Application serveur
├── assets/ # Ressources statiques
├── data/ # Données utilisateur
├── db.sqlite # Base SQLite (si utilisée)
├── logs/ # Fichiers de log
└── node_modules/ # Dépendances Node.js
Premier démarrage
# Dans le dossier wikijs
node server
# Ou avec npm (si package.json existe)
npm start
Accès à WikiJS
Une fois démarré, WikiJS sera accessible à :
- Local : http://localhost:3000
- Réseau : http://votre-ip:3000
- Setup : Assistant de configuration automatique au premier accès
Premier accès - Assistant de configuration
- Ouvrir http://localhost:3000 dans votre navigateur
- Suivre l'assistant de configuration
- Choisir votre base de données
- Créer le compte administrateur
- Configurer le nom et l'URL du site
Problèmes courants
- Port occupé : Modifier le port dans config.yml
- Connexion DB : Vérifier les paramètres de connexion
- Permissions : S'assurer des droits sur le dossier
Configuration initiale
# Configuration WikiJS
title: "Mon Wiki"
host: http://localhost
port: 3000
# Base de données PostgreSQL
db:
type: postgres
host: localhost
port: 5432
user: wikijsuser
pass: wikijs123
db: wikijs
ssl: false
# Base de données SQLite (alternative)
# db:
# type: sqlite
# storage: ./db.sqlite
# Configuration des logs
logLevel: info
logFormat: default
logFilePath: ./logs/wiki.log
# Répertoires
dataPath: ./data
sessionSecret: changeme123456789
# Pool de connexions
pool:
min: 2
max: 10
# Configuration production
title: "Documentation Entreprise"
host: https://wiki.mondomaine.com
port: 3000
# Base de données sécurisée
db:
type: postgres
host: localhost
port: 5432
user: wikijs_prod
pass: SuperSecurePassword2024!
db: wikijs_production
ssl: true
# Session sécurisée
sessionSecret: UneLongueCleSecrete123456789!@#
# Logs détaillés
logLevel: warn
logFormat: json
logFilePath: ./logs/wiki-production.log
# Configuration SSL
ssl:
enabled: true
port: 3443
provider: letsencrypt
Options de configuration importantes
- title : Nom affiché de votre wiki
- host : URL publique du wiki (important pour les liens)
- sessionSecret : Clé de chiffrement des sessions (OBLIGATOIRE à changer)
- logLevel : Niveau de détail des logs (error, warn, info, debug)
- pool : Gestion des connexions à la base de données
Installation avec Docker (Recommandée)
Docker simplifie considérablement l'installation et la gestion de WikiJS. Parfait pour la production et les environnements isolés.
version: '3.8'
services:
# Base de données PostgreSQL
postgres:
image: postgres:15-alpine
environment:
POSTGRES_DB: wikijs
POSTGRES_USER: wikijsuser
POSTGRES_PASSWORD: wikijs123
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- wikijs-network
restart: unless-stopped
# Application WikiJS
wikijs:
image: requarks/wiki:2
depends_on:
- postgres
environment:
DB_TYPE: postgres
DB_HOST: postgres
DB_PORT: 5432
DB_USER: wikijsuser
DB_PASS: wikijs123
DB_NAME: wikijs
ports:
- "3000:3000"
networks:
- wikijs-network
restart: unless-stopped
volumes:
- wikijs_data:/wiki/data
volumes:
postgres_data:
wikijs_data:
networks:
wikijs-network:
driver: bridge
# Créer le fichier docker-compose.yml (copier le contenu ci-dessus)
nano docker-compose.yml
# Démarrer les services
docker-compose up -d
# Vérifier l'état
docker-compose ps
# Voir les logs
docker-compose logs wikijs
# docker-compose-production.yml
version: '3.8'
services:
postgres:
image: postgres:15-alpine
environment:
POSTGRES_DB: wikijs
POSTGRES_USER: wikijsuser
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- internal
restart: unless-stopped
wikijs:
image: requarks/wiki:2
depends_on:
- postgres
environment:
DB_TYPE: postgres
DB_HOST: postgres
DB_PORT: 5432
DB_USER: wikijsuser
DB_PASS: ${DB_PASSWORD}
DB_NAME: wikijs
networks:
- internal
- traefik
restart: unless-stopped
volumes:
- wikijs_data:/wiki/data
labels:
- "traefik.enable=true"
- "traefik.http.routers.wikijs.rule=Host(`wiki.mondomaine.com`)"
- "traefik.http.routers.wikijs.tls.certresolver=letsencrypt"
volumes:
postgres_data:
wikijs_data:
networks:
internal:
traefik:
external: true
Avantages Docker
- Isolation : Environnement complètement isolé
- Simplicité : Un seul fichier de configuration
- Sauvegarde : Volumes persistants pour les données
- Mise à jour : Simple avec
docker-compose pull
- Scalabilité : Facile de dupliquer l'installation
Vérification de l'installation
Tests de validation
# Test complet de WikiJS
echo "=== Tests WikiJS ==="
# 1. Vérifier Node.js
echo "Node.js version:"
node --version
# 2. Vérifier les ports
echo "Vérification port 3000:"
netstat -an | grep :3000 || ss -tuln | grep :3000
# 3. Test de connexion HTTP
echo "Test HTTP:"
curl -I http://localhost:3000
# 4. Vérifier les processus
echo "Processus WikiJS:"
ps aux | grep node | grep -v grep
# 5. Vérifier les logs
echo "Dernières lignes de log:"
tail -n 10 ./logs/wiki.log
Test fonctionnel complet
- Accéder à http://localhost:3000
- Se connecter avec le compte admin
- Créer une nouvelle page
- Ajouter du contenu Markdown
- Publier et visualiser la page
- Tester la recherche
Guide de dépannage
Solutions
- Changer le port : Modifier
port: 3001
dans config.yml - Identifier le processus :
lsof -i :3000
(Unix) ounetstat -ano | findstr :3000
(Windows) - Tuer le processus :
kill PID
ou Task Manager - Redémarrer : Relancer WikiJS après libération du port
# Unix/Linux/macOS
lsof -i :3000
netstat -tlnp | grep :3000
# Windows
netstat -ano | findstr :3000
tasklist | findstr "PID"
Diagnostics base de données
- Service actif : Vérifier que PostgreSQL/MySQL est démarré
- Paramètres de connexion : Host, port, user, password corrects
- Base existante : Vérifier que la base de données existe
- Permissions : L'utilisateur a-t-il les droits sur la base ?
# Test PostgreSQL
psql -h localhost -U wikijsuser -d wikijs
# Test MySQL
mysql -h localhost -u wikijsuser -p wikijs
# Vérifier le service
systemctl status postgresql # Linux
brew services list | grep postgres # macOS
Étapes de diagnostic
- Logs détaillés : Examiner les messages d'erreur
- Configuration : Valider le format YAML
- Permissions : Vérifier les droits sur les dossiers
- Dépendances :
npm install
si nécessaire
# Lancer en mode debug
DEBUG=wiki:* node server
# Ou avec plus de détails
NODE_ENV=development node server
# Vérifier la syntaxe YAML
python -c "import yaml; yaml.safe_load(open('config.yml'))"
Erreurs communes
- Fichier config.yml mal formaté (indentation YAML)
- sessionSecret non défini ou trop court
- Dossier data/ non accessible
- Version Node.js incompatible
Problèmes d'affichage
- Cache navigateur : Vider le cache (Ctrl+F5)
- URL de base : Vérifier le paramètre
host
dans config.yml - Ressources statiques : Problème avec les CSS/JS
- Proxy/Reverse proxy : Configuration incorrecte
Configuration host correcte
# Pour accès local
host: http://localhost
# Pour accès réseau
host: http://192.168.1.100
# Pour production
host: https://wiki.mondomaine.com