Files
Docker/garmin-grafana/docker-compose.yaml
2025-12-24 15:29:50 +01:00

84 lines
2.5 KiB
YAML

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