Abstract teal and amber illustration of interconnected wiki pages and a sidebar tree structure representing a self-hosted wiki knowledge base

Wiki.js

Wiki.js

Wiki.js est un wiki open source et auto-hébergé, développé en Node.js. Il propose un éditeur moderne, des permissions fines et plusieurs moteurs de base de données au choix : c’est d’ailleurs l’application la plus souvent comparée à BookStack dans les débats sur les wikis auto-hébergés. Les deux sont gratuits et reçoivent des mises à jour régulières. La vraie question, c’est comment vous voulez stocker le contenu, et qui a le droit d’y toucher.

Licence : GNU Affero General Public License v3.0 (AGPL-3.0), confirmée directement depuis le fichier LICENSE du dépôt GitHub requarks/wiki. Utilisation gratuite, y compris en usage commercial et auto-hébergé. La clause de partage du code de l’AGPL ne s’applique que si vous modifiez le code de Wiki.js lui-même et distribuez cette version modifiée ; faire tourner l’app telle quelle pour votre équipe ne déclenche rien.

En bref : site officiel js.wiki · code source github.com/requarks/wiki · dernière version stable v2.5.314 · image Docker publiée sous ghcr.io/requarks/wiki et requarks/wiki · plus de 28 000 étoiles GitHub · maintenu par Requarks.io depuis 2017.

Ce que fait vraiment Wiki.js

Les pages sont des documents plats, parcourus via une arborescence dans la barre latérale, pas la hiérarchie fixe Étagères > Livres > Chapitres > Pages de BookStack. Vous pouvez écrire en Markdown, avec l’éditeur WYSIWYG, ou directement en HTML, et chaque modification est versionnée : une page peut être restaurée ou comparée à une révision précédente.

L’authentification et le stockage, c’est là où Wiki.js prend vraiment l’avantage sur la plupart des wikis auto-hébergés. Les options de connexion vont de Google, Microsoft, GitHub, Discord et Slack jusqu’aux protocoles d’entreprise comme LDAP, SAML, Azure AD et OAuth2/OIDC générique, avec la double authentification en option. Côté stockage, Wiki.js peut synchroniser le contenu vers un dépôt Git, à la place de la base de données ou en complément. C’est la fonctionnalité que les utilisateurs de homelab citent le plus souvent pour expliquer pourquoi ils ont choisi Wiki.js plutôt que BookStack. La recherche tourne par défaut sur un moteur intégré sans configuration ; Elasticsearch, Algolia et Azure Search prennent le relais si le wiki grossit trop.

Installer Wiki.js avec Docker

Wiki.js publie ses propres images Docker : ghcr.io/requarks/wiki sur GitHub Container Registry, et requarks/wiki sur Docker Hub. C’est une vraie différence avec BookStack, qui n’a pas d’image officielle et repose sur une build communautaire. La documentation recommande de figer le tag de version majeure (:2) plutôt que :latest, et de l’associer à PostgreSQL, la seule base de données qui survivra une fois Wiki.js 3.x sorti.

services:
  db:
    image: postgres:15-alpine
    environment:
      POSTGRES_DB: wiki
      POSTGRES_PASSWORD: wikijsrocks
      POSTGRES_USER: wikijs
    restart: unless-stopped
    volumes:
      - db-data:/var/lib/postgresql/data

  wiki:
    image: ghcr.io/requarks/wiki:2
    depends_on:
      - db
    environment:
      DB_TYPE: postgres
      DB_HOST: db
      DB_PORT: 5432
      DB_USER: wikijs
      DB_PASS: wikijsrocks
      DB_NAME: wiki
    restart: unless-stopped
    ports:
      - "3000:3000"

volumes:
  db-data:
  1. Enregistrez le fichier ci-dessus sous docker-compose.yml et changez les deux mots de passe de base de données avant le premier lancement.
  2. Lancez docker compose up -d. Laissez à la base de données le temps de s’initialiser : Wiki.js a besoin qu’elle soit prête avant de terminer son propre démarrage.
  3. Ouvrez http://votre-ip-serveur:3000 et suivez l’assistant de configuration pour créer le premier compte administrateur.
  4. Placez un reverse proxy comme Nginx Proxy Manager ou Caddy devant le conteneur pour le HTTPS. Wiki.js a besoin d’un sous-domaine dédié et ne peut pas être servi depuis un sous-dossier d’URL.
docker compose up -d
docker compose logs -f wiki

Matériel : Wiki.js tourne très bien sur un seul cœur CPU, même si la documentation officielle en recommande deux ou plus pour les tâches de fond, et il lui faut au moins 1 Go de RAM sous Linux (un peu plus sous Windows ou macOS). Ça descend jusqu’au Raspberry Pi et ça monte jusqu’à une VM complète sans problème. Le matériel n’est généralement pas le facteur limitant ici : la base de données et le sous-domaine dédié obligatoire sont les deux vrais points à anticiper.

Avant de déployer : Wiki.js a besoin de son propre sous-domaine, du genre wiki.exemple.com. Impossible de le faire tourner depuis un sous-dossier d’un domaine existant, point final. SQLite est listé comme base de données supportée, mais la documentation le qualifie de « non recommandé en production », et c’est l’un des quatre moteurs (MySQL, MariaDB, MS SQL Server et SQLite) qui disparaîtront à la sortie de Wiki.js 3.x. PostgreSQL est vraiment le seul choix durable ici.

Wiki.js vs BookStack

Optez pour BookStack si vous préférez qu’on décide de la structure à votre place : Étagères, Livres, Chapitres et Pages imposent une hiérarchie cohérente, l’éditeur WYSIWYG est plus accessible pour les contributeurs non techniques, et la licence MIT simplifie les choses. Optez pour Wiki.js si vous voulez plus de contrôle sur le stockage et la connexion : la synchronisation Git en option, le choix de la base de données et la liste d’authentification plus étoffée comptent davantage pour les équipes qui gèrent déjà leur propre fournisseur d’identité. Aucun des deux n’est un mauvais choix pour un homelab : BookStack séduit plutôt les équipes orientées documentation, Wiki.js les équipes qui pensent déjà en Git.

  • Images Docker officielles fournies par le projet lui-même, sur GHCR et Docker Hub
  • Choix du moteur de base de données aujourd’hui, plus une synchronisation du contenu via Git comme véritable alternative de stockage
  • Authentification poussée : LDAP, SAML, OAuth2/OIDC, connexions sociales et double authentification
  • Activement maintenu, avec plus de 28 000 étoiles GitHub et des sorties régulières
  • L’AGPL-3.0 est plus restrictive que la licence MIT de BookStack si vous comptez modifier et redistribuer le code
  • Nécessite un sous-domaine dédié, contrairement aux outils qui tolèrent un sous-dossier
  • MySQL, MariaDB, MS SQL Server et SQLite sont tous retirés dans la prochaine version majeure
  • Pas de marketplace de plugins tiers, juste un ensemble fixe de modules à activer ou désactiver

Vous hésitez encore sur le matériel pour faire tourner tout ça ? Notre guide auto-hébergement homelab pour débutants couvre le choix de cette première machine. Et puisque Wiki.js a besoin d’un vrai sous-domaine, Nginx Proxy Manager ou Caddy sont les deux reverse proxies que la plupart des homelabbers ont déjà en place pour délivrer le certificat HTTPS.

FAQ

Est-ce que Wiki.js est gratuit ?

Oui. Il est distribué sous licence AGPL-3.0, sans palier payant ni fonctionnalité verrouillée. L’obligation de partage du code source ne s’applique que si vous modifiez le code de Wiki.js lui-même et distribuez cette version publiquement ; faire tourner le logiciel tel quel pour votre équipe ne déclenche rien.

De quelle base de données Wiki.js a-t-il besoin ?

PostgreSQL 9.5 ou une version plus récente est le choix officiellement recommandé. MySQL 8.0+, MariaDB 10.2.7+, MS SQL Server 2012+ et SQLite 3.9+ sont eux aussi supportés actuellement, mais tout sauf PostgreSQL sera abandonné dans la prochaine version majeure, et SQLite n’est déjà pas recommandé en production.

Wiki.js ou BookStack pour un wiki de homelab ?

Les deux sont de bonnes options gratuites. La structure fixe et l’édition WYSIWYG de BookStack conviennent mieux aux contributeurs non techniques ; le stockage Git et les options d’authentification plus larges de Wiki.js conviennent aux équipes qui veulent davantage de contrôle sur le stockage et la connexion. Ni l’un ni l’autre n’est un mauvais choix ici.

Wiki.js peut-il tourner sans Docker ?

Oui. C’est une application Node.js : elle tourne donc nativement sous Linux, macOS ou Windows avec Node 22 ou 24 installé, à condition d’avoir une base de données supportée à côté. Docker reste juste le chemin le plus rapide, puisque l’image embarque déjà la bonne version de Node.js.

Wiki.js gère-t-il l’authentification unique (SSO) ?

Oui. Au-delà des comptes locaux et des connexions sociales, Wiki.js inclut des modules LDAP, SAML, CAS, Auth0, Okta et Azure AD, plus OAuth2 et OpenID Connect génériques pour les fournisseurs d’identité qui n’ont pas de module dédié.