Timer-App unter Versionsverwaltung stellen
Stand der laufenden Anwendung von 192.168.1.5:/opt/timer-app (systemd-Dienst timer-app, Port 3003). Zeiterfassung mit Kostenberechnung: Node/Express, SQLite, Anmeldung ausschliesslich ueber Authentik (OIDC, PKCE, RP-Logout) - der frueher vorhandene Passwort-Login ist entfernt. Nicht im Repo, bewusst: - backend/.env und die .env-Sicherung: enthalten Session-Secret und die Authentik-Zugangsdaten. Vorlage ist backend/.env.example. - data/: die Datenbank mit den echten Zeiterfassungen. - node_modules/. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# ===========================================================================
|
||||
# Timer App - Konfiguration
|
||||
# Diese Datei nach ".env" kopieren und ausfuellen. Die .env gehoert NICHT
|
||||
# in die Versionsverwaltung.
|
||||
# ===========================================================================
|
||||
|
||||
# --- Netzwerk --------------------------------------------------------------
|
||||
|
||||
PORT=3003
|
||||
|
||||
# Auf welcher Adresse gelauscht wird.
|
||||
# 127.0.0.1 = nur lokal erreichbar -> RICHTIG, wenn ein Reverse Proxy
|
||||
# (nginx, Caddy, Traefik) davorsteht
|
||||
# 0.0.0.0 = im ganzen Netz erreichbar -> nur ohne Reverse Proxy, und dann
|
||||
# bitte COOKIE_SECURE=false beachten (siehe unten)
|
||||
HOST=127.0.0.1
|
||||
|
||||
# Anzahl der Proxy-Ebenen davor. Bei genau einem Reverse Proxy: 1.
|
||||
# Ohne Reverse Proxy: false
|
||||
TRUST_PROXY=1
|
||||
|
||||
# --- Sicherheit ------------------------------------------------------------
|
||||
|
||||
# ACHTUNG, haeufigste Fehlerquelle beim Deployment:
|
||||
# true -> Cookie wird NUR ueber HTTPS gesetzt. Laeuft die App ueber http://,
|
||||
# scheitert der Login STUMM (Passwort wird akzeptiert, aber die
|
||||
# Sitzung kommt nie zustande).
|
||||
# false -> auch ueber http:// nutzbar. Nur im internen Netz vertretbar.
|
||||
COOKIE_SECURE=true
|
||||
|
||||
# Zufaelliger Wert, unterschreibt die Sitzungs-Cookies.
|
||||
# Erzeugen mit: npm run gen-secret
|
||||
SESSION_SECRET=HIER_EINEN_ZUFALLSWERT_EINSETZEN
|
||||
|
||||
# Passwort fuer die Anmeldung. ZWEI Wege - bitte den ersten waehlen:
|
||||
#
|
||||
# 1) EMPFOHLEN: bcrypt-Hash. Erzeugen mit:
|
||||
# npm run hash-password -- "MeinPasswort"
|
||||
PASSWORD_HASH=
|
||||
|
||||
# 2) Notfalls Klartext. Wird beim Start gehasht, steht aber lesbar in dieser
|
||||
# Datei. Der Server warnt beim Start. Nur eins von beiden setzen.
|
||||
#PASSWORD=
|
||||
|
||||
# Anmeldeversuche pro Zeitfenster (Schutz gegen Durchprobieren)
|
||||
LOGIN_MAX_ATTEMPTS=20
|
||||
LOGIN_WINDOW_MIN=15
|
||||
|
||||
# --- Daten -----------------------------------------------------------------
|
||||
|
||||
# Pfad zur SQLite-Datei. Standard: ../data/timer.db relativ zum backend/.
|
||||
# Das Verzeichnis muss existieren und fuer den Dienst-Benutzer schreibbar sein.
|
||||
#DB_PATH=/var/lib/timer-app/timer.db
|
||||
|
||||
# Nur beim allerersten Start relevant: setzt den Anfangstarif.
|
||||
# Danach wird der Tarif in der Datenbank gepflegt (Menue "Einstellungen").
|
||||
RATE_PER_10MIN=10
|
||||
Reference in New Issue
Block a user