-
Notifications
You must be signed in to change notification settings - Fork 0
Konfiguration
Matthias Schabhüttl edited this page Jun 12, 2026
·
1 revision
OpenSchichtplaner5 wird über Umgebungsvariablen konfiguriert. Kopiere .env.example nach .env und passe die Werte an.
| Variable | Standard | Beschreibung |
|---|---|---|
SP5_DB_PATH |
(Pflicht) | Pfad zum SP5-Datenbankverzeichnis mit den .DBF-Dateien |
SP5_DB_PATH=/data/sp5/Daten| Variable | Standard | Beschreibung |
|---|---|---|
SECRET_KEY |
(Pflicht — ändern!) | JWT-Signierungsschlüssel. Generieren: openssl rand -hex 32
|
ALLOWED_ORIGINS |
http://localhost:8000 |
CORS-Origins (kommagetrennt, kein Leerzeichen) |
SP5_HSTS |
false |
HSTS-Header senden — nur bei HTTPS via Reverse-Proxy aktivieren! |
SP5_DEV_MODE |
false |
Dev-Modus: NIEMALS in Produktion! Erlaubt Token-Auth-Bypass für Tests |
TOKEN_EXPIRE_HOURS |
8 |
JWT-Token-Gültigkeit in Stunden |
⚠️ Produktion:SECRET_KEYunbedingt ändern undALLOWED_ORIGINSauf eigene Domain einschränken!
# Sicheren SECRET_KEY generieren:
openssl rand -hex 32| Variable | Standard | Beschreibung |
|---|---|---|
HOST |
0.0.0.0 |
Bind-Adresse für den Uvicorn-Server |
PORT |
8000 |
Port des API-Servers |
DEBUG |
false |
Debug-Modus: false in Produktion |
| Variable | Standard | Beschreibung |
|---|---|---|
RATE_LIMIT_LOGIN |
5/minute |
Rate Limit für den Login-Endpunkt pro IP |
RATE_LIMIT_API |
200/minute |
Allgemeines API Rate Limit pro IP |
BRUTE_FORCE_MAX_ATTEMPTS |
5 |
Maximale Fehlversuche vor Kontosperre |
BRUTE_FORCE_LOCKOUT_MINUTES |
15 |
Sperrdauer in Minuten nach Brute-Force-Erkennung |
| Variable | Standard | Beschreibung |
|---|---|---|
LOG_LEVEL |
INFO |
Log-Level: DEBUG | INFO | WARNING | ERROR | CRITICAL
|
LOG_FILE |
/app/logs/sp5-api.log |
Pfad zur Log-Datei |
| Variable | Standard | Beschreibung |
|---|---|---|
SESSION_CLEANUP_INTERVAL_MINUTES |
60 |
Intervall (Minuten) für abgelaufene Session-Bereinigung |
| Variable | Standard | Beschreibung |
|---|---|---|
APP_NAME |
OpenSchichtplaner5 |
Anwendungsname (erscheint in API-Docs) |
APP_VERSION |
1.0.0 |
Versionsnummer (für API-Docs) |
# Datenbankpfad
SP5_DB_PATH=/data/sp5/Daten
# Sicherheit — UNBEDINGT anpassen!
SECRET_KEY=dein-geheimer-schluessel-hier-openssl-rand-hex-32
ALLOWED_ORIGINS=https://schichtplaner.meinefirma.at
SP5_HSTS=true
# Server
HOST=0.0.0.0
PORT=8000
DEBUG=false
# Tokens
TOKEN_EXPIRE_HOURS=8
# Rate Limiting
RATE_LIMIT_LOGIN=5/minute
RATE_LIMIT_API=200/minute
BRUTE_FORCE_MAX_ATTEMPTS=5
BRUTE_FORCE_LOCKOUT_MINUTES=15
# Logging
LOG_LEVEL=INFO
LOG_FILE=/app/logs/sp5-api.logBei Docker-Deployments wird die Konfiguration über die .env-Datei oder docker-compose.yml übergeben:
environment:
- SP5_DB_PATH=/app/sp5_db/Daten
- SECRET_KEY=dein-geheimer-schluessel
- ALLOWED_ORIGINS=https://schichtplaner.meinefirma.at
- TOKEN_EXPIRE_HOURS=8Siehe auch: Installation für vollständige Deployment-Anleitung.
Home — Startseite
- Installation — Installation & Setup
- Erste-Schritte — Quick Start Guide
- Onboarding-Wizard — 🧭 Ersteinrichtung
- Onboarding-Checkliste — ✅ Setup-Fortschritt
- Dashboard — Charts, Widgets & Performance
- Dienstplan — Dienstplan, Einsatzplan
- Kalender-Ansicht — 🗓️ Monatskalender
- Drag-and-Drop — 🖱️ Drag & Drop im Kalender
- Recurring-Shifts — 🔁 Wiederkehrende Schichten
- Schichtplan-Kommentare — 📝 Tagesnotizen
- Dienstplan-Vorlagen — 📋 Templates
- Undo-Redo — ↩️ Rückgängig/Wiederherstellen
- Jahresuebersicht — Jahresübersicht (Tagesraster)
- Personaltabelle — 📋 Kennzahlen-Auswertung
- Personalbedarf — 📌 Min/Max & Besetzungsampel
- Schichtwunsch-Kalender — 💬 Persönlicher Schichtkalender
- Schichtwuensche — Schichtwünsche & Sperrtage
- Verfuegbarkeit — 📅 Mitarbeiter-Verfügbarkeit
- Tauschboerse — 🔄 Schicht-Tauschbörse
- Urlaubsverwaltung — Urlaub & Abwesenheiten
- Jahresabschluss — 🎯 Überträge & Resturlaub-Verfall
- Ueberstunden — Überstunden-Dashboard & Tracking
- Arbeitszeit-Regelwerk — ⚖️ Arbeitszeitregeln
- Team-Kalender — 🗓️ Team-Kalender
- Team-Uebersicht — 👥 Team-Übersicht
- Berichte — Alle Berichte (20+)
- Scheduled-Reports — 📤 Automatische Berichte
-
Konflikt-Report —
⚠️ Konflikterkennung - Abwesenheits-Statistiken — 📊 Abwesenheitsauswertung
- Mitarbeiter-Timeline — 📅 Zeitachse
- Fairness-Score — 📐 Fairness-Score
- Mitarbeiter-Vergleich — ⚖️ Mitarbeiter-Vergleich
- Analytics-Charts — 📈 Analytics & Charts
- Jahresrueckblick — 🗓️ Jahresrückblick
- Import-Export — CSV/XLSX Import & Export
- Bulk-Import — 📦 Massenimport (Drag&Drop)
- Export-Scheduler — 📅 Automatischer Berichtsversand
- iCal-Export — 📅 iCal & Kalender-Abo
- Drucken — Drucken & PDF-Export
- Druckvorschau — Interaktive Print-Vorschau
- Mitarbeiter — Personal & Gruppen
- Foto-Upload — 📸 Mitarbeiter-Profilfotos
- Stammdaten — Schichten, Modelle, Zuschläge
- Feiertage — 🎉 Feiertage & Österreich-Import
- Kompetenz-Matrix — 📊 Qualifikations-Matrix
- API-Versionierung — 🔀 Versionierte API-Routes
- Webhook-System — 🔗 Webhooks
- Echtzeit-Updates — 📡 SSE Live-Updates
- Notification-Settings — 🔔 E-Mail-Einstellungen
- Multi-Tenant — 🏢 Mandantenverwaltung
- Benutzerverwaltung — Benutzer & Rechte
- Zwei-Faktor-Authentifizierung — 🔐 2FA (TOTP)
- Administration — Backup & Wartung
- Datenbank-Backup — 💾 Backup & Restore
- Rate-Limit-Dashboard — 🚦 Rate-Limit Monitoring
- Protokoll — Aktivitätsprotokoll
- Keyboard-Shortcuts — ⌨️ Tastaturkürzel
- Keyboard-Navigation — ⌨️ Vollständige Tastatur-Bedienbarkeit
- Security — 🔒 Sicherheit, CSP, CORS
- Health-Check — 🏥 Systemmetriken
- Konfiguration — ⚙️ ENV-Variablen
- PostgreSQL-Support — 🐘 PostgreSQL-Datenbank
- Auto-Migration — 🔄 Auto-Schema-Migration
- Datenbankformat — Technisches: DBF & SQLite
- ORM-Spiegel — 🪞 ORM-Spiegel (Admin)
- Error-Monitoring — 🔍 Logging & Monitoring
- Self-Service-Portal — 👤 Mitarbeiter Self-Service
- Dark-Mode — 🌙 Dark Mode (System-Preference)
- Command-Palette — 🔍 Schnellsuche (Ctrl+K)
- In-App-Changelog — 🔔 Changelog
- PWA — 📲 Progressive Web App
- Sprachumschalter — 🌍 DE/EN i18n
- Library (lib) — Datenbankformat & CLI
- REST-API — Endpunkt-Referenz