Pourquoi auto-héberger Outline sur un VPS
Outline stocke souvent ce qu'une entreprise a de plus stratégique : procédures internes, runbooks, décisions d'architecture, onboarding. Sur la version SaaS, vous payez au siège et vos contenus vivent sur une infrastructure tierce. En l'installant sur votre propre VPS, vous fixez vous-même les règles : authentification SSO via votre fournisseur, sauvegardes de la base PostgreSQL selon votre politique, rétention illimitée et nombre d'utilisateurs non facturé. Outline reste léger en lecture mais s'appuie sur une stack précise (PostgreSQL pour les documents, Redis pour les sessions et les websockets temps réel, un stockage compatible S3 pour les pièces jointes). Un VPS dédié vous laisse dimensionner chacun de ces composants et déployer la pile complète avec un seul fichier docker-compose.yml.
Ce que vous gagnez concrètement
- Utilisateurs illimités sans facturation par siège, contrairement aux offres SaaS.
- SSO intégré avec votre identité d'entreprise (Google Workspace, OIDC, Azure AD) sous votre contrôle.
- Recherche plein texte performante directement servie par votre PostgreSQL, sans dépendance externe.
- Pièces jointes et exports stockés sur votre propre bucket S3 ou MinIO auto-hébergé.
- Édition collaborative temps réel grâce à Redis, sans aucune donnée transitant par un tiers.
- Sauvegardes et restauration maîtrisées : un
pg_dumpsuffit à archiver toute la base documentaire.
Prérequis matériels et logiciels
Outline est confortable avec 2 vCPU et 4 Go de RAM pour une équipe de 20 à 50 personnes : PostgreSQL et Redis consomment peu au repos, mais l'édition temps réel et la recherche montent en charge ponctuellement. Comptez 20 Go de disque pour la base et les logs, davantage si vous stockez les pièces jointes localement plutôt que sur S3. Côté logiciel : Docker Engine et le plugin docker compose v2, un nom de domaine pointé vers l'IP du VPS (par exemple wiki.votreentreprise.com), et un compte SMTP pour les e-mails d'invitation. Outline exige obligatoirement un fournisseur d'authentification : prévoyez les identifiants OAuth (Google, Slack ou un serveur OIDC) avant de démarrer, car il n'y a pas de connexion par simple mot de passe.
Déployer Outline étape par étape
Préparer le VPS et Docker
Mettez le système à jour avec
apt update && apt upgrade -y, installez Docker via le script officiel, puis vérifiez avecdocker compose version. Créez un dossier/opt/outlinequi hébergera votre configuration.Générer les secrets et le fichier d'environnement
Outline requiert deux clés : générez-les avec
openssl rand -hex 32pourSECRET_KEYetUTILS_SECRET. Renseignez dans le.envles variablesDATABASE_URL,REDIS_URL,URL=https://wiki.votreentreprise.comet les identifiants OAuth de votre fournisseur.Définir la stack PostgreSQL, Redis et Outline
Dans
docker-compose.yml, déclarez trois services :postgres(imagepostgres:15avec un volume persistant),redis(imageredis:7) etoutline(imageoutlinewiki/outline:latest). Liez Outline aux deux backends via les variables d'environnement et exposez le port3000en interne uniquement.Initialiser la base de données
Lancez les migrations avant le premier démarrage avec
docker compose run --rm outline yarn db:migrate --env=production-ssl-disabled. Cette commande crée le schéma documentaire dans PostgreSQL ; sans elle, Outline refusera de démarrer.Placer un reverse proxy avec SSL
Mettez Caddy ou Traefik devant le service
outline. Avec Caddy, une lignewiki.votreentreprise.com { reverse_proxy outline:3000 }génère et renouvelle automatiquement le certificat Let's Encrypt. Veillez à transmettre les en-têtes WebSocket pour l'édition temps réel.Démarrer et créer le premier espace
Lancez la pile avec
docker compose up -d, puis ouvrezhttps://wiki.votreentreprise.com. Connectez-vous via votre fournisseur OAuth : le premier compte authentifié devient administrateur de l'espace de travail.
Activez le stockage S3 plutôt que local pour les pièces jointes : pointez AWS_S3_UPLOAD_BUCKET_URL vers un MinIO auto-hébergé sur le même VPS. Vous découplez ainsi le volume des fichiers de la base PostgreSQL, ce qui rend les pg_dump rapides et légers, et vous permet de monter en charge sans gonfler le conteneur applicatif.