Skip to main content

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