- Repo-Struktur für Backend, Frontend, Dokumentation und Gitea-Workflows - FastAPI-Skeleton mit pydantic-settings und RFC-7807-artigem Fehlerformat - Vollständiges Datenmodell (15 Tabellen) als SQLAlchemy-2.0-Modelle - Alembic gegen die Async-Engine inklusive Erstmigration - Idempotenter Seed für den deutschen Kategoriebaum und Standardregeln - Endpunkte /api/health und /api/version - pytest-Infrastruktur mit transaktionsisolierten Fixtures Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014e7t8UpmoVNMtWivY5LiSH
73 lines
2.7 KiB
Bash
73 lines
2.7 KiB
Bash
# =============================================================================
|
||
# moneyfy – Beispielkonfiguration
|
||
# Kopieren nach `.env` und anpassen. Niemals echte Secrets committen.
|
||
# =============================================================================
|
||
|
||
# --- Allgemein ---------------------------------------------------------------
|
||
ENVIRONMENT=production # development | production | test
|
||
DEBUG=false
|
||
TIMEZONE=Europe/Berlin # Durchgängige Zeitzone der Anwendung
|
||
HOLIDAY_REGION=DE-NW # Feiertagsregion für Werktagsverschiebungen
|
||
DEFAULT_CURRENCY=EUR
|
||
# Öffentliche Basis-URL, u. a. für Links in Benachrichtigungen
|
||
PUBLIC_BASE_URL=https://moneyfy.menzel.center
|
||
# Image-Tag, den docker-compose zieht (main, 0.1.0, latest, sha-abc1234)
|
||
TAG=latest
|
||
|
||
# --- Datenbank ---------------------------------------------------------------
|
||
POSTGRES_DB=moneyfy
|
||
POSTGRES_USER=moneyfy
|
||
POSTGRES_PASSWORD=bitte-aendern
|
||
# Vom Backend genutzte DSN. `postgresql://` wird automatisch auf asyncpg umgestellt.
|
||
DATABASE_URL=postgresql+asyncpg://moneyfy:bitte-aendern@moneyfy-db:5432/moneyfy
|
||
|
||
# --- Sicherheit --------------------------------------------------------------
|
||
# Signaturschlüssel für JWTs. Erzeugen mit: openssl rand -hex 32
|
||
SECRET_KEY=bitte-aendern
|
||
ACCESS_TOKEN_TTL_MINUTES=30
|
||
REFRESH_TOKEN_TTL_DAYS=14
|
||
COOKIE_SECURE=true # Hinter HTTPS-Proxy true, für lokales HTTP false
|
||
COOKIE_DOMAIN=
|
||
|
||
# Wird beim ersten Start angelegt (danach mit erzwungenem Passwortwechsel).
|
||
MONEYFY_ADMIN_USER=admin
|
||
MONEYFY_ADMIN_PASSWORD=bitte-aendern
|
||
|
||
# --- OIDC (vorbereitet, noch nicht implementiert) ----------------------------
|
||
OIDC_ENABLED=false
|
||
OIDC_ISSUER=
|
||
OIDC_CLIENT_ID=
|
||
OIDC_CLIENT_SECRET=
|
||
OIDC_SCOPES=openid profile email
|
||
|
||
# --- Logo-Service ------------------------------------------------------------
|
||
# Verzeichnis für den lokalen Logo-Cache (im Container auf das Volume gemountet).
|
||
LOGO_STORAGE_DIR=/data/logos
|
||
# Optionale Provider. Ohne Key wird der jeweilige Adapter übersprungen.
|
||
LOGODEV_API_KEY=
|
||
BRANDFETCH_API_KEY=
|
||
LOGO_HTTP_TIMEOUT_SECONDS=5
|
||
LOGO_HTTP_RETRIES=2
|
||
LOGO_MAX_UPLOAD_BYTES=1048576
|
||
|
||
# --- Benachrichtigungen ------------------------------------------------------
|
||
NOTIFICATIONS_ENABLED=true
|
||
SCHEDULER_ENABLED=true
|
||
NOTIFICATION_HOUR=7 # Täglicher Lauf um 07:00 Europe/Berlin
|
||
NOTIFICATION_MINUTE=0
|
||
|
||
SMTP_HOST=
|
||
SMTP_PORT=587
|
||
SMTP_USER=
|
||
SMTP_PASSWORD=
|
||
SMTP_FROM=moneyfy@example.com
|
||
SMTP_USE_TLS=true # STARTTLS
|
||
SMTP_USE_SSL=false # Implizites TLS (Port 465)
|
||
|
||
# Komma-separierte Apprise-URLs, z. B. ntfy://host/topic,discord://...
|
||
APPRISE_URLS=
|
||
|
||
# --- CORS --------------------------------------------------------------------
|
||
# Nur für getrennte Frontend-Entwicklung nötig, z. B. http://localhost:5173
|
||
CORS_ORIGINS=
|