services: postgres: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_DB: advdoors POSTGRES_USER: advdoors POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-advdoors} volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U advdoors"] interval: 10s timeout: 5s retries: 5 minio: image: minio/minio:latest restart: unless-stopped command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin} volumes: - minio-data:/data ports: - "127.0.0.1:9001:9001" healthcheck: test: ["CMD", "mc", "ready", "local"] interval: 10s timeout: 5s retries: 5 minio-init: image: minio/mc:latest depends_on: minio: condition: service_healthy entrypoint: > /bin/sh -c " mc alias set local http://minio:9000 $${MINIO_ROOT_USER:-minioadmin} $${MINIO_ROOT_PASSWORD:-minioadmin}; mc mb --ignore-existing local/advdoors-media; mc anonymous set download local/advdoors-media; exit 0; " app: image: git.oberonworks.ru/oberon/advdoors:latest build: context: .. dockerfile: docker/Dockerfile restart: unless-stopped depends_on: postgres: condition: service_healthy minio: condition: service_healthy environment: DATABASE_URI: postgresql://advdoors:${POSTGRES_PASSWORD:-advdoors}@postgres:5432/advdoors PAYLOAD_SECRET: ${PAYLOAD_SECRET} S3_ENDPOINT: http://minio:9000 S3_BUCKET: advdoors-media S3_ACCESS_KEY: ${MINIO_ROOT_USER:-minioadmin} S3_SECRET_KEY: ${MINIO_ROOT_PASSWORD:-minioadmin} S3_REGION: us-east-1 NEXT_PUBLIC_SITE_URL: ${SITE_URL:-https://advdoors.ru} caddy: image: caddy:2-alpine restart: unless-stopped depends_on: - app - minio ports: - "80:80" - "443:443" - "443:443/udp" environment: SITE_DOMAIN: ${SITE_DOMAIN:-advdoors.ru} volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - caddy-data:/data - caddy-config:/config backup: image: postgres:16-alpine restart: unless-stopped depends_on: postgres: condition: service_healthy environment: PGPASSWORD: ${POSTGRES_PASSWORD:-advdoors} volumes: - ./backup.sh:/backup.sh:ro - backups:/backups entrypoint: > /bin/sh -c " while true; do /backup.sh sleep 86400 done " volumes: pgdata: minio-data: caddy-data: caddy-config: backups: