services: piped-frontend: image: 1337kavin/piped-frontend:latest restart: unless-stopped depends_on: - piped environment: BACKEND_HOSTNAME: BACKEND_HOSTNAME_PLACEHOLDER container_name: piped-frontend piped-proxy: image: 1337kavin/piped-proxy:latest restart: unless-stopped environment: - UDS=1 volumes: - piped-proxy:/app/socket container_name: piped-proxy piped: image: 1337kavin/piped:latest restart: unless-stopped volumes: - ./config/config.properties:/app/config.properties:ro depends_on: - postgres container_name: piped-backend nginx: image: nginx:mainline-alpine restart: unless-stopped volumes: - ./config/nginx.conf:/etc/nginx/nginx.conf:ro - ./config/pipedapi.conf:/etc/nginx/conf.d/pipedapi.conf:ro container_name: nginx depends_on: - piped caddy: image: caddy:2-alpine restart: unless-stopped ports: - "80:80" - "443:443" - "443:443/udp" volumes: - ./config/Caddyfile:/etc/caddy/Caddyfile:ro - caddy_data:/data - piped-proxy:/var/run/ytproxy container_name: caddy postgres: image: pgautoupgrade/pgautoupgrade:16-alpine restart: unless-stopped volumes: - ./data/db:/var/lib/postgresql/data environment: - POSTGRES_DB=piped - POSTGRES_USER=piped - POSTGRES_PASSWORD=changeme container_name: postgres watchtower: image: containrrr/watchtower restart: always volumes: - /var/run/docker.sock:/var/run/docker.sock - /etc/timezone:/etc/timezone:ro environment: - WATCHTOWER_CLEANUP=true - WATCHTOWER_INCLUDE_RESTARTING=true container_name: watchtower command: piped-frontend piped-backend piped-proxy nginx caddy postgres watchtower volumes: caddy_data: null piped-proxy: null