Eine Middleware die zwischen CryptPad & Authentik sitzt und die User Verwaltung, sowie selbstverwaltung von Gruppen ermöglicht.
Wir brauchten für https://pad.1312.rocks eine Möglichkeit, das Gruppen selbst Einladungen generieren können. Da CryptPad selbst keine Möglichkeit bietet einfach Gruppen zu ermöglichen sich selbst Einladungen zu generieren, haben wir diese Middleware entwickelt.
Die Middleware bietet zwei Webinterfaces, eines für die Gruppenverwaltung (wwwmgmt) und eines für die Registrierung (wwwsignup).
Hier können Mitglieder von Gruppen mit einem internen Authentik Account Einladungslinks generieren, die sie dann an andere weitergeben können. Es gibt zwei Arten von Einladungen:
- Einladungen für einzelne Nutzer (single): Diese Einladungen können nur einmal verwendet werden und laufen nach maximal 7 Tagen ab.
- Einladungen für Gruppen (multi): Diese Einladungen können mehrfach verwendet werden, bis sie auslaufen (maximal 2 Tage).
Hier können Nutzer*innen sich für einen Account anmelden. Nachdem die User ihre E-Mail Adresse bestätigt haben, wird via Telegram eine Benachrichtigung in einen Chat geschickt, mit einem Link zum Verwalten der Anfrage. Die Anfrage kann angenommen oder abgelehnt werden. Je nach dem ob eine Anfrage für eine Gruppe oder für eine Einzelperson generiert wird, wird dem User entweder eine einzelne Einladung als "External" oder eine Einladung als "Internal" generiert. Bei der Einladung als "Internal" hat der User danach selber die Möglichkeit wwwmgmt zu verwenden.
- Docker & Docker Compose
- Installiere Authentik & CryptPad
- Konfiguriere Authentik mit den entsprechenden Flows und Gruppen
- Generiere einen API Key für einen Admin User in Authentik
- Die
compose.yml&.env.exampleDatei herunterladen. - Kopiere die
.env.exampleDatei in.envund passe die Werte entsprechend an. mkdir signupdatachown 33:33 signupdatadocker compose up -d- Binde die Webinterfaces in deinem Reverse Proxy ein:
- Gruppenverwaltung:
http://localhost:9123 - Registrierung:
http://localhost:9124
- Gruppenverwaltung:
Falls du keine Enrollment Flows in Authentik hast sind hier 2 Beispiel Flows für internal & external enrollment:
Wir nutzen 2 unterschiedliche Admin User & 2 unterschiedliche API Keys für die Anwendungen, um unterscheiden zu können woher die Einladungen kommen. Es ist aber ohne Probleme möglich den API Key bei beiden Anwendungen einzusetzen.
AGPL-3.0 License: https://choosealicense.com/licenses/agpl-3.0/ tailwind.css: https://tailwindcss.com qrcode.min.js: https://github.com/davidshimjs/qrcodejs
Proudly made without AI tools and with ❤️ by 161host.NET🏳️🌈