feat: central services mit traefik deployen

This commit is contained in:
2026-08-02 17:21:20 +02:00
parent 8b8e0c97d3
commit 3755b4136a
5 changed files with 181 additions and 22 deletions

View File

@@ -1,12 +1,39 @@
services:
traefik:
image: traefik:v3.3
restart: unless-stopped
command:
- --providers.docker=true
- --providers.docker.exposedbydefault=false
- --entrypoints.web.address=:80
- --entrypoints.web.http.redirections.entrypoint.to=websecure
- --entrypoints.web.http.redirections.entrypoint.scheme=https
- --entrypoints.websecure.address=:443
- --certificatesresolvers.letsencrypt.acme.tlschallenge=true
- --certificatesresolvers.letsencrypt.acme.email=${CONTACT_EMAIL}
- --certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json
- --ping=true
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik/letsencrypt:/letsencrypt
healthcheck:
test: ["CMD", "traefik", "healthcheck", "--ping"]
interval: 15s
timeout: 5s
retries: 5
networks:
- web
postgres:
image: postgres:17
restart: unless-stopped
environment:
POSTGRES_DB: fedeo_push
POSTGRES_USER: fedeo_push
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-fedeo_push}
ports:
- "5442:5432"
volumes:
- push_postgres_data:/var/lib/postgresql/data
healthcheck:
@@ -14,6 +41,8 @@ services:
interval: 10s
timeout: 5s
retries: 5
networks:
- internal
api:
restart: unless-stopped
@@ -23,8 +52,6 @@ services:
env_file: ${CENTRAL_ENV_FILE:-.env}
environment:
DATABASE_URL: postgres://fedeo_push:${POSTGRES_PASSWORD:-fedeo_push}@postgres:5432/fedeo_push
ports:
- "4020:4020"
depends_on:
postgres:
condition: service_healthy
@@ -33,6 +60,16 @@ services:
interval: 15s
timeout: 5s
retries: 5
labels:
- traefik.enable=true
- traefik.http.routers.fedeo-central-api.rule=Host(`${CENTRAL_API_DOMAIN}`)
- traefik.http.routers.fedeo-central-api.entrypoints=websecure
- traefik.http.routers.fedeo-central-api.tls.certresolver=letsencrypt
- traefik.http.services.fedeo-central-api.loadbalancer.server.port=4020
- traefik.docker.network=fedeo_central_web
networks:
- web
- internal
admin:
restart: unless-stopped
@@ -41,12 +78,26 @@ services:
dockerfile: apps/admin/Dockerfile
env_file: ${CENTRAL_ENV_FILE:-.env}
environment:
NUXT_PUBLIC_API_BASE: ${PUBLIC_API_BASE_URL:-http://localhost:4020}
ports:
- "3020:3000"
NUXT_PUBLIC_API_BASE: https://${CENTRAL_API_DOMAIN}
depends_on:
api:
condition: service_healthy
labels:
- traefik.enable=true
- traefik.http.routers.fedeo-central-admin.rule=Host(`${CENTRAL_ADMIN_DOMAIN}`)
- traefik.http.routers.fedeo-central-admin.entrypoints=websecure
- traefik.http.routers.fedeo-central-admin.tls.certresolver=letsencrypt
- traefik.http.services.fedeo-central-admin.loadbalancer.server.port=3000
- traefik.docker.network=fedeo_central_web
networks:
- web
volumes:
push_postgres_data:
networks:
web:
name: fedeo_central_web
internal:
name: fedeo_central_internal
internal: true