services: sparkyfitness-db: image: postgres:15-alpine restart: always environment: POSTGRES_DB: ${SPARKY_FITNESS_DB_NAME} POSTGRES_USER: ${SPARKY_FITNESS_DB_USER} POSTGRES_PASSWORD: ${SPARKY_FITNESS_DB_PASSWORD} volumes: - /home/soenke/docker-data/sparkyfitness/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} SPARKY_FITNESS_DB_USER: ${SPARKY_FITNESS_DB_USER} 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} SPARKY_FITNESS_DB_PORT: 5432 SPARKY_FITNESS_API_ENCRYPTION_KEY: ${SPARKY_FITNESS_API_ENCRYPTION_KEY} JWT_SECRET: ${JWT_SECRET} SPARKY_FITNESS_FRONTEND_URL: ${SPARKY_FITNESS_FRONTEND_URL} 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 networks: - sparkyfitness-network # Use the new named network restart: always depends_on: - sparkyfitness-db # Backend depends on the database being available sparkyfitness-frontend: image: codewithcj/sparkyfitness:latest # Use pre-built image ports: - "3942:80" # Map host port 8080 to container port 80 (Nginx) networks: - sparkyfitness-network # Use the new named network restart: always depends_on: - sparkyfitness-server # Frontend depends on the server labels: kuma.tools.tag.name: 'Tools' kuma.tools.tag.color: '#FF9900' kuma.homelab.tag.name: 'Homelab' kuma.homelab.tag.color: '#FF9955' kuma.organization.tag.name: 'Organization' kuma.organization.tag.color: '#FF99AA' kuma.sparkyfitness.http.name: 'Sparkyfitness' kuma.sparkyfitness.http.url: 'https://sparkyfitness.domr.ovh/' kuma.sparkyfitness.http.tag_names: '[{"name": "tools", "value": "" }, {"name": "organization", "value": "" }]' homepage.group: Hosting homepage.name: Sparkyfitness homepage.icon: sparkyfitness.png homepage.href: https://sparkyfitness.domr.ovh/ homepage.description: Sparkyfitness Fitnesstracker networks: sparkyfitness-network: driver: bridge