đŸ›ïž openDesk: BekvĂ€mt och SuverĂ€n?

🎓 openDesk Edu — Digital SuverĂ€nitet vid Universitet

Chemnitzer Linux-Tage 2026 · 28.03.2026

Tobias Weiß · HRZ Zentrale Systeme · UniversitĂ€t Marburg

Digital SuverĂ€nitet — De Fyra Pelarna

  • Infrastruktursovranitet đŸ–„ïž
    SjÀlvstÀndig drift av servrar och nÀtverk
  • DatasuverĂ€nitet đŸ’Ÿ
    Kontroll över datalagring och Ätkomst
  • Programvarusovranitet đŸ’»
    Öppen kĂ€llkod utan proprietĂ€ra beroenden
  • Operationell suverĂ€nitet 🔧
    Full kontroll över uppdateringar och underhÄll

Vad Àr openDesk?

  • Öppen kĂ€llkodsalternativ till M365 och Google Workspace 🐧
  • Av staten för staten (BMI / ZenDiS) đŸ›ïž
  • BSI-certifierat (tysk suverĂ€nitet) 📜
  • Cloud-Native: Kubernetes-baserad arbetsplats ☁
  • ModulĂ€ra Komponenter:
    • Chatt, Filer, Wiki, Projektledning
    • E-post, Diagram, Webbkontor, Video
  • Self-Hosted eller SaaS đŸ–„ïž

Komponentöversikt

Komponent Programvara
Chatt 💬 Element / Synapse
Filer ☁ Nextcloud
Wiki 📖 XWiki
Projekt ✅ OpenProject
E-post ✉ OX App Suite
Diagram 📊 CryptPad
Webbkontor 📄 Collabora
Video đŸ“č Jitsi

openDesk-projektstatistik

Utveckling 🔀 Gemenskap đŸ‘„
Start: Juli 2023 Bidragsgivare: ~ 70
Löptid: ~ 3 Är Organisationer: ~ 27
Commits: ~ 1 500
Versioner: ~ 150

OpenCode.de đŸ›Ąïž | Leveranskedja 🔒
BMI-finansierad plattform | Signerade containeravbildningar
SuverÀn molninfrastruktur | SBOM för alla komponenter

Infrastrukturöversikt

MÄtt VÀrde
Noder 9 (3 Control-Plane + 6 Worker)
Distribution K3s v1.32.3
OS Debian 12
CPU (Minimum) 16 kÀrnor
RAM (Minimum) 64 GB
Lagring 4+ TB Ceph

Virtualisering med Proxmox

Helmfile & HRZ-miljö

# Distribution med Helmfile
helmfile apply -e hrz
  • Helmfile-orchestrering ⚓
    • Deklarativ konfiguration i helmfile_generic.yaml.gotmpl
    • Miljöspecifika Ă„sidosĂ€ttningar i environments/hrz/
    • Automatisk beroendebackup
  • HRZ-miljö skapad đŸ–„ïž
    • Kopia av staging med anpassningar
    • Uni Marburg-specifik konfiguration
    • Testsystem för provdrift

Lokal Chart-utveckling

# Klona/hÀmta Charts lokalt
python3 dev/charts-local.py --match intercom
python3 dev/charts-local.py --revert
  • Lokal Chart-utveckling & testning đŸ’»
  • Klona/hĂ€mta i charts-<branch>/ âŹ‡ïž
  • Helmfile-referenser till lokala sökvĂ€gar 📄
  • Backup & ÅterstĂ€llning med --revert ↩

AnvÀndarimport: Etablering

  • UDM REST API — CSV/ODS-import, LDAP-grupper đŸ‘€
  • Kontokoppling — SAML-identitetskoppling 🔗
  • DemolĂ€ge — Testkonton, profilbilder đŸ–Œïž

AnvÀndarimport: Avetablering

TvÄfasig avetableringsprocess:

  • Fas 1: Inaktivera anvĂ€ndare
    • IAM API → UCS Disable → TidsstĂ€mpel i beskrivning
    • Keycloak: Ta bort SAML + upplös grupper
  • Fas 2: Radera anvĂ€ndare
    • Grace-period (6 mĂ„nader) → Permanent radering
    • Output: deprovisioned-*, deleted-*

🎓 openDesk Edu — Översikt

  • Utökning av openDesk CE för universitet đŸ«
  • Nya komponenter:
    • LĂ€randeplattformar (ILIAS, Moodle)
    • Videokonferens för undervisning (BigBlueButton)
    • Alternativ filsynchronisering (OpenCloud)
  • Alla integrerade med Keycloak SSO 🔐
  • Distribuera allt med helmfile apply ⚡

GitHub: github.com/opendesk-edu/opendesk-edu

📚 Utbildningskomponenter

Komponent Status Beskrivning
📖 ILIAS ✅ Stabil LMS med SAML SSO — Kurser, SCORM, Prov
📖 Moodle 🔄 Beta LMS med Shibboleth — Pluginprogram, Betygsbok
đŸŽ„ BigBlueButton 🔄 Beta Videokonferens för undervisning — Inspelning, Whiteboard
☁ OpenCloud 🔄 Beta CS3-baserad filsynk — Alternativ till Nextcloud

🔐 ILIAS SSO — Arkitektur

6-stegs SSO-flöde:

  1. đŸ–„ïž Portal → ILIAS-panel
  2. 🔄 ILIAS → Shibboleth SP
  3. 🔑 Keycloak → Uni-IdP
  4. 🎓 Inloggning (weblogin.uni-marburg.de)
  5. 📹 SAML-assertion tillbaka
  6. ✅ ILIAS-instrumentpanel

Stack: Apache + Shibboleth SP + Keycloak Broker

🔧 ILIAS-distribution — LĂ€rdomar

Problem Lösning
Wrong Login or Password SAML NameFormat saknades i attribute-map.xml
Fel attributnamn Uni-IdP skickar givenname/surname
handlerSSL → 404 Intern TLS: Apache SSL pĂ„ port 8443 (v5)
Konton inaktiverade shib_activate_new = 0
SAML-timeout 60 s → 300 s
HĂ€lsokontroll CronJob: curl SSO-Redirect (varje timme)

🚀 Snabbstart — Distribution i 3 steg

# 1. Klona repot
git clone https://github.com/opendesk-edu/opendesk-edu.git
cd opendesk-edu

# 2. Konfigurera din miljö
# Redigera helmfile/environments/default/global.yaml.gotmpl
# Ange din domÀn, e-postdomÀn och imageregistry

# 3. Distribuera
helmfile -e default apply

📖 FullstĂ€ndig dokumentation: docs/getting-started.md

NĂ€tverkskonfiguration

  • Ingress Controller: haproxy-ingress
  • Reverse Proxy: Traefik — HTTP/HTTPS-terminering 🔄
  • LoadBalancer: MetalLB
  • Alla Ingressar migrerade till haproxy ✅

Grafana-instrumentpanel

Uppdateringsprocess

# Ladda senaste versionerna
git checkout -b myrelease upstream/tags/v1.12.2
git pull

# Granska Àndringar
helmfile diff -e hrz

# VerkstÀll uppdateringar
helmfile apply -e hrz

# ÅterstĂ€ll vid behov
helmfile rollback -e hrz
  • Kontrollerade uppdateringar via Helmfile 🔄
  • Enkel Ă„terstĂ€llningsmöjlighet ↩

HRZ-Upgrade: Ingress-migrering

  • Migrering: nginx → haproxy-ingress 🔀
    • v1.11.2 → v1.13.x (uniapps-gren)
    • Alla Ingressar migrerade till haproxy ✅
  • Ingress-klasser:
    • ingressClassName: haproxy
    • nginx helt förĂ„ldrad
  • Konfiguration:
    • replicaCount: 2, LoadBalancer
    • tune.bufsize: 65536, tune.http.maxhdr: 256

HRZ-Upgrade: Dubbel backup

  • MĂ„l: Redundant backuplagring đŸ—„ïž
  • Strategi: S3-kompatibel med restic-backend 🔄
    • PrimĂ€r: s3.example.org:9000/backup-primary
    • SekundĂ€r: s3-backup.example.org:9000/backup-secondary
  • SchemalĂ€ggning: Dagligen kl 00:42, Veckokontroll, Prune pĂ„ söndagar ⏰
  • Bevarande: 14 dagliga, BehĂ„ll de senaste 5 📩

Institutionella hinder

  • Juridiska avdelningen ⚖
    • GDPR, AVV-avtal, Licenftereening
  • PersonalrĂ„det đŸ‘„
    • TjĂ€nsteavtal, MedbestĂ€mmande för IT-system
  • Administrationen 🏱
    • Microsoft-preferenser, Formatkompatibilitet
  • Obligatoriska dokument 📄
    • DSFA, TCO-kalkyl

NĂ€sta steg & Rekommendationer

  1. Starta provdrift ▶
  2. TrĂ„dvis utrullning (10 → 100 → 1 000 anvĂ€ndare) đŸ‘„
  3. Tydlig separation frĂ„n produktionssystem 🔗
  4. UtvĂ€rdering: Kategorisera anvĂ€ndningsfall efter suverĂ€nitetskrav ✅
  5. Budget för driftsteam (inte bara implementering) 💰

đŸ€ Engagera dig!

HjÀlp oss bygga openDesk Edu för universitet!

  • ⭐ StjĂ€rnmĂ€rk repot: github.com/opendesk-edu/opendesk-edu
  • đŸ§Ș Testa lokalt: Distribuera med Helmfile och ge feedback
  • 🐛 Rapportera problem: Issues för buggar eller funktionsförfrĂ„gningar
  • đŸ’» Bidra: PRs vĂ€lkomna — se CONTRIBUTING.md

LĂ„t oss bygga suverĂ€n programvara för universitet tillsammans! 🎓

Tekniska resurser

Organisationella resurser

  • HBDI-rekommendation (M365-bedömning):
    PDF
  • Hessischer Digitalpakt Hochschulen:
    PDF
  • EVB-IT Open Source (ZenDiS):
    zendis.de
  • EVB-IT & BVB (digitale-verwaltung.de):
    digitale-verwaltung.de
  • Digital SuverĂ€nitet vid Universitet:
    PDF
  • CoCreate-WerkstattgesprĂ€ch:
    PDF