Tutoriel

Self-hosting

Outline : wiki auto-hébergé sur VPS, alternative à Notion

L'accord par lequel Bending Spoons a racheté Airtable, annoncé en août 2026 et finalisé le 4 septembre, a ravivé une question que posent équipes techniques et agences : à partir de quand la dépendance envers un éditeur SaaS devient-elle un risque opérationnel ? Dans ce contexte, Outline revient sur le radar comme alternative sérieuse à Notion et à Confluence : rendu Markdown élégant, édition temps réel, permissions granulaires. Avant de le déployer, deux points s'imposent : sa licence BSL 1.1, qui n'est pas open source au sens OSI, et ses exigences d'installation — un fournisseur d'identité obligatoire, PostgreSQL, Redis et un stockage pour les fichiers.

11 min de lecture6 étapes
Sommaire· Pourquoi Outline plutôt que Notion ou Confluence sur un VPS1/8
  1. 01Pourquoi Outline plutôt que Notion ou Confluence sur un VPS
  2. 02Ce qu'Outline apporte concrètement
  3. 03Licence BSL 1.1 : Outline n'est pas open source
  4. 04Outline vs Notion vs Confluence vs Docmost
  5. 05Prérequis pour héberger Outline sur un VPS
  6. 06Déployer Outline avec Docker Compose
  7. 07Mettre à jour Outline sans mauvaise surprise
  8. 08Quand choisir Docmost plutôt qu'Outline

Pourquoi Outline plutôt que Notion ou Confluence sur un VPS

Notion et Confluence partagent le même défaut structurel : leur tarification est indexée sur le nombre d'utilisateurs, et elle monte dès que l'équipe grandit. Chez Notion, l'IA est réservée aux plans Business et Enterprise depuis l'annonce du 13 mai 2025 : son prix est inclus dans chaque siège, qu'elle serve ou non. Le plan Business est affiché à 19,50 € par membre et par mois en facturation annuelle sur notion.com/pricing (prix servi à un visiteur de la zone euro) — 390 € par mois pour vingt personnes, avant les crédits Notion facturés en supplément pour faire tourner les agents personnalisés. Pour un wiki dont vous ne contrôlez ni les données, ni la roadmap, ni la date de la prochaine acquisition.

Outline casse cette logique. Hébergé sur votre propre VPS, le coût est fixe : vous payez le serveur, pas chaque collaborateur supplémentaire. Le rendu est soigné — typographie propre, blocs de code avec coloration syntaxique, images intégrées, tables — et l'édition simultanée passe par WebSockets. La recherche plein texte est indexée directement dans PostgreSQL : aucun service externe, aucun coût supplémentaire. Pour une équipe technique de 10 à 50 personnes, c'est l'un des wikis self-hosted les plus aboutis.

L'argument du rachat d'Airtable n'est pas anecdotique. Bending Spoons s'est fait une spécialité d'acquérir des outils SaaS populaires — Evernote, Meetup, WeTransfer — puis d'en remodeler l'économie. Elle annonce vouloir investir dans Airtable, mais quand votre documentation d'entreprise repose sur un SaaS tiers, un changement de propriétaire peut signifier hausse tarifaire, fonctions gratuites réduites ou pivot vers un modèle incompatible avec votre usage. Héberger Outline sur votre propre infrastructure, c'est sortir de ce risque.

Ce qu'Outline apporte concrètement

  • Rendu Markdown en temps réel — l'éditeur ressemble à Notion sans les blocs propriétaires
  • Édition collaborative — plusieurs rédacteurs sur le même document via WebSockets et Redis
  • Permissions par collection et par groupe — lecture seule, commentaire, édition, administration
  • Recherche plein texte — indexée dans PostgreSQL, opérationnelle dès l'installation
  • Pièces jointes et images — sur le disque du VPS par défaut, ou sur un stockage compatible S3 (MinIO, Backblaze B2, AWS S3)
  • API documentée — intégrable dans vos pipelines CI/CD ou vos scripts ; elle sert aussi à automatiser les exports de contenu
  • Import depuis Notion et Markdown — l'import Notion passe par une intégration à déclarer ; l'importeur Confluence, lui, est réservé aux éditions Business et Enterprise

Licence BSL 1.1 : Outline n'est pas open source

C'est le point que les comparatifs passent souvent sous silence. Outline est publié sous Business Source License 1.1 (BSL 1.1). Le fichier de licence du dépôt le dit lui-même : « not an Open Source license » — ce n'est pas une interprétation, c'est la formulation des auteurs.

Concrètement, la licence accorde l'usage du logiciel à une condition : ne pas l'exploiter comme « Document Service », c'est-à-dire ne pas proposer Outline comme service documentaire à des tiers. La page officielle des restrictions est sans ambiguïté : vendre, revendre ou héberger Outline en tant que service est une violation, et la violation met fin à la licence automatiquement. Un éditeur qui voudrait offrir un wiki Outline facturé à ses clients est donc hors licence ; une agence qui en hébergerait pour ses clients doit poser la question à l'éditeur avant de déployer.

Pour un usage interne d'équipe — base de connaissances, documentation produit, runbooks, onboarding — vous pouvez auto-héberger librement.

La date de bascule vers Apache 2.0 n'est pas unique : chaque version a la sienne, quatre ans après sa sortie. Le fichier LICENSE de la version 1.12.0, publiée le 23 octobre 2026, fixe ce passage au 2030-10-23. La version que vous déployez aujourd'hui ne deviendra donc pleinement permissive qu'en 2030, et chaque mise à jour repousse l'échéance pour le nouveau code.

Résumé pratique : usage interne, aucun problème. Revente ou service à des clients : lisez la licence et interrogez l'éditeur avant de déployer. Pour situer la BSL parmi les licences « source available », voir notre analyse BSL et SSPL.

Outline vs Notion vs Confluence vs Docmost

Faites défiler le tableau

OutlineNotionConfluenceDocmost
Modèle de licenceBSL 1.1 (chaque version → Apache 2.0 après 4 ans)Propriétaire SaaSPropriétaire SaaSAGPL-3.0 (cœur) + éditions payantes
Auto-hébergementOui — Docker + VPSNonOui (Data Center, coûteux)Oui — Docker + VPS
TarificationCoût serveur fixePar membre/moisPar utilisateurCoût serveur fixe (édition libre)
Édition temps réelOui (WebSockets + Redis)OuiOuiOui (WebSockets + Redis)
Stack requisePostgreSQL + Redis + stockage fichiersN/A (SaaS)PostgreSQL/Oracle + infra lourdePostgreSQL + Redis
Recherche plein textePostgreSQL intégréOui (SaaS)OuiPostgreSQL intégré
Import Notion / ConfluenceNotion oui ; Confluence en édition payanteExport seulementExport seulementNotion oui ; Confluence en édition payante
ConnexionSSO obligatoire (OIDC, Google, Slack, Microsoft, Discord)Compte NotionCompte AtlassianE-mail et mot de passe ; SSO en édition payante

Prérequis pour héberger Outline sur un VPS

Outline est composé de trois services qui doivent tourner ensemble.

PostgreSQL (version 14 ou plus) stocke tous les documents, les utilisateurs et les permissions : c'est lui qui porte l'état de votre wiki. Redis (version 4 ou plus) gère les sessions, les WebSockets de l'édition temps réel et les files de travaux en arrière-plan ; s'il tombe, l'édition simultanée s'arrête. Le stockage des fichiers reçoit pièces jointes et images : par défaut sur le disque du VPS (FILE_STORAGE=local, dossier /var/lib/outline/data), ou sur un bucket compatible S3 (FILE_STORAGE=s3) — un MinIO sur le même VPS, Backblaze B2 ou AWS S3. Sortir les fichiers vers S3 garde des sauvegardes PostgreSQL légères et laisse grossir le volume des pièces jointes sans toucher au serveur applicatif.

Dimensionnement : la documentation officielle exige au minimum 512 Mo de mémoire et conseille 1 Go ou plus quand les utilisateurs sont nombreux. Pour une équipe de 20 à 50 personnes avec PostgreSQL et Redis sur la même machine, visez 2 vCPU, 4 Go de RAM et 20 Go de SSD, davantage si les pièces jointes restent en local. Un VPS Power (4 vCPU, 8 GB) laisse de la marge pour les pics d'édition simultanée. Le nombre de processus se règle avec WEB_CONCURRENCY : comptez un processus par tranche de 512 Mo de mémoire disponible.

L'authentification est le prérequis qu'on découvre trop tard. Outline n'a pas de connexion par e-mail et mot de passe : il faut au moins un fournisseur configuré — Slack, Google, Microsoft Entra, Discord ou un serveur OIDC générique (Authentik, Keycloak…) — sans quoi l'installation n'offre aucune option de connexion. SAML est réservé aux éditions Business et Enterprise. Prévoyez aussi un serveur SMTP : il envoie les notifications (« document mis à jour ») et rend possible la connexion par lien e-mail.

Côté hôte : Docker et Docker Compose v2, un reverse proxy (Nginx ou Caddy), un certificat TLS valide et un nom de domaine dédié (wiki.votre-domaine.com) : la variable URL doit correspondre exactement à l'adresse publique.

Déployer Outline avec Docker Compose

  1. Créer le fichier `docker-compose.yml`

    Créez un répertoire dédié :

    mkdir -p /opt/outline && cd /opt/outline

    Puis le fichier de composition. Fixez une version précise plutôt que latest, et ne publiez le port 3000 que sur la boucle locale :

    services:
      outline:
        image: docker.getoutline.com/outlinewiki/outline:1.12.0
        env_file: .env
        ports:
          - "127.0.0.1:3000:3000"
        volumes:
          - outline_data:/var/lib/outline/data
        depends_on:
          - postgres
          - redis
    
      postgres:
        image: postgres:18
        environment:
          POSTGRES_USER: outline
          POSTGRES_PASSWORD: motdepasse
          POSTGRES_DB: outline
        volumes:
          - postgres_data:/var/lib/postgresql
    
      redis:
        image: redis:7
        volumes:
          - redis_data:/data
    
    volumes:
      outline_data:
      postgres_data:
      redis_data:

    L'image Postgres crée l'utilisateur et la base au premier démarrage à partir de POSTGRES_USER, POSTGRES_PASSWORD et POSTGRES_DB : sans mot de passe, le conteneur refuse de démarrer.

  2. Configurer le fichier `.env`

    Générez la clé secrète et la clé d'utilitaire :

    openssl rand -hex 32   # SECRET_KEY
    openssl rand -hex 32   # UTILS_SECRET

    Variables essentielles du .env (exemple avec un fournisseur OIDC) :

    URL=https://wiki.votre-domaine.com
    PORT=3000
    SECRET_KEY=<clé générée>
    UTILS_SECRET=<clé générée>
    DATABASE_URL=postgres://outline:motdepasse@postgres:5432/outline
    PGSSLMODE=disable
    REDIS_URL=redis://redis:6379
    FORCE_HTTPS=true
    WEB_CONCURRENCY=2
    FILE_STORAGE=local
    FILE_STORAGE_LOCAL_ROOT_DIR=/var/lib/outline/data
    OIDC_CLIENT_ID=<client-id>
    OIDC_CLIENT_SECRET=<client-secret>
    OIDC_AUTH_URI=https://auth.votre-domaine.com/application/o/authorize/
    OIDC_TOKEN_URI=https://auth.votre-domaine.com/application/o/token/
    OIDC_USERINFO_URI=https://auth.votre-domaine.com/application/o/userinfo/
    SMTP_SERVICE=<service>
    SMTP_USERNAME=<user>
    SMTP_PASSWORD=<password>
    [email protected]

    PGSSLMODE=disable est nécessaire quand PostgreSQL tourne sur la même machine sans TLS : sans lui, Outline tente une connexion chiffrée et échoue. Pour Google, Slack, Microsoft ou Discord, remplacez le bloc OIDC par les variables du fournisseur (GOOGLE_CLIENT_ID, SLACK_CLIENT_ID…) déclarées dans le fichier d'exemple officiel. Sauvegardez ce fichier hors du serveur : perdre SECRET_KEY rend illisibles les données chiffrées en base.

  3. Lancer la pile

    docker compose up -d
    docker compose logs -f outline
    docker compose ps

    Les migrations de base de données s'exécutent automatiquement au démarrage du conteneur Outline : suivez les journaux jusqu'au message d'écoute sur le port 3000, puis vérifiez que les trois services sont running.

  4. Configurer le reverse proxy

    Outline écoute sur le port 3000 en local. Exemple de bloc Nginx :

    server {
        listen 443 ssl;
        server_name wiki.votre-domaine.com;
    
        ssl_certificate /etc/letsencrypt/live/wiki.votre-domaine.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/wiki.votre-domaine.com/privkey.pem;
        client_max_body_size 260m;
    
        location / {
            proxy_pass http://127.0.0.1:3000;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_cache_bypass $http_upgrade;
        }
    }

    Les en-têtes Upgrade et Connection sont indispensables aux WebSockets de l'édition temps réel ; client_max_body_size doit couvrir la taille d'upload autorisée par Outline (FILE_STORAGE_UPLOAD_MAX_SIZE). Avec Caddy, deux lignes suffisent et le certificat Let's Encrypt est obtenu et renouvelé automatiquement :

    wiki.votre-domaine.com {
        reverse_proxy 127.0.0.1:3000
    }
  5. Créer le premier compte administrateur

    Ouvrez https://wiki.votre-domaine.com et connectez-vous via le fournisseur d'identité configuré : le premier compte authentifié devient administrateur de l'espace de travail.

    Pour inviter des collègues, rendez-vous dans Réglages → Membres → Inviter. Les invitations et les notifications partent par le SMTP déclaré dans le .env.

  6. Programmer les sauvegardes

    Ce qu'il faut sauvegarder : la base PostgreSQL, le volume des fichiers si FILE_STORAGE=local, et le .env. Exemple à placer dans une tâche cron quotidienne :

    cd /opt/outline
    docker compose exec -T postgres pg_dump -U outline outline | gzip > outline-$(date +%F).sql.gz
    docker run --rm -v outline_outline_data:/data -v "$PWD":/backup alpine \
      tar czf /backup/outline-files-$(date +%F).tar.gz -C /data .

    La documentation d'Outline recommande au moins une sauvegarde par jour, conservée environ un mois. En complément, Réglages → Export produit une archive HTML, Markdown ou JSON lisible sans Outline.

Mettre à jour Outline sans mauvaise surprise

Outline publie des images Docker taguées : évitez latest en production et ciblez une version précise (outlinewiki/outline:1.12.0 au 7 novembre 2026), après avoir lu les notes de version sur la page des releases.

Les migrations s'appliquent automatiquement au redémarrage du conteneur, et la documentation prévient qu'elles ne sont pas toujours rétrocompatibles : revenir à l'image précédente ne suffit pas toujours. Une sauvegarde de la base avant chaque mise à jour est donc obligatoire, pas facultative.

cd /opt/outline
docker compose exec -T postgres pg_dump -U outline outline | gzip > avant-maj.sql.gz
# changer le tag de l'image dans docker-compose.yml, puis :
docker compose pull outline
docker compose up -d outline
docker compose logs -f outline

Sur un wiki volumineux, testez d'abord la nouvelle version sur une copie de la base restaurée dans un environnement de recette.

Quand choisir Docmost plutôt qu'Outline

Outline est le bon choix si vous voulez un rendu Markdown soigné comparable à Notion, une édition simultanée robuste et un branchement sur un fournisseur d'identité existant (OIDC, Google, Microsoft). Son rythme de publication soutenu — 1.11.0 et 1.12.0 en octobre 2026 — et sa communauté active sont des arguments solides pour une équipe qui mise sur la durée. Commentaires, historique des révisions, intégrations Slack, GitHub et Linear en font l'un des outils les plus complets du segment self-hosted.

Docmost est une alternative plus récente (2023), dont le cœur est publié sous AGPL-3.0 — une vraie licence open source au sens OSI, sans restriction sur l'usage en tant que service. Les fonctions avancées (SSO SAML/OIDC/LDAP, clés d'API, importeur Confluence, bases de données) relèvent en revanche d'éditions payantes sous licence distincte. Sa stack est comparable : PostgreSQL et Redis, mais aucun fournisseur d'identité n'est imposé, puisque l'édition libre accepte la connexion par e-mail et mot de passe. Si la qualification de licence est un critère bloquant — notamment si vous développez un produit qui embarquerait une base de connaissances accessible à vos utilisateurs finaux —, Docmost mérite d'être évalué en parallèle. Cet article se concentre sur Outline ; pour l'installation pas à pas, consultez notre guide dédié à Docmost, et pour une migration depuis Notion, notre analyse de la hausse tarifaire Notion.

Les deux coexistent sans se cannibaliser : Outline a plus de fonctions avancées dans son édition gratuite et une communauté plus établie, Docmost une licence plus permissive et une connexion sans SSO obligatoire. Le choix dépend de votre contexte juridique et de vos besoins techniques.

Déployez votre wiki d'équipe sur un VPS

Un VPS Power (4 vCPU, 8 GB) couvre confortablement la stack Outline complète — PostgreSQL, Redis et stockage des pièces jointes — pour une équipe de moins de 50 personnes.