Für die ABA (Abschließende Arbeit AHS) gibt es ja das ABA-Portal. Dort heißt es:
Das Portal für abschließende Arbeiten (kurz: ABA-Portal) ermöglicht die digitale Abwicklung des gesamten ABA-Prozesses für alle beteiligten Personen (Schülerin bzw. Schüler, Betreuungsperson, Direktion, VSD).
https://www.ahs-aba.at/lehrpersonen/die-vwa/aba-portal
Die ABA kann inzwischen flexibel in alternativen Formaten umgesetzt werden – etwa als Podcast, Video oder Musikproduktion. (Eine längere Liste von Formaten findet sich hier: https://www.ahs-aba.at/lehrpersonen/die-vwa/welche-formate-sind-moeglich).
Die Ergebnisse dieses künstlerischen bzw. gestalterischen Prozesses müssen archiviert werden. Leider werden die Schulen dabei im Stich gelassen, da das ABA-Portal dies nicht unterstützt. PDFs lassen sich zwar hochladen, Videos, Fotos oder Audiodateien hingegen nicht. „Die digitale Abwicklung des gesamten ABA-Prozesses“, wie es oben heißt ist also hinfällig.
Die Empfehlung auf der ABA-Homepage
Zu beachten ist, dass das Ergebnis des gestalterischen oder künstlerischen Prozesses als Bestandteil der abschließenden Arbeit (bzw. deren digitale Dokumentation in Form einer Tonaufnahme, digitalisierter Fotos einer Kunstausstellung etc.) – wie auch der schriftliche Teil der Arbeit – archiviert werden muss.
Für die Abgabe wie auch die Archivierung digitaler Dateien eignet sich beispielsweise ein eigens dafür eingerichteter passwortgeschützer Websitebereich der Schule oder eine schulinterne Lernplattform.
https://www.ahs-aba.at/lehrpersonen/betreuung-beurteilung/schreibprozess-begleiten
Weder einen internen Bereich auf der Webseite noch die schulinterne Lernplattform halte ich dafür geeignet. Eine Lernplattform ist nicht für die jahrelange Lagerung von großen abgeschossenen Projekten ausgelegt.
Wie lösen wir das Problem?
Wir verwenden hierfür NextExplorer
nextExplorer is a modern, self-hosted file explorer crafted for teams, creative agencies, and homelabs that demand both polish and control. It ships as a single Docker container, works perfectly with mounted volumes, and pairs seamlessly with reverse proxies or zero-trust networks.
https://explorer.nxz.ai/
Das Deployment mit Docker ist einfach. Man kann beliebige Datenträger einhängen. NextExplorer unterstützt OIDC. Es genügt den Rechner oder den Docker-Container für den Zeitraum von der Abgabe bis zur Präsentation erreichbar zu halten. Anschließend kann er beendet werden und bei Bedarf (z.B nächstes Jahr) wieder aktiviert werden.
Nachdem wir schon einen Docker-Host haben, auf dem verschiedene Docker-Container laufen (z.B. Uptime-Kuma), haben wir diesen Host für NextExplorer verwendet.
Deployment
Die docker-compose.yml Datei sieht wie folgt aus
services:
nextexplorer:
image: nxzai/explorer:latest
container_name: nextexplorer
restart: unless-stopped
ports:
- '3500:3000'
environment:
- CORS_ORIGINS=https://aba.example.com
- NODE_ENV=production
- PUBLIC_URL=https://aba.example.com
- SESSION_SECRET=please-change-me
- PUID=1000
- PGID=1000
- OIDC_ENABLED=true
- OIDC_ISSUER=
- OIDC_AUTHORIZATION_URL=
- OIDC_TOKEN_URL=
- OIDC_USERINFO_URL=
- OIDC_LOGOUT_URL=
- OIDC_CLIENT_ID=
- OIDC_CLIENT_SECRET=
- OIDC_CALLBACK_URL=
- AUTH_MODE=oidc
- USER_DIR_ENABLED=true
- USER_ROOT=/srv/nextexplorer/users
- USER_FOLDER_NAME_ORDER=username
- USER_VOLUMES=true
- OIDC_SCOPES=openid profile groups email
- OIDC_ADMIN_GROUPS=teacher
volumes:
- /data/config:/config
- /data/cache:/cache
- /data/ABA26:/mnt/ABA26 #Folder only available for admins
# Personal home folders (one subfolder per user)
- /data/users:/srv/nextexplorer/users
Sind alle Werte korrekt eingegeben, kann der Container gestartet werden.
docker compose up -d

Nachdem wir USER_VOLUMES auf true gesetzt haben zeigt NextExplorer nur noch den Administratoren eingehängte „Datenträger“, die über „/mnt“ (=VOLUME_ROOT) eingehängt sind.
https://explorer.nxz.ai/admin/user-volumes.html
Das heißt, alle Personen mit der Rolle Lehrer (OIDC_ADMIN_GROUPS=teacher) sind Administratoren und sehen einen Ordner „ABA26“. Dieser wird ganz einfach mit „mount bind“ nur lesend eingehängt. D.h. die LuL. sehen die „USER_FOLDER“ im ABA26 Ordner und haben so Zugriff auf die abgegebenen Dateien, können diese aber nicht ändern.

Hier das mountFiles.sh Skript, das am Host und natürlich nicht im Container nach einem Reboot ausgeführt wird. (cronjob @reboot)
#!/bin/bash
sleep 3
cd /data
sudo mount --bind /data/users/ ./ABA26/
sudo mount -o bind,remount,ro /data/ABA26/
Damit die SuS. nach Ende der Abgabefrist keine Dateien mehr hochladen, reicht es, ihren Ordner im Dateisystem auf readonly zu setzen. Am besten mit
sudo chattr +i ./SCHUELER_ORDNER
Damit ist auch garantiert, dass Jahre später ein Blick ins Archiv nicht verändert wurde.
Sind die ABA-Präsentationen abgehalten kann der Container mit
docker-compose down
heruntergefahren werden.
Im nächsten Jahr ändern wir die 3.letzte Zeile auf „/data/ABA27:/mnt/ABA27„, aktualisieren den Container und starten ihn neu.
docker compose pull
docker compose up -d
Unser Container ist nur schulintern über einen Reverse-Proxy (nginx) erreichbar.
Übrigens gibt es Integrationen mit OnlyOffice und Collabora.
Referenzen:
https://github.com/nxzai/NextExplorer
https://explorer.nxz.ai/
https://explorer.nxz.ai/installation/reverse-proxy.html
0 Kommentare