services: remnawave-minishop: image: ghcr.io/3252a8/remnawave-minishop:${IMAGE_TAG:-latest} container_name: remnawave-minishop hostname: remnawave-minishop env_file: - .env environment: - TZ=UTC volumes: - ./locales:/app/locales # Tariffs 2.0 configuration. Mount the data directory to persist # changes made via the admin panel. # - ./data:/app/data restart: unless-stopped depends_on: remnawave-minishop-db: condition: service_healthy remnawave-minishop-db: image: postgres:17 container_name: remnawave-minishop-db hostname: remnawave-minishop-db env_file: - .env environment: - TZ=UTC volumes: - remnawave-minishop-db-data:/var/lib/postgresql/data restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"] interval: 5s timeout: 5s retries: 20 caddy: image: caddy:2-alpine container_name: remnawave-minishop-caddy hostname: remnawave-minishop-caddy environment: - TZ=UTC - WEB_SERVER_PORT=${WEB_SERVER_PORT:-8080} - WEBAPP_SERVER_PORT=${WEBAPP_SERVER_PORT:-8081} depends_on: - remnawave-minishop ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - caddy_data:/data - caddy_config:/config restart: unless-stopped volumes: remnawave-minishop-db-data: name: remnawave-minishop-db-data caddy_data: name: remnawave-minishop-caddy-data caddy_config: name: remnawave-minishop-caddy-config