services: garmin-fetch-data: restart: unless-stopped image: thisisarpanghosh/garmin-fetch-data:latest container_name: garmin-fetch-data depends_on: influxdb: condition: service_healthy volumes: - garminconnect_tokens:/home/appuser/.garminconnect # persisted tokens storage (named volume) environment: - INFLUXDB_HOST=influxdb - INFLUXDB_PORT=8086 - INFLUXDB_USERNAME=influxdb_user - INFLUXDB_PASSWORD=${INFLUXDB_PASSWORD} - INFLUXDB_DATABASE=GarminStats - UPDATE_INTERVAL_SECONDS=300 - LOG_LEVEL=INFO - GARMINCONNECT_EMAIL=${GARMINCONNECT_EMAIL} - GARMINCONNECT_BASE64_PASSWORD=${GARMINCONNECT_PASSWORD} # (must be base64 encoded) - GARMINCONNECT_IS_CN=False # - USER_TIMEZONE=Europe/Paris # Optional: Override automatic timezone detection # - FETCH_SELECTION=daily_avg,sleep,steps,heartrate,stress # Optional: Select specific data to fetch # - KEEP_FIT_FILES=False # - ALWAYS_PROCESS_FIT_FILES=False # - MANUAL_START_DATE=2023-01-01 # For bulk import: set date and run with docker-compose run ... # - MANUAL_END_DATE=2023-01-31 # For bulk import: defaults to today if unset networks: - garmin-grafana-net influxdb: restart: unless-stopped container_name: influxdb hostname: influxdb image: influxdb:1.8 environment: - INFLUXDB_DB=GarminStats - INFLUXDB_USER=influxdb_user - INFLUXDB_USER_PASSWORD=${INFLUXDB_PASSWORD} - INFLUXDB_DATA_INDEX_VERSION=tsi1 ports: - '8086:8086' volumes: - influxdb_data:/var/lib/influxdb healthcheck: test: [ "CMD", "curl", "-f", "http://localhost:8086/ping" ] interval: 10s timeout: 5s retries: 5 networks: - garmin-grafana-net grafana: restart: unless-stopped container_name: grafana hostname: grafana image: grafana/grafana:latest environment: - GF_SECURITY_ADMIN_USER=${GF_SECURITY_ADMIN_USER} - GF_SECURITY_ADMIN_PASSWORD=${GF_SECURITY_ADMIN_PASSWORD} volumes: - grafana_data:/var/lib/grafana ports: - '3000:3000' healthcheck: test: [ "CMD", "curl", "-f", "http://localhost:3000/api/health" ] interval: 10s timeout: 5s retries: 5 networks: - garmin-grafana-net networks: garmin-grafana-net: driver: bridge volumes: garminconnect_tokens: name: garminconnect_tokens influxdb_data: name: influxdb_data grafana_data: name: grafana_data