Add Docker Compose configuration and environment sample for SparkyFitness
This commit is contained in:
85
komodo/general-purpose/sparkyfitness/compose.yaml
Normal file
85
komodo/general-purpose/sparkyfitness/compose.yaml
Normal file
@@ -0,0 +1,85 @@
|
||||
services:
|
||||
sparkyfitness-db:
|
||||
image: postgres:15-alpine
|
||||
restart: always
|
||||
environment:
|
||||
POSTGRES_DB: ${SPARKY_FITNESS_DB_NAME:?Variable is required and must be set}
|
||||
POSTGRES_USER: ${SPARKY_FITNESS_DB_USER:?Variable is required and must be set}
|
||||
POSTGRES_PASSWORD: ${SPARKY_FITNESS_DB_PASSWORD:?Variable is required and must be set}
|
||||
volumes:
|
||||
- ${DB_PATH:-../postgresql}:/var/lib/postgresql/data
|
||||
networks:
|
||||
- sparkyfitness-network # Use the new named network
|
||||
|
||||
sparkyfitness-server:
|
||||
image: codewithcj/sparkyfitness_server:latest # Use pre-built image
|
||||
environment:
|
||||
SPARKY_FITNESS_LOG_LEVEL: ${SPARKY_FITNESS_LOG_LEVEL}
|
||||
ALLOW_PRIVATE_NETWORK_CORS: ${ALLOW_PRIVATE_NETWORK_CORS:-false}
|
||||
SPARKY_FITNESS_EXTRA_TRUSTED_ORIGINS: ${SPARKY_FITNESS_EXTRA_TRUSTED_ORIGINS:-}
|
||||
SPARKY_FITNESS_DB_USER: ${SPARKY_FITNESS_DB_USER:-sparky}
|
||||
SPARKY_FITNESS_DB_HOST: ${SPARKY_FITNESS_DB_HOST:-sparkyfitness-db} # Use the service name 'sparkyfitness-db' for inter-container communication
|
||||
SPARKY_FITNESS_DB_NAME: ${SPARKY_FITNESS_DB_NAME}
|
||||
SPARKY_FITNESS_DB_PASSWORD: ${SPARKY_FITNESS_DB_PASSWORD:?Variable is required and must be set}
|
||||
SPARKY_FITNESS_APP_DB_USER: ${SPARKY_FITNESS_APP_DB_USER:-sparkyapp}
|
||||
SPARKY_FITNESS_APP_DB_PASSWORD: ${SPARKY_FITNESS_APP_DB_PASSWORD:?Variable is required and must be set}
|
||||
SPARKY_FITNESS_DB_PORT: ${SPARKY_FITNESS_DB_PORT:-5432}
|
||||
SPARKY_FITNESS_API_ENCRYPTION_KEY: ${SPARKY_FITNESS_API_ENCRYPTION_KEY:?Variable is required and must be set}
|
||||
# Uncomment the line below and comment the line above to use a file-based secret
|
||||
# SPARKY_FITNESS_API_ENCRYPTION_KEY_FILE: /run/secrets/sparkyfitness_api_key
|
||||
|
||||
BETTER_AUTH_SECRET: ${BETTER_AUTH_SECRET:?Variable is required and must be set}
|
||||
# Uncomment the line below and comment the line above to use a file-based secret
|
||||
# JWT_SECRET_FILE: /run/secrets/sparkyfitness_jwt_secret
|
||||
SPARKY_FITNESS_FRONTEND_URL: ${SPARKY_FITNESS_FRONTEND_URL:-http://0.0.0.0:3004}
|
||||
SPARKY_FITNESS_DISABLE_SIGNUP: ${SPARKY_FITNESS_DISABLE_SIGNUP}
|
||||
SPARKY_FITNESS_ADMIN_EMAIL: ${SPARKY_FITNESS_ADMIN_EMAIL} #User with this email can access the admin panel
|
||||
SPARKY_FITNESS_EMAIL_HOST: ${SPARKY_FITNESS_EMAIL_HOST}
|
||||
SPARKY_FITNESS_EMAIL_PORT: ${SPARKY_FITNESS_EMAIL_PORT}
|
||||
SPARKY_FITNESS_EMAIL_SECURE: ${SPARKY_FITNESS_EMAIL_SECURE}
|
||||
SPARKY_FITNESS_EMAIL_USER: ${SPARKY_FITNESS_EMAIL_USER}
|
||||
SPARKY_FITNESS_EMAIL_PASS: ${SPARKY_FITNESS_EMAIL_PASS}
|
||||
SPARKY_FITNESS_EMAIL_FROM: ${SPARKY_FITNESS_EMAIL_FROM}
|
||||
GARMIN_MICROSERVICE_URL: http://sparkyfitness-garmin:8000 # Add Garmin microservice URL
|
||||
networks:
|
||||
- sparkyfitness-network # Use the new named network
|
||||
restart: always
|
||||
depends_on:
|
||||
- sparkyfitness-db # Backend depends on the database being available
|
||||
volumes:
|
||||
- ${SERVER_BACKUP_PATH:-./backup}:/app/SparkyFitnessServer/backup # Mount volume for backups
|
||||
- ${SERVER_UPLOADS_PATH:-./uploads}:/app/SparkyFitnessServer/uploads # Mount volume for Profile pictures and excercise images
|
||||
|
||||
sparkyfitness-frontend:
|
||||
image: codewithcj/sparkyfitness:latest # Use pre-built image
|
||||
ports:
|
||||
- "3004:80" # Map host port 8080 to container port 80 (Nginx)
|
||||
environment:
|
||||
SPARKY_FITNESS_FRONTEND_URL: ${SPARKY_FITNESS_FRONTEND_URL}
|
||||
SPARKY_FITNESS_SERVER_HOST: sparkyfitness-server # Internal Docker service name for the backend
|
||||
SPARKY_FITNESS_SERVER_PORT: 3010 # Port the backend server listens on
|
||||
networks:
|
||||
- sparkyfitness-network # Use the new named network
|
||||
restart: always
|
||||
depends_on:
|
||||
- sparkyfitness-server # Frontend depends on the server
|
||||
#- sparkyfitness-garmin # Frontend depends on Garmin microservice. Enable if you are using Garmin Connect features.
|
||||
|
||||
# Garmin integration is still work in progress. Enable once table is ready.
|
||||
# sparkyfitness-garmin:
|
||||
# image: codewithcj/sparkyfitness_garmin:latest
|
||||
# container_name: sparkyfitness-garmin
|
||||
# environment:
|
||||
# GARMIN_MICROSERVICE_URL: http://sparkyfitness-garmin:${GARMIN_SERVICE_PORT}
|
||||
# GARMIN_SERVICE_PORT: ${GARMIN_SERVICE_PORT}
|
||||
# GARMIN_SERVICE_IS_CN: ${GARMIN_SERVICE_IS_CN} # set to true for China region. Everything else should be false. Optional - defaults to false
|
||||
# networks:
|
||||
# - sparkyfitness-network
|
||||
# restart: unless-stopped
|
||||
# depends_on:
|
||||
# - sparkyfitness-db
|
||||
# - sparkyfitness-server
|
||||
|
||||
networks:
|
||||
sparkyfitness-network:
|
||||
driver: bridge
|
||||
Reference in New Issue
Block a user