Add Garmin Connect auto-sync via python-garminconnect
- GarminConnectConfig model stores encrypted credentials and OAuth token - garmin_connect_sync service: token-based auth with password fallback, activity FIT download + queue, daily wellness from JSON API - Celery beat schedule: sync_all_garmin_connect fires every hour - New API router /api/garmin-sync: config CRUD, manual trigger - Beat container added to docker-compose.yml and docker-compose.deploy.yml - ProfilePage: Garmin Connect section with connect/update/disconnect and Sync now Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -91,6 +91,24 @@ services:
|
||||
redis:
|
||||
condition: service_healthy
|
||||
|
||||
beat:
|
||||
image: gitea.yourdomain.com/yourusername/milevault-worker:latest
|
||||
container_name: milevault_beat
|
||||
restart: unless-stopped
|
||||
command: celery -A app.workers.celery_app beat --loglevel=info
|
||||
environment:
|
||||
DATABASE_URL: postgresql+asyncpg://${DB_USER:-milevault}:${DB_PASSWORD:-milevault}@db:5432/milevault
|
||||
REDIS_URL: redis://:${REDIS_PASSWORD:-milevault}@redis:6379/0
|
||||
SECRET_KEY: ${SECRET_KEY:-changeme_run_openssl_rand_hex_32}
|
||||
FILE_STORE_PATH: /data/files
|
||||
volumes:
|
||||
- file_data:/data/files
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
|
||||
frontend:
|
||||
image: gitea.yourdomain.com/yourusername/milevault-frontend:latest
|
||||
container_name: milevault_frontend
|
||||
|
||||
Reference in New Issue
Block a user