52 lines
1.9 KiB
YAML
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:
|