Skip to content

sdjbrl/wiki-iris

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wiki IRIS — Déploiement Outline

Stack Outline Reverse%20Proxy SSO

Déploiement de Outline Wiki pour la promotion BTS SIO d'IRIS Mediaschool Nice. Production : https://wiki.iris.a3n.fr:4433

Ce repo contient uniquement la configuration de déploiement (Docker Compose, variables d'environnement, documentation). Le code source d'Outline reste à l'amont sur outline/outline.


🎯 Contexte

Problématique : Première promotion BTS SIO à IRIS Nice — pas de plateforme centralisée pour la documentation technique et pédagogique. Documentation dispersée (Google Docs, Notion, locale), pas de collaboration temps réel, besoin de permissions granulaires (SISR / SLAM / formateurs / admin) et d'authentification unifiée.

Solution déployée : Outline (wiki collaboratif open-source moderne) en stack Docker Compose, derrière un reverse proxy Traefik avec TLS Let's Encrypt, authentification SSO/OIDC via Keycloak, stockage S3-compatible MinIO.

Réalisation : Semaine intensive SISR — Février 2026 — binôme.


🏗️ Architecture

                 ┌──────────────────────────┐
   Internet ───► │   Traefik (reverse proxy) │  TLS Let's Encrypt
                 │   :443  admin_proxy net   │
                 └────────────┬──────────────┘
                              │
                  ┌───────────▼───────────┐
                  │  Outline (Node.js)    │  :3000 (interne)
                  │  saidmkd router       │
                  └─┬─────────┬───────────┘
                    │         │
                    ▼         ▼
            ┌─────────────┐ ┌──────────────┐
            │ PostgreSQL  │ │ Redis (cache)│
            └─────────────┘ └──────────────┘

            ┌─────────────────────────────┐
            │ MinIO (S3 self-hosted)      │  stockage fichiers
            └─────────────────────────────┘

            ┌─────────────────────────────┐
            │ Keycloak (SSO/OIDC externe) │  authentification
            └─────────────────────────────┘

Services orchestrés dans docker-compose.yml :

  • outline — l'application (image officielle outlinewiki/outline:latest)
  • postgres — base de données principale
  • redis — cache + queues + collaboration temps réel

Services externes (déployés à part sur le serveur IRIS) :

  • traefik — reverse proxy + TLS (réseau Docker admin_proxy)
  • keycloak — fournisseur d'identité OIDC
  • minio — stockage S3 pour les fichiers uploadés

🚀 Déploiement

Prérequis

  • Docker Engine + Docker Compose v2
  • Un réseau Docker externe admin_proxy (créé par Traefik)
  • Un domaine pointant vers le serveur (ex : iris.a3n.fr)
  • Un realm Keycloak configuré (client OIDC pour Outline)

Installation

# 1. Cloner le repo
git clone https://github.com/sdjbrl/wiki-iris.git
cd wiki-iris

# 2. Copier le template d'environnement
cp .env.sample .env

# 3. Générer les clés secrètes
openssl rand -hex 32   # → SECRET_KEY
openssl rand -hex 32   # → UTILS_SECRET

# 4. Éditer .env (URL, base de données, OIDC, S3)
nano .env

# 5. Créer le réseau Traefik si non existant
docker network create admin_proxy

# 6. Lancer la stack
docker compose up -d

# 7. Vérifier
docker compose ps
docker compose logs -f outline

Variables d'environnement clés

Variable Description Exemple
URL URL publique du wiki https://wiki.iris.a3n.fr:4433
DOMAIN_NAME Domaine pour Traefik iris.a3n.fr
SECRET_KEY Clé de chiffrement (32 bytes hex) openssl rand -hex 32
UTILS_SECRET Clé secondaire (32 bytes hex) openssl rand -hex 32
DATABASE_URL Chaîne de connexion PostgreSQL postgres://user:pass@postgres:5432/outline
REDIS_URL Chaîne de connexion Redis redis://redis:6379
OIDC_CLIENT_ID Client ID Keycloak outline
OIDC_CLIENT_SECRET Client secret Keycloak (depuis Keycloak admin)
OIDC_AUTH_URI Endpoint d'autorisation https://kc.iris.a3n.fr/realms/iris/protocol/openid-connect/auth
OIDC_TOKEN_URI Endpoint de token https://kc.iris.a3n.fr/realms/iris/protocol/openid-connect/token
OIDC_USERINFO_URI Endpoint userinfo https://kc.iris.a3n.fr/realms/iris/protocol/openid-connect/userinfo
AWS_S3_* Configuration MinIO (S3) endpoint, bucket, credentials

Voir .env.sample pour la liste complète.


🔐 Sécurité

  • TLS automatique via Let's Encrypt (Traefik)
  • SSO/OIDC via Keycloak — pas de comptes locaux
  • Permissions par collection (groupes Keycloak mappés : SISR, SLAM, formateurs, admin)
  • Secrets jamais commités (.env dans .gitignore)
  • Réseau Docker isolé (admin_proxy externe, services internes en expose uniquement)

📚 Compétences BTS SIO SISR mobilisées

  • B1.2 — Mettre à disposition des utilisateurs un service informatique
  • B2.2 — Installer, tester et déployer une solution d'infrastructure réseau
  • B2.3 — Exploiter, dépanner et superviser une solution d'infrastructure réseau
  • B3.1 — Protéger les données à caractère personnel (SSO + permissions par groupe)
  • B3.2 — Préserver l'identité numérique de l'organisation (TLS Traefik + OIDC)

🗂️ Structure du repo

wiki-iris/
├── docker-compose.yml   # Orchestration des services
├── .env.sample          # Template de configuration (sans secrets)
├── .gitignore           # Exclusions (.env, data, etc.)
└── README.md            # Ce fichier

📖 Ressources


👤 Auteur

Saïd-Djibril Ahmed Moussa — BTS SIO SISR · IRIS Mediaschool Nice Portfolio · LinkedIn

Réalisé en binôme dans le cadre d'une semaine intensive SISR (Février 2026).


⚖️ Licence

La configuration de déploiement de ce repo est publiée sous MIT. Le code source d'Outline reste sous BSL 1.1 — voir outline/outline/LICENSE.

About

Outline wiki deployment config for IRIS Mediaschool Nice

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors