# ============================================================ # ankerctl – Environment Variables # ============================================================ # Copy this file to .env and fill in the required values. # Docker Compose picks it up automatically via env_file. # # Markierung: # [REQUIRED] – muss gesetzt werden, sonst funktioniert etwas nicht # [RECOMMENDED] – sollte gesetzt werden für sinnvollen Betrieb # [OPTIONAL] – kann weggelassen werden, sinnvoller Default greift # ============================================================ # ============================================================ # PFLICHT / REQUIRED # ============================================================ # [REQUIRED] IP-Adresse, auf der der Webserver lauscht. # Bei host-networking die LAN-IP des Hosts eintragen. FLASK_HOST=192.168.1.x # [REQUIRED] Persistenter Secret Key für Browser-Sessions. # Ohne diesen Wert wird bei jedem Container-Neustart ein neuer # Key generiert → alle Browser-Sessions werden ungültig und # Speichern in der UI schlägt mit "Unauthorized" fehl. # Einmalig generieren: python3 -c "import secrets; print(secrets.token_urlsafe(32))" FLASK_SECRET_KEY=REPLACE_WITH_GENERATED_KEY # ============================================================ # EMPFOHLEN / RECOMMENDED # ============================================================ # [RECOMMENDED] API-Key für Schreiboperationen (POST/DELETE). # Ohne diesen Key kann jeder im Netz Einstellungen ändern und # Drucke starten. Nach dem Setzen einmalig im Browser aufrufen: # http://:/?apikey= # Das setzt einen Session-Cookie für nachfolgende Requests. ANKERCTL_API_KEY=REPLACE_WITH_SECURE_KEY # ============================================================ # OPTIONAL – Server # ============================================================ # Port des Webservers (default: 4470) #FLASK_PORT=4470 # Maximale Upload-Größe in Megabyte (default: 512) #UPLOAD_MAX_MB=512 # Upload-Geschwindigkeit zum Drucker in Mbit/s (Werte: 5, 10, 25, 50, 100; default: 10) #UPLOAD_RATE_MBPS=10 # ============================================================ # OPTIONAL – UI # ============================================================ # Pause/Resume/Stop-Buttons anzeigen (experimentell, funktioniert # ggf. nicht zuverlässig). Beliebigen Wert setzen zum Aktivieren. #ANKERCTL_PRINT_CONTROLS=1 # ============================================================ # OPTIONAL – Print History # ============================================================ # Aufbewahrungsdauer für History-Einträge in Tagen (default: 90) #PRINT_HISTORY_RETENTION_DAYS=90 # Maximale Anzahl History-Einträge (default: 500) #PRINT_HISTORY_MAX_ENTRIES=500 # ============================================================ # OPTIONAL – Timelapse # ============================================================ # Erfordert ffmpeg im Container und ein gemountetes /captures-Volume. # Timelapse-Aufnahme aktivieren (default: false) #TIMELAPSE_ENABLED=false # Sekunden zwischen Snapshots (default: 30) #TIMELAPSE_INTERVAL_SEC=30 # Maximale Anzahl gespeicherter Videos (default: 10) #TIMELAPSE_MAX_VIDEOS=10 # Videos persistent speichern (default: true) #TIMELAPSE_SAVE_PERSISTENT=true # Verzeichnis für Timelapse-Videos im Container (default: /captures) #TIMELAPSE_CAPTURES_DIR=/captures # Licht-Modus während der Timelapse-Aufnahme (default: kein Licht-Eingriff) # snapshot – Licht pro Frame an (1.5s warten, Snap, 1s warten, aus) # session – Licht an bei Capture-Start, aus bei Capture-Ende #TIMELAPSE_LIGHT=snapshot # Kameraquelle fuer Timelapse (default: follow) # follow - Home-Kameraauswahl verwenden # printer - interne Druckerkamera verwenden # external - konfigurierte externe Kamera verwenden #TIMELAPSE_CAMERA_SOURCE=follow # ============================================================ # OPTIONAL – Home Assistant MQTT Discovery # ============================================================ # Veröffentlicht Druckerstatus via MQTT Discovery in Home Assistant. # Erfordert einen erreichbaren MQTT-Broker (z.B. Mosquitto). # # WICHTIG: HA_MQTT_PASSWORD muss gesetzt sein wenn der Broker # Authentifizierung verlangt – leeres Passwort führt zu rc=5 (Unauthorized). #HA_MQTT_ENABLED=false #HA_MQTT_HOST=localhost #HA_MQTT_PORT=1883 #HA_MQTT_USER= #HA_MQTT_PASSWORD=REPLACE_WITH_MQTT_PASSWORD #HA_MQTT_DISCOVERY_PREFIX=homeassistant #HA_MQTT_TOPIC_PREFIX=ankerctl # ============================================================ # OPTIONAL – Apprise Notifications # ============================================================ # Erfordert einen externen Apprise-API-Server. # Siehe: https://github.com/caronc/apprise-api #APPRISE_ENABLED=false #APPRISE_SERVER_URL=http://apprise:8000 #APPRISE_KEY=ankerctl #APPRISE_TAG= # Ereignis-Schalter #APPRISE_EVENT_PRINT_STARTED=true #APPRISE_EVENT_PRINT_FINISHED=true #APPRISE_EVENT_PRINT_FAILED=true #APPRISE_EVENT_GCODE_UPLOADED=true #APPRISE_EVENT_PRINT_PROGRESS=true # Fortschritts-Benachrichtigungen #APPRISE_PROGRESS_INTERVAL=25 #APPRISE_PROGRESS_INCLUDE_IMAGE=false #APPRISE_PROGRESS_MAX=0 # Snapshot-Einstellungen (für Bildanhänge in Benachrichtigungen) #APPRISE_SNAPSHOT_QUALITY=hd #APPRISE_SNAPSHOT_FALLBACK=true #APPRISE_SNAPSHOT_LIGHT=false # ============================================================ # OPTIONAL – Debug / Development # ============================================================ # Zeigt das Debug-Menü in der Web-Oberfläche (rotes Käfer-Icon). #ANKERCTL_DEV_MODE=false # ============================================================ # LOGGING # ============================================================ # Directory to write logs to (split by component: mqtt.log, web.log, etc.) # If unset, logs only go to stdout/stderr. #ANKERCTL_LOG_DIR=/logs