kredens/docker-compose.yml

74 lines
1.7 KiB
YAML

services:
backend:
image: modzero.xyz/kredens/backend
build:
dockerfile: dockerfiles/backend.dockerfile
context: .
pull_policy: build
develop:
watch:
- path: ./kredens
action: sync
target: /app/kredens
- path: ./pyproject.toml
action: rebuild
- path: ./manage.py
action: rebuild
- path: ./uv.lock
action: rebuild
environment:
- DATABASE_URL=postgres://postgres:${DATABASE_PASSWORD:?Database password required}@database/kredens
depends_on:
- database
database:
image: postgres:17
restart: unless-stopped
shm_size: 128mb
environment:
- POSTGRES_PASSWORD=${DATABASE_PASSWORD:?Database password required}
- POSTGRES_DB=kredens
healthcheck:
test: ["CMD-SHELL", "su -c 'pg_isready -d kredens -h localhost' postgres"]
interval: 30s
timeout: 60s
retries: 5
start_period: 80s
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
webproxy:
image: caddy
restart: unless-stopped
cap_add:
- NET_ADMIN
volumes:
- ./configs/caddy/:/etc/caddy/
- caddy_data:/data
- caddy_config:/config
ports:
- "80:80"
- "443:443"
- "443:443/udp"
- "2019:2019"
mailpit:
image: axllent/mailpit
restart: unless-stopped
volumes:
- mailpit_data:/data
environment:
MP_MAX_MESSAGES: 5000
MP_DATABASE: /data/mailpit.db
MP_SMTP_AUTH_ACCEPT_ANY: 1
MP_SMTP_AUTH_ALLOW_INSECURE: 1
MP_WEBROOT: mailpit
volumes:
caddy_data:
caddy_config:
postgres_data:
mailpit_data:
networks:
default:
enable_ipv6: true