nyanimedb/deploy/docker-compose.yml
2025-12-06 07:32:34 +03:00

129 lines
3.2 KiB
YAML

services:
postgres:
image: postgres:${POSTGRES_VERSION}
container_name: postgres
restart: always
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
ports:
- "${POSTGRES_PORT}:5432"
volumes:
- postgres_data:/var/lib/postgresql
networks:
- nyanimedb-network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
rabbitmq:
image: rabbitmq:3-management
container_name: rabbitmq
ports:
- "5672:5672"
- "15672:15672"
environment:
RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER}
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD}
volumes:
- rabbitmq_data:/var/lib/rabbitmq
networks:
- nyanimedb-network
healthcheck:
test: ["CMD", "rabbitmqctl", "status"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
nyanimedb-backend:
image: meowgit.nekoea.red/nihonium/nyanimedb-backend:latest
container_name: nyanimedb-backend
restart: always
environment:
LOG_LEVEL: ${LOG_LEVEL}
DATABASE_URL: ${DATABASE_URL}
SERVICE_ADDRESS: ${SERVICE_ADDRESS}
RABBITMQ_URL: ${RABBITMQ_URL}
JWT_PRIVATE_KEY: ${JWT_PRIVATE_KEY}
AUTH_ENABLED: ${AUTH_ENABLED}
IMAGES_BASE_URL: http://nyanimedb-images:8000
ports:
- "8080:8080"
depends_on:
- postgres
- rabbitmq
networks:
- nyanimedb-network
nyanimedb-auth:
image: meowgit.nekoea.red/nihonium/nyanimedb-auth:latest
container_name: nyanimedb-auth
restart: always
environment:
LOG_LEVEL: ${LOG_LEVEL}
DATABASE_URL: ${DATABASE_URL}
SERVICE_ADDRESS: ${SERVICE_ADDRESS}
JWT_PRIVATE_KEY: ${JWT_PRIVATE_KEY}
ports:
- "8082:8082"
depends_on:
- postgres
networks:
- nyanimedb-network
nyanimedb-frontend:
image: meowgit.nekoea.red/nihonium/nyanimedb-frontend:latest
container_name: nyanimedb-frontend
restart: always
ports:
- "8081:80"
depends_on:
- nyanimedb-backend
networks:
- nyanimedb-network
nyanimedb-etl:
image: meowgit.nekoea.red/nihonium/nyanimedb-etl:latest
container_name: nyanimedb-etl
restart: always
environment:
DATABASE_URL: ${DATABASE_URL}
RABBITMQ_URL: ${RABBITMQ_URL}
NYANIMEDB_IMPORT_RPC_QUEUE: anime_import_rpc
NYANIMEDB_IMAGE_SERVICE_URL: http://nyanimedb-images:8000
depends_on:
- postgres
- rabbitmq
- nyanimedb-images
networks:
- nyanimedb-network
nyanimedb-images:
image: meowgit.nekoea.red/nihonium/nyanimedb-image-storage:latest
container_name: nyanimedb-images
restart: always
environment:
NYANIMEDB_MEDIA_ROOT: /media
volumes:
- media_data:/media
networks:
- nyanimedb-network
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:8000/docs || exit 1"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
volumes:
postgres_data:
rabbitmq_data:
media_data:
networks:
nyanimedb-network: