Markus Michalski FAQ

LeaveFlow

LeaveFlow ist eine selbst gehostete Urlaubsverwaltung für kleine und mittlere Unternehmen mit Genehmigungsworkflow, Teamkalender, Urlaubskonten, deutschen Feiertagen und DSGVO-Funktionen. Läuft per Docker.

English Version

Zur Hauptübersicht

LeaveFlow

CI
License
PHP
Symfony
Docker

Live-Demo: Teste LeaveFlow live unter demo.markus-michalski.net, ohne Installation und ohne Risiko.

Überblick

LeaveFlow ist eine selbst gehostete Urlaubsverwaltung für kleine und mittlere Unternehmen. Mitarbeitende stellen Urlaubsanträge, Teamleitungen genehmigen sie, und Admins pflegen Urlaubskonten, Feiertage, Standorte und Anmeldeverfahren. Feiertage, Urlaubsverfall zum 31. März, Zwölftelregel und die 42-Tage-Krankheitsschwelle sind auf deutsches Arbeitsrecht ausgelegt.

Eine Installation verwaltet genau ein Unternehmen. Alle Daten liegen in deiner eigenen MariaDB-Datenbank, die Oberfläche gibt es auf Deutsch und Englisch.

LeaveFlow ist eine Docker-first-Anwendung: Der mitgelieferte Compose-Stack startet App, Datenbank, Mailpit und einen OpenLDAP-Testserver. Die Installation beschreibt die Seite Installation.

graph LR
    A["Browser"] --> B["FrankenPHP mit Symfony-App"]
    B --> C["MariaDB"]
    B --> D["SMTP-Server oder Mailpit"]
    E["Messenger-Worker: scheduler_notifications, scheduler_maintenance"] --> C
    E --> D
    B -.-> F["Slack, Teams, LDAP, Google, Entra (optional)"]
    G["REST-API-Client"] --> B

Dokumentation

Seite Inhalt
Installation Voraussetzungen, Start per Docker Compose, Einrichtungsassistent, Umgebungsvariablen, Update
Betrieb und Cron-Jobs Messenger-Worker, geplante Jobs, Konsolenbefehle, Mailversand
Anmeldung und Integrationen Google, Microsoft Entra ID, LDAP, Slack, Microsoft Teams
Datenschutz und DSGVO Aufbewahrungsfrist, Anonymisierung, gespeicherte Daten, Zugriffsschutz
Admin-Leitfaden Firmen-Einstellungen, Benutzer, Mitarbeiter, Teams, Standorte, Urlaubsarten, Urlaubskonten, Feiertage, Sperrfristen, Statistik
Manager-Leitfaden Genehmigungen, Stornierungen, Team-Kalender, Benachrichtigungen
Mitarbeiter-Leitfaden Urlaubsanträge, Urlaubskonto, Profil, iCal, 2FA, Benachrichtigungen
REST-API Mitarbeiter-Endpunkte, Authentifizierung, Fehlerformat
Fehlerbehebung Typische Probleme und ihre Ursachen

Funktionen

Funktion Details
Urlaubsanträge Ganze und halbe Tage, Live-Vorschau mit Arbeitsstunden, Saldo- und Sperrfristprüfung, keine rückwirkenden Anträge
Genehmigungsworkflow Sechs Zustände, sieben Übergänge, Vier-Augen-Prinzip, Entscheidungsverlauf pro Antrag
Team-Kalender FullCalendar mit Monats- und Wochenansicht, Filter nach Team und Urlaubsart, Feiertage und Sperrfristen als Hintergrund
Urlaubskonten Urlaub und Resturlaub, Verbrauch zuerst aus dem früher verfallenden Konto, Jahresübergang per Cron-Job oder Befehl
Feiertage Alle 16 Bundesländer inklusive Osterberechnung, regionale Anpassungen, firmenweite Feiertage
Benachrichtigungen In-App, E-Mail (pro Ereignis abschaltbar), optional Slack und Microsoft Teams
Anmeldung Lokal mit TOTP-2FA, Google Workspace, Microsoft Entra ID, LDAP/Active Directory
Auswertungen und Exporte Statistik-Dashboard mit PDF-Export, CSV-Export von Urlaubskonten und Mitarbeitern, iCal-Abonnements
DSGVO Aufbewahrungsfrist, manuelle Anonymisierung ehemaliger Mitarbeitender, Austrittsworkflow
REST-API Mitarbeiter anlegen, lesen und ändern per Bearer-Token, Swagger UI unter /api/doc

Rollen

LeaveFlow kennt drei Rollen, die aufeinander aufbauen: Ein Manager hat alle Rechte eines Mitarbeiters, ein Admin alle Rechte eines Managers.

Rolle Bereich Aufgaben
Administrator (ROLE_ADMIN) /admin/... Gesamte Konfiguration: Benutzer, Mitarbeiter, Teams, Standorte, Urlaubsarten, Urlaubskonten, Feiertage, Sperrfristen, Firmen-Einstellungen, Statistik, Anonymisierung, API-Token, Cron-Jobs
Manager (ROLE_MANAGER) /manager/approvals Anträge der eigenen Teams genehmigen oder ablehnen, Stornierungen entscheiden
Mitarbeiter (ROLE_EMPLOYEE) /my/..., /profile Urlaubsanträge stellen, Urlaubskonto einsehen, Profil, iCal und Benachrichtigungen verwalten

Der Team-Kalender unter /team/calendar steht allen angemeldeten Benutzern offen. Sperrfristen verwaltet ausschließlich der Admin unter /admin/blackout-periods.

Ein Benutzerkonto ist nicht automatisch ein Mitarbeiter: Wer Urlaub beantragen oder genehmigen soll, braucht zusätzlich einen verknüpften Mitarbeiterdatensatz. Der im Einrichtungsassistenten angelegte Admin hat zunächst keinen.

Anforderungen

Anforderung Wert Hinweise
Docker Docker mit Compose-Plugin (docker compose) Der mitgelieferte Stack startet App, Datenbank, Mailpit und OpenLDAP
PHP 8.4 oder neuer Im Docker-Image enthalten (FrankenPHP-Basisimage)
PHP-Erweiterungen pdo_mysql, intl, gd, mbstring, json, curl, ctype, fileinfo Prüft der Einrichtungsassistent; das Image bringt sie mit, zusätzlich ldap
Datenbank MariaDB 11.4 Image mariadb:11.4 im Compose-Stack
HTTPS außerhalb von localhost nötig Die PHP-Konfiguration setzt Session-Cookies mit dem Secure-Flag

Lizenz

LeaveFlow steht unter der PolyForm Noncommercial License 1.0.0. Der Quelltext ist einsehbar und selbst hostbar, nichtkommerzielle Nutzung ist kostenlos, kommerzielle Nutzung erfordert eine separate Vereinbarung.

Mitwirken

Beiträge erfordern die Unterzeichnung des Contributor License Agreement. Den Entwicklungsworkflow beschreibt CONTRIBUTING.md.

Support

Fehler und Feature-Wünsche meldest du in den GitHub Issues. Der Quelltext liegt im GitHub-Repository.