services: logic-red: build: ./logic volumes: - ./logic/node-red-data:/data - ./shared_data:/data/results # Hier landen die JSON/SQLite Dateien - ./logic/scripts:/data/scripts environment: - TZ=Europe/Zurich - GROUPINFO_JSON_LNK_NAME=archivegroup_information.json - GROUPINFO_JSON_LNK_NAME_WITH_PATH=/data/archivegroup_information.json - NON_SPECIFIED_GROUPS=/data/non_specified_groups.csv - BEGIN_NAME_GROUPINFO_JSON_FILE=size_by_ownergroup_and_number_of_copies_ - BEGIN_NAME_GROUPINFO_JSON_FILE_WITH_PATH=/data/size_by_ownergroup_and_number_of_copies_ - ERROR_LOGFILE=/data/logs/get_new_groupinfo_error.log - JSON_CACHE=json_cache.json - JSON_CACHE_WITH_PATH=/data/json_cache.json - AD_SERVER=d.psi.ch - AD_SEARCH_BASE=DC=d,DC=psi,DC=ch - AD_USER=${AD_USER} - AD_PASSWORD=${AD_PASSWORD} - METABASE_API_KEY=${METABASE_API_KEY} # Behalte size_by_ownergroup_and_number_of_copies_ Files juenger als CLEANUP_TIME Tage - CLEANUP_TIME=20 # Ausfuehrungszeitpunkt fuer den Cleanup im Cron-Format (Minuten Stunden * * *) - CLEANUP_CRON=0 7 * * * # Pfad zum Cleanup-Skript - CLEANUP_SCRIPT_PATH=/data/scripts/cleanup.sh # Pfad zum Logfile des Cleanup-Skripts - CLEANUP_LOGFILE_PATH=/data/logs/cleanup.log # Ausfuehrungszeitpunkt fuer den Haupt-Workflow im Cron-Format - MAIN_WORKFLOW_CRON=0 6 * * * secrets: - ad_user - ad_password - metabase_api_key ports: - "1880:1880" # --- NEUER STREAMLIT CONTAINER --- analytics-app: build: ./analytics ports: - "8501:8501" # Standard-Port für Streamlit im Browser volumes: - ./analytics:/app # Mappt deinen Code, damit Änderungen live ohne Rebuild sichtbar sind - ./shared_data:/data:ro # Bindet die JSON-Daten NUR LESEND unter /data ein - ./analytics/config:/app/config # Mappt den config Ordner - ./analytics/data:/app/data # Mappt den data Ordner environment: - TZ=Europe/Zurich # Deklarieren, dass die Secrets von "außen" kommen secrets: ad_user: external: true ad_password: external: true metabase_api_key: external: true