chore: Projektgeruest, Abhaengigkeiten und Werkzeuge
Plain PHP 8.2+ ohne Framework. Einzige Laufzeit-Abhaengigkeit ist endroid/qr-code; intl und imagick sind optional (es gibt jeweils einen Rueckfallweg). Konfiguration ueber .env oder Umgebungsvariablen, damit dieselbe Anwendung per FTP und per Docker deploybar ist.
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
# =============================================================
|
||||
# urlshort-qr-gen – Konfiguration
|
||||
# Diese Datei nach ".env" kopieren und anpassen.
|
||||
# Alle Werte koennen alternativ als echte Umgebungsvariablen
|
||||
# gesetzt werden (Docker); die .env hat dann Vorrang, wenn der
|
||||
# Schluessel dort vorhanden ist.
|
||||
# =============================================================
|
||||
|
||||
# --- Anwendung -----------------------------------------------
|
||||
# Basis-URL OHNE abschliessenden Slash. Wird fuer die Kurzlinks
|
||||
# und die QR-Codes verwendet.
|
||||
APP_BASE_URL=http://localhost:8080
|
||||
|
||||
# production | development (development zeigt Fehlermeldungen an)
|
||||
APP_ENV=production
|
||||
|
||||
APP_TIMEZONE=Europe/Berlin
|
||||
|
||||
# HTTP-Status fuer Weiterleitungen: 301 (permanent, wird vom
|
||||
# Browser gecacht -> weniger Klicks werden gezaehlt) oder
|
||||
# 302 / 307 (temporaer, empfohlen fuer korrekte Statistik).
|
||||
REDIRECT_STATUS=302
|
||||
|
||||
# --- Datenbank ------------------------------------------------
|
||||
# sqlite | mysql
|
||||
DB_DRIVER=sqlite
|
||||
|
||||
# Nur fuer sqlite: Pfad zur Datenbankdatei.
|
||||
# Relative Pfade werden vom Projekt-Stammverzeichnis aus aufgeloest.
|
||||
DB_SQLITE_PATH=data/database.sqlite
|
||||
|
||||
# Nur fuer mysql:
|
||||
DB_HOST=127.0.0.1
|
||||
DB_PORT=3306
|
||||
DB_NAME=urlshort
|
||||
DB_USER=urlshort
|
||||
DB_PASSWORD=
|
||||
DB_CHARSET=utf8mb4
|
||||
|
||||
# --- Admin-Zugang ---------------------------------------------
|
||||
ADMIN_USER=admin
|
||||
# bcrypt-Hash des Passworts. Leer lassen -> beim ersten Aufruf startet
|
||||
# der Setup-Assistent. Dieser verlangt zusaetzlich ein Einmal-Token,
|
||||
# das in data/setup-token.txt steht (und im Serverprotokoll), damit
|
||||
# niemand anderes die frische Installation uebernehmen kann.
|
||||
# Hash erzeugen: php -r "echo password_hash('geheim', PASSWORD_DEFAULT), PHP_EOL;"
|
||||
ADMIN_PASSWORD_HASH=
|
||||
|
||||
# --- Sessions / Sicherheit ------------------------------------
|
||||
SESSION_NAME=urlshort_session
|
||||
# Abmeldung nach Inaktivitaet (Sekunden)
|
||||
SESSION_LIFETIME=7200
|
||||
# Harte Obergrenze je Sitzung, unabhaengig von Aktivitaet (0 = aus)
|
||||
SESSION_ABSOLUTE_LIFETIME=43200
|
||||
# Cookies nur ueber HTTPS senden. Wird bei einer HTTPS-Anfrage
|
||||
# automatisch aktiviert; hier auf true setzen, wenn die Anwendung
|
||||
# ausschliesslich ueber HTTPS erreichbar ist.
|
||||
SESSION_SECURE=false
|
||||
|
||||
# --- Betrieb hinter einem Proxy / Loadbalancer ----------------
|
||||
# Nur IPs und CIDR-Bereiche aus dieser Liste duerfen X-Forwarded-For
|
||||
# und X-Forwarded-Proto setzen. LEER LASSEN, wenn kein Proxy davor
|
||||
# steht - sonst koennte jeder die Client-IP faelschen und damit die
|
||||
# Login-Sperre umgehen.
|
||||
# Beispiel: TRUSTED_PROXIES=10.0.0.0/8,172.18.0.1
|
||||
TRUSTED_PROXIES=
|
||||
|
||||
# HTTP Strict Transport Security in Sekunden (0 = aus).
|
||||
# Wird nur bei HTTPS-Anfragen gesendet.
|
||||
HSTS_MAX_AGE=31536000
|
||||
|
||||
# Login-Ratenbegrenzung
|
||||
LOGIN_MAX_ATTEMPTS=5
|
||||
LOGIN_LOCKOUT_SECONDS=900
|
||||
|
||||
# --- Datenschutz ----------------------------------------------
|
||||
# none = IP wird gar nicht gespeichert (Standard, DSGVO-freundlich)
|
||||
# hash = nur ein gesalzener, gekuerzter Hash (fuer Unique-Zaehlung)
|
||||
TRACK_IP=none
|
||||
# Zufaelliger Salt, nur relevant bei TRACK_IP=hash
|
||||
IP_HASH_SALT=
|
||||
|
||||
# Tage, nach denen einzelne Besuchsdatensaetze automatisch geloescht
|
||||
# werden (0 = nie loeschen). Die Gesamt-Klickzahl bleibt erhalten.
|
||||
VISIT_RETENTION_DAYS=365
|
||||
|
||||
# --- Uploads (QR-Logos) ---------------------------------------
|
||||
# Ablage der Logos, relativ zum Projekt-Stammverzeichnis.
|
||||
# Liegt bewusst ausserhalb des Webroots.
|
||||
UPLOAD_DIR=data/uploads
|
||||
UPLOAD_MAX_BYTES=2097152
|
||||
Reference in New Issue
Block a user