volumes: redis_data: services: traefik: image: traefik:latest container_name: traefik ports: - "80:80" - "443:443" volumes: - "/var/run/docker.sock:/var/run/docker.sock" restart: always command: - "--providers.docker=true" - "--providers.docker.exposedByDefault=false" - "--entrypoints.web.address=:80" - "--entrypoints.web-secure.address=:443" - "--accesslog=true" - "--entrypoints.web.http.redirections.entryPoint.to=web-secure" - "--entrypoints.web.http.redirections.entryPoint.scheme=https" - "--entrypoints.web.http.redirections.entrypoint.permanent=true" redis: image: redis:latest container_name: redis restart: always healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 30s timeout: 10s retries: 3 volumes: - redis_data:/data api: labels: - "traefik.enable=true" - "traefik.http.routers.api.entrypoints=web-secure" - "traefik.http.routers.api.rule=Host(`localhost`) || Host(`127.0.0.1`)" - "traefik.http.routers.api.tls=true" - "traefik.http.services.api.loadbalancer.server.port=8080" image: siteworxpro/top-wallpaper:v1.3.1 container_name: top-wallpaper environment: REDIS_URL: "redis" CORS_ORIGINS: "https://localhost" depends_on: redis: condition: service_healthy