# Eigenstaendiges Stack fuer readarchive - kein Dauerdienst, sondern ein Lauf # mit Parametern. Liest rueckwirkend die Tagesdateien von # archive.sensor.community ein, um Luecken zu fuellen. # # Dieselbe Datei dient beiden Wegen: # # Kommandozeile (Parameter als Argumente): # docker compose -f readarchive-stack.yml run --rm readarchive \ # -t noise -s 2026-07-22 -e 2026-07-23 -d influx # # Portainer (Parameter als Environment-Variablen des Stacks): # START=2026-07-22 END=2026-07-23 TYP=noise DBASE=influx # -> Deploy the stack; der Container laeuft einmal durch und endet. # Fuer den naechsten Zeitraum die Variablen aendern und # "Update the stack". # # readFromcsv.js liest jeden Parameter auch aus einer Env-Variablen: # -s = START (Default: gestern), -e = END (Default: Startdatum + 1 Tag, # exklusiv), -t = TYP (Default: noise), -d = DBASE (Default: both). # # Voraussetzungen: # * Der Haupt-Stack laeuft, denn dessen Netz wird hier eingebunden. Der Name # ist _default (im Portainer unter Networks nachsehen). # * Zugangsdaten und LOCALDIR wie im Haupt-Stack - auf der Kommandozeile aus # einer .env neben dieser Datei, im Portainer aus den Stack-Variablen. # * Auch mit DBASE=influx wird Mongo gebraucht (dort liegen die Metadaten der # Sensoren), das Netz muss also beide erreichen. # Eigener Projektname, damit dieses Compose-File auf der Kommandozeile nicht # das Projekt des Haupt-Stacks uebernimmt (sonst "orphan containers" und ein # versehentliches "down" trifft den ganzen Stack). Portainer setzt den # Projektnamen ueber den Stack-Namen und ueberschreibt diesen Wert. name: readarchive services: readarchive: image: docker.citysensor.de/readarchive environment: MONGOHOST: mongodb INFLUXHOST: influxdb MONGOAUTH: "true" MONGOUSRP: ${MONGO_ROOT_USERNAME}:${MONGO_ROOT_PASSWORD} INFLUXTOKEN: ${DOCKER_INFLUXTOKEN} # leer lassen = Default (siehe oben) START: ${START:-} END: ${END:-} TYP: ${TYP:-noise} DBASE: ${DBASE:-influx} volumes: - ${LOCALDIR}/noisesensors/log:/var/log - ${LOCALDIR}/noisesensors/data/readarchive:/opt/app/readarchive/data # Einmal-Lauf: nach dem Ende nicht neu starten. Exit-Code != 0 bedeutet, # dass Influx-Writes fehlgeschlagen sind (Details im Log). restart: "no" networks: - noise networks: noise: external: true name: noisesensors_default