Guide de déploiement
openDesk Edu est un espace de travail numérique modulaire conçu pour les établissements d'enseignement. Il regroupe des outils de collaboration, des plateformes d'apprentissage et des applications bureautiques dans un environnement qui fonctionne sur Kubernetes. Tous les services sont distribués sous forme de charts Helm et orchestrés via helmfile, ce qui permet de déployer l'ensemble de la pile avec une seule commande.
Ce guide couvre le processus complet de déploiement, d'un cluster vierge à une plateforme fonctionnelle avec authentification, sauvegardes et certificats TLS.
Prerequis
Avant de commencer, vérifiez que les éléments suivants sont en place :
- Kubernetes 1.28 ou supérieur. openDesk Edu utilise des CRDs et Pod Security Admission qui necessitent un cluster recent. Les offres managees comme Hetzner Cloud Kubernetes, OVH Managed Kubernetes ou les clusters on-premise avec kubeadm fonctionnent tous.
- Helm 3 installé et configure avec accès au cluster.
- helmfile installé. C'est la couche d'orchestration qui lit votre configuration et applique tous les releases Helm dans le bon ordre.
- Un nom de domaine avec accès DNS. Vous avez besoin d'un domaine de base (par exemple,
desk.uni-exemple.fr) et de la possibilité de creer des enregistrements de sous-domaine pour chaque service. - Acces a un fournisseur d'identité SAML (IdP). openDesk Edu authentifie les utilisateurs via Keycloak, qui se connecte au fournisseur d'identité de votre université. En Allemagne, cela signifie généralement un membre de la federation DFN-AAI ou eduGAIN.
- Minimum 16 Go de RAM et 4 coeurs CPU. C'est le minimum pour les services principaux d'openDesk. Les services educatifs (ILIAS, Moodle, BigBlueButton, OpenCloud) ajoutent des besoins significatifs en ressources. Pour un déploiement en production avec tous les services actives, prevoyez 32 Go de RAM et 8 coeurs CPU ou plus.
Demarrage rapide
Le chemin le plus rapide vers une installation openDesk Edu fonctionnelle comprend quatre étapes.
1. Cloner le depot
git clone https://git.opencode.de/opendesk/edu-deployment.git
cd edu-deployment
Ce depot contient la configuration helmfile, les definitions d'environnement et les surcharges de valeurs personnalisees pour tous les services openDesk Edu.
2. Modifier la configuration globale
Ouvrez helmfile/environments/default/global.yaml.gotmpl dans votre éditeur. Au minimum, vous devez définir votre domaine et choisir les services a activer :
domain: desk.uni-exemple.fr
services:
keycloak:
enabled: true
nextcloud:
enabled: true
ox:
enabled: false
sogo:
enabled: false
grommunio:
enabled: true
jitsi:
enabled: false
bbb:
enabled: true
ilias:
enabled: true
moodle:
enabled: false
opencloud:
enabled: true
excalidraw:
enabled: true
cryptpad:
enabled: false
Chaque service peut etre active ou desactive independamment. Le fichier de configuration utilise la syntaxe de templates Go (.gotmpl), ce qui permet de referencer des valeurs partagees comme le domaine dans toutes les definitions de services.
3. Deployer
helmfile -e default apply
helmfile lit la configuration de l'environnement, résout toutes les dépendances entre les services et applique chaque chart Helm dans l'ordre. Keycloak est déployé en premier car les autres services en dependent pour l'authentification. Comptez 10 a 20 minutes sur un cluster vierge selon les services actives et la vitesse de votre réseau.
4. Acceder aux services
Une fois le déploiement termine, chaque service est accèssible sur son sous-domaine :
| Service | URL |
|---|---|
| Keycloak Admin | https://keycloak.desk.uni-exemple.fr |
| Nextcloud | https://nextcloud.desk.uni-exemple.fr |
| Grommunio | https://grommunio.desk.uni-exemple.fr |
| BigBlueButton | https://bbb.desk.uni-exemple.fr |
| ILIAS | https://ilias.desk.uni-exemple.fr |
| OpenCloud | https://opencloud.desk.uni-exemple.fr |
Les identifiants administrateur Keycloak sont générés lors du premier déploiement et stockés dans un secret Kubernetes. récupérez-les avec :
kubectl get secret -n opendesk keycloak-admin -o jsonpath='{.data.password}' | base64 -d
Configuration
Le fichier helmfile/environments/default/global.yaml.gotmpl est la configuration centrale de toute votre installation openDesk Edu. Chaque service lit ses valeurs depuis ce fichier, et vous pouvez surcharger toute valeur par défaut des charts Helm ici.
Domaine et ingress
Le champ domain definit l'URL de base pour tous les services. Chaque chart construit sa propre regle d'ingress en ajoutant son nom de service (par exemple, nextcloud) au domaine de base. Si vous utilisez un reverse proxy ou un equilibreur de charge externe, vous pouvez aussi définir ingress.className pour pointer vers votre controleur Ingress.
Parametres Keycloak
Keycloak agit comme courtier d'identité central. Dans la configuration globale, vous pouvez définir le nom d'utilisateur admin, le nom du realm et le theme par défaut. Les flux d'authentification et les enregistrements de clients pour chaque service sont gérés automatiquement par les charts Helm.
Composants alternatifs
openDesk Edu propose plusieurs implementations pour plusieurs categories de services. Vous choisissez celle a activer, et le fichier de configuration s'assure qu'une seule par categorie est active :
- Messagerie : Open-Xchange (OX), SOGo ou Grommunio
- Visioconference : Jitsi Meet ou BigBlueButton
- Stockage de fichiers : Nextcloud ou OpenCloud
- Tableau blanc : Excalidraw ou CryptPad
Definissez enabled: true sur le composant souhaite et enabled: false sur les autres de la meme categorie. N'activez jamais deux alternatives en meme temps, car elles entreraient en conflit sur les routes d'ingress et les identifiants de client Keycloak.
Configuration de l'authentification
Keycloak sert de fournisseur d'identité central pour tous les services openDesk Edu. Il prend en charge SAML 2.0 et OpenID Connect (OIDC), ce qui lui permet de s'integrer a l'infrastructure existante de votre université et de fournir un authentification unique sur toutes les applications.
Connexion au fournisseur d'identité de votre université
La plupart des universités allemandes participent a la federation DFN-AAI, qui fait partie du réseau mondial eduGAIN. Keycloak se connecte a ces federations via une liaison SAML 2.0 avec un fournisseur d'identité (IdP).
Pour configurer la connexion :
- Connectez-vous a la console d'administration Keycloak sur
https://keycloak.desk.uni-exemple.fr. - Naviguez vers votre realm et creez un nouveau fournisseur d'identité de type SAML 2.0.
- Saisissez l'URL des metadonnees de l'IdP de votre université (fournie par votre operateur de federation DFN-AAI).
- Configurez l'identifiant SAML entity ID pour qu'il corresponde a la valeur enregistree aupres de votre federation.
- Activez le fournisseur d'identité et testez le flux de connexion.
Support des protocoles
Chaque service en aval utilise le protocole le plus adapte :
- SAML 2.0 : utilise par ILIAS et Moodle via la configuration du fournisseur de services Shibboleth (SP). Ces plateformes LMS attendent des assertions SAML d'un IdP de confiance, que Keycloak fournit.
- OIDC : utilise par Nextcloud, OpenCloud, Grommunio, BigBlueButton et Excalidraw. OIDC est le protocole plus moderne et plus simple a configurer pour les applications web.
Shibboleth SP pour les services LMS
ILIAS et Moodle utilisent Shibboleth comme fournisseur de services pour consommer les assertions SAML de Keycloak. Les charts Helm openDesk Edu incluent des conteneurs sidecar Shibboleth SP pour ces services. La configuration SP est generee automatiquement a partir des parametres du realm Keycloak, vous n'avez donc pas besoin de modifier manuellement les fichiers XML Shibboleth.
Selection des composants
openDesk Edu est modulaire. Vous activez uniquement les services dont votre établissement a besoin, ce qui limite la consommation de ressources et simplifie la maintenance. Tous les services sont contrôlés depuis global.yaml.gotmpl.
Services principaux
- Keycloak : obligatoire. C'est la colonne vertebrale de l'authentification et il ne peut pas etre desactive.
- Element Web (Matrix) : le hub de messagerie et de collaboration. Active par défaut.
Alternatives de messagerie
Choisissez-en une :
- Open-Xchange (OX) : groupware complet avec calendrier, contacts et messagerie. Adapte aux établissements qui necessitent une integration etroite avec d'autres composants OX.
- SOGo : groupware leger avec bon support ActiveSync. Convient aux déploiements de plus petite taille.
- Grommunio : remplacement complet de Microsoft Exchange avec compatibilite native Outlook. Stocke les donnees de messagerie dans MariaDB.
Visioconference
Choisissez-en une :
- Jitsi Meet : visioconference legere, pair-a-pair. Besoins en ressources reduits. Approprie pour des reunions jusqu'a environ 25 participants.
- BigBlueButton (BBB) : conçu specifiquement pour l'enseignement en ligne. Supporte l'enregistrement, les sous-groupes, les tableaux blancs et le téléchargement de presentations. Necessite plus de ressources mais constitue la norme pour les classes virtuelles.
Stockage de fichiers
Choisissez-en un :
- Nextcloud : mature et largement utilise. Vaste ecosysteme d'applications pour l'edition de documents, le calendrier et la gestion de taches.
- OpenCloud : fork de Nextcloud avec des fonctionnalites enterprise supplementaires et une integration plus etroite avec la pile openDesk.
Tableau blanc
Choisissez-en un :
- Excalidraw : tableau blanc collaboratif simple et intuitif. Ideal pour des croquis rapides et du brainstorming.
- CryptPad : suite collaborative chiffree de bout en bout incluant un tableau blanc. Garanties de confidentialite renforcees.
Services educatifs
- ILIAS : plateforme d'apprentissage largement utilisée dans l'enseignement supérieur allemand. Supporte SCORM, LTI et des outils d'edition integres.
- Moodle : la plateforme LMS la plus populaire au monde. Vaste ecosysteme de plugins et grande communaute.
Configuration des sauvegardes
openDesk Edu utilise l'operateur k8up avec restic en backend. k8up fonctionne comme un controleur Kubernetes et cree des sauvegardes planifiees selon les CRDs Schedule definis dans les charts Helm.
Ce qui est sauvegarde
La configuration des sauvegardes couvre les donnees suivantes :
- Contenu LMS : repertoires de donnees ILIAS et stockage de fichiers Moodle, y compris les documents de cours telecharges, les soumissions des etudiants et les paquets SCORM.
- Enregistrements BigBlueButton : enregistrements de reunions sur des volumes persistants. Ceux-ci peuvent etre volumineux, surveillez donc l'utilisation du stockage.
- Fichiers Nextcloud / OpenCloud : fichiers utilisateurs, dossiers partages et donnees d'applications sur des volumes persistants.
- Donnees Grommunio : dumps de base de donnees MariaDB contenant les donnees de messagerie, de calendrier et de contacts de tous les utilisateurs Grommunio.
Depot restic
Les sauvegardes sont stockees dans un depot restic. Vous configurez l'emplacement du depot (le stockage compatible S3 est recommande pour la durabilite hors site) et le mot de passe de chiffrement dans la configuration globale. La premiere sauvegarde prend du temps selon le volume de donnees. Les executions suivantes utilisent la deduplication de restic et ne transfert que les donnees modifiees.
Restauration
Pour restaurer depuis une sauvegarde, utilisez la CRD Restore de k8up. Pointez vers un instantane specifique et l'operateur s'occupe du reste, en montant les donnees restaurees dans les pods correspondants.
Gestion des certificats
openDesk Edu utilise openDesk Certificates de Bundesdruckerei pour TLS. Ce service fournit une provision automatique et un renouvellement des certificats pour tous les sous-domaines de services.
L'operateur de certificats fonctionne comme un controleur Kubernetes. Il demande des certificats pour chaque ressource Ingress et gere le renouvellement avant expiration. Vous n'avez pas besoin de gerer manuellement les certificats ou de configurer des clients ACME externes.
Si votre établissement necessite des certificats d'une autre autorite de certification, vous pouvez configurer l'operateur pour utiliser votre fournisseur prefere. Les ressources Ingress referencent les certificats via des secrets TLS Kubernetes, les services en aval n'ont donc besoin d'aucune configuration liée aux certificats.
Prochaines étapes
- Lisez la vue d'ensemble de l'architecture pour comprendre comment les services interagissent et comment les donnees circulent entre eux.
- Consultez les pages des composants pour les options de configuration specifiques a chaque service, le reglage des ressources et les guides d'integration.
- Consultez la section depannage si vous rencontrez des problemes lors du déploiement.