Outline

Outline est un logiciel open source de prise de notes et de documentation collaborative, pensé pour les équipes. Il se présente comme une alternative libre à Notion ou Confluence, permettant de structurer et partager facilement des documents, pages et bases de connaissances.

Il est conçu pour être simple d’utilisation, rapide, élégant et surtout auto-hébergeable. Cela en fait une solution idéale pour les organisations qui souhaitent garder le contrôle de leurs données tout en bénéficiant d’un outil moderne de documentation.

Présentation

outline.png

Qu’est-ce que Outline ?

Outline est un logiciel open source de prise de notes et de documentation collaborative, pensé pour les équipes. Il se présente comme une alternative libre à Notion ou Confluence, permettant de structurer et partager facilement des documents, pages et bases de connaissances.

Il est conçu pour être simple d’utilisation, rapide, élégant et surtout auto-hébergeable. Cela en fait une solution idéale pour les organisations qui souhaitent garder le contrôle de leurs données tout en bénéficiant d’un outil moderne de documentation.

À quoi sert Outline ?

Outline sert principalement à organiser et centraliser la documentation d’une équipe ou d’un projet. Il peut être utilisé pour :

Il est particulièrement apprécié dans les contextes professionnels, techniques (DevOps, IT, projets), mais peut aussi servir dans l’enseignement ou pour la documentation communautaire.

Comment fonctionne Outline ?

Outline fonctionne avec une interface web fluide et minimaliste, inspirée des outils modernes comme Notion. Il permet de créer des espaces de travail (appelés "collections"), dans lesquels on ajoute des pages, hiérarchisées en sections.

Il prend en charge la collaboration en temps réel, l’édition markdown riche (titres, tableaux, images, liens, blocs de code, etc.) et les droits d’accès finement réglables (lecture, écriture, admin…).

Outline peut s’intégrer avec d’autres outils comme Slack, Google Drive ou GitHub, et permet l’authentification via SSO (Google, OIDC, SAML…).

Pourquoi utiliser Outline ?

Outline est une excellente alternative à Notion si tu veux garder la maîtrise de tes données, sans dépendre d’un service cloud externe.
En tant que logiciel libre, il peut être auto-hébergé sur un serveur personnel ou professionnel, avec des performances solides et une interface moderne.

Il répond parfaitement aux besoins d’organisation documentaire pour les équipes techniques ou pluridisciplinaires. De plus, sa prise en charge du Markdown en fait un outil apprécié des développeurs et rédacteurs techniques.

Cas d’usage courants

Outline est utilisé pour :


En résumé

Outline est une alternative open source à Notion, pensée pour les équipes qui veulent organiser, documenter et collaborer efficacement, tout en gardant le contrôle sur leur infrastructure.
Il offre une expérience moderne, fluide et collaborative, avec des fonctionnalités robustes pour tous les usages de documentation interne.

Installation

outline.png

Fichier docker-compose

Dans cette procédure, nous allons utiliser Docker. Une documentation préalable à ce sujet est disponible ici.
Commençons par créer un fichier docker-compose.yaml, adapté à nos besoins :

services:
  # Service principal : Outline (wiki collaboratif auto-hébergé)
  outline:
    image: outlinewiki/outline:latest  # Image officielle Outline
    depends_on:
      - postgres  # Nécessite la base PostgreSQL
      - redis     # Nécessite Redis
    environment:
      URL: https://outline.domaine.com      # URL publique d'accès à l'instance Outline
      FORCE_HTTPS: "true"                   # Redirige automatiquement les requêtes HTTP vers HTTPS
      DATABASE_URL: postgres://outline:outline@postgres:5432/outline       # Connexion à PostgreSQL : user:mdp@hôte:port/base
      REDIS_URL: redis://redis:6379         # Connexion à Redis
      SECRET_KEY: clé-1                     # Clé secrète interne (sessions, sécurité...)
      UTILS_SECRET: clé-2                   # Clé secrète utilisée pour des opérations internes diverses
      FILE_STORAGE: local                   # Stockage des fichiers sur disque local (vs. S3 ou autres)
      ENABLE_UPDATES: "false"               # Désactive la vérification automatique des mises à jour
      PGSSLMODE: disable                    # Désactive SSL entre Outline et PostgreSQL (local uniquement)

      # Authentification via OpenID Connect (OIDC) avec Keycloak
      OIDC_CLIENT_ID: outline
      OIDC_CLIENT_SECRET: client-secret
      OIDC_DISCOVERY_URL: https://sso.domaine.com/realms/LDAP/.well-known/openid-configuration
                          # URL de découverte OIDC fournie par Keycloak
      OIDC_AUTH_URI: https://sso.domaine.com/realms/LDAP/protocol/openid-connect/auth
      OIDC_TOKEN_URI: https://sso.domaine.com/realms/LDAP/protocol/openid-connect/token
      OIDC_USERINFO_URI: https://sso.domaine.com/realms/LDAP/protocol/openid-connect/userinfo
      OIDC_USERNAME_CLAIM: preferred_username  # Champ OIDC utilisé pour le nom d'utilisateur dans Outline
      OIDC_DISPLAY_NAME: Connexion Keycloak    # Nom affiché pour le bouton de connexion
      OIDC_SCOPES: "openid profile email"      # Scopes demandés à Keycloak
      OIDC_EMAIL_REQUIRED: "true"              # Requiert une adresse mail pour la connexion
      OIDC_AUTO_PROVISION: "true"              # Crée automatiquement les utilisateurs à la première connexion
    ports:
      - 3000:3000  # Expose le port 3000 d’Outline sur le même port de l’hôte
    restart: always  # Redémarre toujours en cas d'échec ou au redémarrage de l'hôte

  # Base de données PostgreSQL pour Outline
  postgres:
    image: postgres:14  # Version compatible recommandée pour Outline
    environment:
      POSTGRES_DB: outline                          # Nom de la base
      POSTGRES_USER: outline                        # Utilisateur de la base
      POSTGRES_PASSWORD: outline                    # Mot de passe
    volumes:
      - outline_postgres:/var/lib/postgresql/data  # Persistance des données PostgreSQL
    restart: always

  # Service Redis (utilisé pour le cache et les files d’attente par Outline)
  redis:
    image: redis:alpine  # Image légère de Redis
    restart: always

# Volume Docker pour la base de données PostgreSQL
volumes:
  outline_postgres:

Démarrage

Une fois le fichier docker-compose.yaml créé, nous pouvons lancer Outline avec la commande suivante :

docker compose up -d