From d909618ced9182ad5053f3d3d0acb449f17fdba5 Mon Sep 17 00:00:00 2001 From: Vassiliy Yegorov Date: Thu, 2 Jul 2026 15:31:27 +0700 Subject: [PATCH] Create docker-compose-traefik.yml --- docker-compose-traefik.yml | 68 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 docker-compose-traefik.yml diff --git a/docker-compose-traefik.yml b/docker-compose-traefik.yml new file mode 100644 index 0000000..f6b083d --- /dev/null +++ b/docker-compose-traefik.yml @@ -0,0 +1,68 @@ +services: + postgres: + image: postgres:18-alpine + environment: + POSTGRES_USER: imap + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + POSTGRES_DB: imapcopier + volumes: + - pgdata:/var/lib/postgresql + healthcheck: + test: ["CMD-SHELL", "pg_isready -U imap"] + interval: 5s + timeout: 3s + retries: 5 + networks: + - imap-copier + + app: + build: . + environment: + DATABASE_URL: postgres://imap:${POSTGRES_PASSWORD}@postgres:5432/imapcopier?sslmode=disable + AUTH_USER: ${AUTH_USER} + AUTH_PASS: ${AUTH_PASS} + ENC_KEY: ${ENC_KEY} + SESSION_SECRET: ${SESSION_SECRET} + WORKER_CONCURRENCY: ${WORKER_CONCURRENCY:-4} + depends_on: + postgres: + condition: service_healthy + networks: + - imap-copier + + caddy: + image: caddy:2-alpine + labels: + - "traefik.enable=true" + - "traefik.http.routers.imap-copier.rule=Host(`imap-copier.amegahost.kz`)" + - "traefik.http.routers.imap-copier.entrypoints=https" + - "traefik.http.routers.imap-copier.tls=true" + - "traefik.http.routers.imap-copier.tls.certresolver=letsEncrypt" + - "traefik.http.services.imap-copier-service.loadbalancer.server.port=80" + - "traefik.docker.network=webproxy" + expose: + - "${HTTP_PORT:-80}" + - "443" + environment: + DOMAIN: ${DOMAIN:-} + ACME_EMAIL: ${ACME_EMAIL:-} + volumes: + - ./Caddyfile:/etc/caddy/Caddyfile:ro + - caddy_data:/data + - caddy_config:/config + depends_on: + - app + networks: + - imap-copier + - webproxy + +volumes: + pgdata: + caddy_data: + caddy_config: + +networks: + imap-copier: + name: imap-copier + webproxy: + external: true \ No newline at end of file