Files
moneyfy/.env.example
T
moneyfyandClaude Opus 5 87bee9b72a build: Docker-Images, Compose-Setup und Gitea-Workflows
- Mehrstufige Dockerfiles je Dienst mit Stufen für Entwicklung und Betrieb,
  beide Images laufen als unprivilegierter Benutzer
- Backend-Entrypoint wartet auf die Datenbank, migriert und seedt nur bei
  leerem Kategoriebaum (neues Flag --if-empty)
- docker-compose.yml mit Netz-Trennung, Healthchecks und benannten Volumes;
  die Datenbank ist ausschließlich im internen Netz erreichbar
- nginx liefert das Bundle aus und reicht /api weiter; index.html ungecacht,
  gehashte Assets ein Jahr
- Gitea-Workflows: ci.yml für Lint, Tests und Bundle-Bau, build.yml für die
  Images nach linux/amd64 ohne Deploy-Schritt
- docs/runner.md und docs/deployment.md, .dockerignore je Dienst

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014e7t8UpmoVNMtWivY5LiSH
2026-09-09 17:14:44 +02:00

91 lines
3.6 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# =============================================================================
# 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
# Wird beim Betrieb mit Compose aus den drei Werten darüber zusammengesetzt und
# muss dort nicht gesetzt werden. Nur für den Betrieb ohne Compose nötig.
# `postgresql://` wird automatisch auf asyncpg umgestellt.
DATABASE_URL=postgresql+asyncpg://moneyfy:bitte-aendern@moneyfy-db:5432/moneyfy
# --- Sicherheit --------------------------------------------------------------
# Signaturschlüssel für JWTs, mindestens 32 Zeichen.
# Erzeugen mit: openssl rand -hex 32
SECRET_KEY=bitte-aendern-mindestens-32-zeichen-lang
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. Beim Betrieb mit Compose zeigt es fest
# auf das Volume und muss hier nicht gesetzt werden. Logos werden ausschließlich
# von dort ausgeliefert im Seitenaufruf entsteht kein Zugriff nach außen.
LOGO_STORAGE_DIR=/data/logos
# Der lokale simple-icons-Katalog deckt die meisten Marken ohne Netzzugriff ab.
# Die folgenden Provider sind optional; ohne Schlüssel wird der jeweilige
# Adapter stillschweigend übersprungen.
# logo.dev: veröffentlichbarer Token von https://www.logo.dev
# Achtung: Auf dem kostenlosen Tarif verlangt logo.dev bei kommerzieller
# Nutzung einen sichtbaren Rückverweis. Für private Nutzung entfällt das.
LOGODEV_API_KEY=
# Brandfetch: API-Schlüssel der Brand API (https://docs.brandfetch.com).
# Wird nur genutzt, wenn zur Firma eine Domain hinterlegt ist.
BRANDFETCH_API_KEY=
LOGO_HTTP_TIMEOUT_SECONDS=5
LOGO_HTTP_RETRIES=2
LOGO_MAX_UPLOAD_BYTES=1048576
# Sucht nach dem Anlegen einer Firma automatisch im Hintergrund nach einem Logo.
LOGO_AUTO_RESOLVE=true
# --- 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=