meldestelle/.env.example
Stefan Mogeritsch b6fda98c89 fix(web-app): remove unused sqlite.worker.js and wasi-dummy.js, update Config.kt and service worker logic
- Deleted `sqlite.worker.js` and `wasi-dummy.js` to clean up outdated resources.
- Updated `Config.kt` to use a shared `Json` instance for deserialization.
- Revised service worker for cache versioning and to bypass caching of `web-app.js` and `.map` files.
- Enhanced debug logging and improved handling of uncaught errors in new `sqlite.worker.js`.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-16 10:14:06 +01:00

179 lines
5.9 KiB
Plaintext
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.

# ==========================================
# Meldestelle Docker Compose Environment
# Single Source of Truth (SSoT)
# ==========================================
# ANLEITUNG:
# 1. Diese Datei nach ".env" kopieren: cp .env.example .env
# 2. Alle Werte mit <PLACEHOLDER> durch echte Werte ersetzen
# 3. Für lokale Entwicklung: KC_COMMAND=start-dev --import-realm
# Für Server/Produktion: KC_COMMAND=start --optimized --import-realm
# WARNING: Die .env-Datei enthält Secrets NIEMALS in Git committen!
# --- PROJECT ---
PROJECT_NAME=meldestelle
# --- BACKUP ---
# SERVER: Pfad zum Backup-Verzeichnis (z.B. /home/<USER>/backups/meldestelle)
BACKUP_DIR=/home/<USER>/backups/meldestelle
BACKUP_RETENTION_DAYS=7
# --- DOCKER BUILD & REGISTRY ---
DOCKER_REGISTRY=git.mo-code.at/mocode-software/meldestelle
DOCKER_TAG=latest
DOCKER_VERSION=1.0.0-SNAPSHOT
DOCKER_BUILD_DATE=2026-03-15T12:00:00Z
DOCKER_GRADLE_VERSION=9.3.1
DOCKER_JAVA_VERSION=25
DOCKER_NODE_VERSION=24.12.0
DOCKER_CADDY_VERSION=2.11-alpine
# ARM64 spezifische JVM-Optionen (leer lassen auf x86/amd64, z.B. auf Apple Silicon)
# Beispiel ARM64: JVM_OPTS_ARM64=-XX:UseSVE=0
JVM_OPTS_ARM64=
# --- POSTGRES ---
POSTGRES_IMAGE=postgres:16-alpine
POSTGRES_USER=<DB_USER>
POSTGRES_PASSWORD=<SICHERES_PASSWORT>
POSTGRES_DB=pg-meldestelle-db
POSTGRES_PORT=5432:5432
POSTGRES_DB_URL=jdbc:postgresql://postgres:5432/pg-meldestelle-db
# PostgreSQL Performance Tuning
POSTGRES_SHARED_BUFFERS=256MB
POSTGRES_EFFECTIVE_CACHE_SIZE=768MB
# --- VALKEY ---
VALKEY_IMAGE=valkey/valkey:9-alpine
VALKEY_PASSWORD=<SICHERES_PASSWORT>
VALKEY_PORT=6379:6379
VALKEY_SERVER_HOSTNAME=valkey
VALKEY_SERVER_PORT=6379
VALKEY_SERVER_CONNECT_TIMEOUT=5s
VALKEY_POLICY=allkeys-lru
VALKEY_MAX_MEMORY=256mb
# --- KEYCLOAK ---
KEYCLOAK_IMAGE_TAG=26.5.5
KC_HEAP_MIN=512M
KC_HEAP_MAX=1024M
# LOKAL: start-dev --import-realm
# SERVER: start --optimized --import-realm ← pre-built Registry-Image, kein start-dev!
KC_COMMAND=start --optimized --import-realm
KC_ADMIN_USERNAME=kc-admin
KC_ADMIN_PASSWORD=<SICHERES_PASSWORT>
KC_DB=postgres
KC_DB_SCHEMA=keycloak
KC_DB_URL=jdbc:postgresql://postgres:5432/pg-meldestelle-db
KC_DB_USERNAME=<DB_USER>
KC_DB_PASSWORD=<SICHERES_PASSWORT>
# SERVER: Public Domain (z.B. auth.mo-code.at) ohne http/https Prefix!
# LOKAL: localhost
# SERVER: auth.mo-code.at
KC_HOSTNAME=<SERVER_IP_ODER_DOMAIN>
# false = Zugriff über beliebige Hostnamen erlaubt (nötig ohne TLS / für HTTP-Betrieb)
KC_HOSTNAME_STRICT=false
KC_HOSTNAME_STRICT_HTTPS=false
KC_PORT=8180:8080
KC_MANAGEMENT_PORT=9000:9000
# Keycloak Client Secrets (müssen mit meldestelle-realm.json übereinstimmen)
KC_API_GATEWAY_CLIENT_SECRET=<SICHERES_SECRET>
KC_POSTMAN_CLIENT_SECRET=<SICHERES_SECRET>
# Bootstrap Admin-User Passwort (nur für Realm-Import, danach ändern!)
KC_BOOTSTRAP_ADMIN_PASSWORD=<SICHERES_PASSWORT>
# Frontend URL: Public-URL des Keycloak (für Token-Issuer im Browser)
# LOKAL: http://localhost:8180
# SERVER: https://auth.mo-code.at
KC_FRONTEND_URL=http://localhost:8180
# --- KEYCLOAK TOKEN VALIDATION ---
# Public Issuer URI: muss mit dem Hostname übereinstimmen, den Browser/App sieht
# LOKAL: http://localhost:8180/realms/meldestelle
# SERVER: https://auth.mo-code.at/realms/meldestelle (via Pangolin)
KC_ISSUER_URI=http://<SERVER_IP_ODER_DOMAIN>:8180/realms/meldestelle
# SERVER: https://auth.mo-code.at/realms/meldestelle
# Internal JWK Set URI: Service-zu-Service innerhalb Docker (immer keycloak:8080)
KC_JWK_SET_URI=http://keycloak:8080/realms/meldestelle/protocol/openid-connect/certs
# --- CONSUL ---
CONSUL_IMAGE=hashicorp/consul:1.22.1
CONSUL_PORT=8500:8500
CONSUL_UDP_PORT=8600:8600/udp
CONSUL_HOST=consul
# Separater HTTP-Port (ohne Mapping) für Service-zu-Service Kommunikation (ping-service)
CONSUL_HTTP_PORT=8500
# --- SPRING CLOUD CONSUL (api-gateway) ---
SPRING_CLOUD_CONSUL_HOST=consul
SPRING_CLOUD_CONSUL_PORT=8500
SPRING_CLOUD_CONSUL_DISCOVERY_SERVICE_NAME=api-gateway
SPRING_CLOUD_CONSUL_DISCOVERY_PREFER_IP_ADDRESS=true
# --- ZIPKIN ---
ZIPKIN_IMAGE=openzipkin/zipkin:3
ZIPKIN_MIN_HEAP=256M
ZIPKIN_MAX_HEAP=512M
ZIPKIN_PORT=9411:9411
ZIPKIN_ENDPOINT=http://zipkin:9411/api/v2/spans
ZIPKIN_SAMPLING_PROBABILITY=1.0
# --- MAILPIT ---
MAILPIT_IMAGE=axllent/mailpit:v1.29
MAILPIT_WEB_PORT=8025:8025
MAILPIT_SMTP_PORT=1025:1025
# --- PGADMIN ---
PGADMIN_IMAGE=dpage/pgadmin4:8
PGADMIN_EMAIL=meldestelle@mo-code.at
PGADMIN_PASSWORD=<SICHERES_PASSWORT>
PGADMIN_PORT=8888:80
# --- POSTGRES-EXPORTER ---
POSTGRES_EXPORTER_IMAGE=prometheuscommunity/postgres-exporter:v0.18.0
# --- ALERTMANAGER ---
ALERTMANAGER_IMAGE=prom/alertmanager:v0.29.0
ALERTMANAGER_PORT=9093:9093
# --- PROMETHEUS ---
PROMETHEUS_IMAGE=prom/prometheus:v3.7.3
PROMETHEUS_PORT=9090:9090
# --- GRAFANA ---
GF_IMAGE=grafana/grafana:12.3
GF_ADMIN_USER=gf-admin
GF_ADMIN_PASSWORD=<SICHERES_PASSWORT>
GF_PORT=3000:3000
# --- API-GATEWAY ---
GATEWAY_PORT=8081:8081
GATEWAY_DEBUG_PORT=5005:5005
GATEWAY_SERVER_PORT=8081
GATEWAY_SPRING_PROFILES_ACTIVE=docker
GATEWAY_DEBUG=true
# --- PING-SERVICE ---
PING_SPRING_PROFILES_ACTIVE=docker
PING_PORT=8082:8082
PING_DEBUG_PORT=5006:5006
PING_SERVER_PORT=8082
PING_DEBUG=true
PING_SERVICE_NAME=ping-service
PING_CONSUL_PREFER_IP=true
# --- WEB-APP ---
WEB_APP_PORT=4000:4000
# URL für API-Zugriffe vom Browser (Public URL via Pangolin)
# LOKAL: http://localhost:8081
# SERVER: https://api.mo-code.at
# SERVER: https://app.mo-code.at (API-Proxy läuft in Caddy unter /api/* gleiche Domain, kein CORS!)
# ALTERNATIV (eigene Domain): https://api.mo-code.at → dann separaten Pangolin-Route anlegen
WEB_APP_API_URL=http://localhost:8081
# URL für Keycloak-Zugriffe vom Browser (Public URL via Pangolin)
# LOKAL: http://localhost:8180
# SERVER: https://auth.mo-code.at
# SERVER: https://auth.mo-code.at → Pangolin-Route: auth.mo-code.at → http://10.0.0.50:8180
WEB_APP_KEYCLOAK_URL=http://localhost:8180
# --- DESKTOP-APP ---
DESKTOP_APP_VNC_PORT=5901:5901
DESKTOP_APP_NOVNC_PORT=6080:6080