Files
HartOMat/docker-compose.worker.yml

52 lines
1.9 KiB
YAML

name: hartomat
# External render-worker configuration.
#
# Use this compose file on remote machines (GPU nodes, NAS, cloud VMs) that
# only need Redis + MinIO access — no database, no backend, no frontend.
#
# Usage on remote machine:
# export REDIS_URL=redis://main-server:6379/0
# export MINIO_URL=http://main-server:9000
# export MINIO_USER=minioadmin
# export MINIO_PASSWORD=minioadmin
# docker compose -f docker-compose.worker.yml up -d
#
# Requirements on remote machine:
# - Blender >= 5.0.1 installed at /opt/blender (or set BLENDER_BIN)
# - Docker + GPU drivers (NVIDIA recommended)
services:
render-worker:
image: hartomat-render-worker:latest
# Or build locally: build: { context: ./render-worker, dockerfile: Dockerfile }
environment:
- REDIS_URL=${REDIS_URL:?Set REDIS_URL to the main server Redis URL}
- POSTGRES_HOST=${POSTGRES_HOST:?Set POSTGRES_HOST to the main server DB host}
- POSTGRES_DB=${POSTGRES_DB:-hartomat}
- POSTGRES_USER=${POSTGRES_USER:-hartomat}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:?Set POSTGRES_PASSWORD}
- POSTGRES_PORT=${POSTGRES_PORT:-5432}
- MINIO_URL=${MINIO_URL:?Set MINIO_URL to the main server MinIO URL}
- MINIO_USER=${MINIO_USER:-minioadmin}
- MINIO_PASSWORD=${MINIO_PASSWORD:-minioadmin}
- MINIO_BUCKET=${MINIO_BUCKET:-uploads}
- UPLOAD_DIR=/tmp/render-cache
- BLENDER_BIN=${BLENDER_BIN:-/opt/blender/blender}
- RENDER_SCRIPTS_DIR=/render-scripts
- JWT_SECRET_KEY=${JWT_SECRET_KEY:?Set JWT_SECRET_KEY}
volumes:
- /opt/blender:/opt/blender:ro
- render-cache:/tmp/render-cache
deploy:
replicas: ${RENDER_WORKER_REPLICAS:-1}
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu, compute, utility, graphics]
volumes:
render-cache: