98 lines
2.7 KiB
YAML
98 lines
2.7 KiB
YAML
# ©AngelaMos | 2026
|
|
# Development Docker Compose
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:18-alpine
|
|
container_name: vigil-postgres-dev
|
|
environment:
|
|
POSTGRES_DB: ${POSTGRES_DB:-angelusvigil}
|
|
POSTGRES_USER: ${POSTGRES_USER:-vigil}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?POSTGRES_PASSWORD required}
|
|
POSTGRES_INITDB_ARGS: "-E UTF8 --locale=C"
|
|
volumes:
|
|
- postgres_dev_data:/var/lib/postgresql/data
|
|
ports:
|
|
- "${POSTGRES_HOST_PORT:-16969}:5432"
|
|
networks:
|
|
- vigil_network_dev
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-vigil} -d ${POSTGRES_DB:-angelusvigil}"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
redis:
|
|
image: redis:7.4-alpine
|
|
container_name: vigil-redis-dev
|
|
command: redis-server /usr/local/etc/redis/redis.conf
|
|
volumes:
|
|
- redis_dev_data:/data
|
|
- ./infra/redis/redis.conf:/usr/local/etc/redis/redis.conf:ro
|
|
ports:
|
|
- "${REDIS_HOST_PORT:-26969}:6379"
|
|
networks:
|
|
- vigil_network_dev
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
backend:
|
|
build:
|
|
context: .
|
|
dockerfile: infra/docker/fastapi.dev
|
|
container_name: vigil-backend-dev
|
|
environment:
|
|
ENV: ${ENV:-development}
|
|
DEBUG: ${DEBUG:-true}
|
|
LOG_LEVEL: ${LOG_LEVEL:-DEBUG}
|
|
API_KEY: ${API_KEY:-dev-api-key}
|
|
DATABASE_URL: postgresql+asyncpg://${POSTGRES_USER:-vigil}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-angelusvigil}
|
|
REDIS_URL: ${REDIS_URL:-redis://redis:6379}
|
|
NGINX_LOG_PATH: /var/log/nginx/access.log
|
|
GEOIP_DB_PATH: /usr/share/GeoIP/GeoLite2-City.mmdb
|
|
volumes:
|
|
- ./backend:/app
|
|
- /app/.venv
|
|
- /app/__pycache__
|
|
- ./data/sample-logs:/var/log/nginx:ro
|
|
- geoip_dev_data:/usr/share/GeoIP:ro
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
networks:
|
|
- vigil_network_dev
|
|
ports:
|
|
- "${BACKEND_HOST_PORT:-36969}:8000"
|
|
restart: unless-stopped
|
|
|
|
geoip-updater:
|
|
image: maxmindinc/geoipupdate:latest
|
|
container_name: vigil-geoip-dev
|
|
environment:
|
|
GEOIPUPDATE_ACCOUNT_ID: ${GEOIP_ACCOUNT_ID:-0}
|
|
GEOIPUPDATE_LICENSE_KEY: ${GEOIP_LICENSE_KEY:-placeholder}
|
|
GEOIPUPDATE_EDITION_IDS: "GeoLite2-City"
|
|
GEOIPUPDATE_FREQUENCY: "168"
|
|
volumes:
|
|
- geoip_dev_data:/usr/share/GeoIP
|
|
networks:
|
|
- vigil_network_dev
|
|
|
|
networks:
|
|
vigil_network_dev:
|
|
driver: bridge
|
|
name: vigil_network_dev
|
|
|
|
volumes:
|
|
postgres_dev_data:
|
|
name: vigil_postgres_dev_data
|
|
redis_dev_data:
|
|
name: vigil_redis_dev_data
|
|
geoip_dev_data:
|
|
name: vigil_geoip_dev_data
|