# Database POSTGRES_DB=hartomat POSTGRES_USER=hartomat POSTGRES_PASSWORD=hartomat POSTGRES_HOST=postgres POSTGRES_PORT=5432 # Redis REDIS_URL=redis://redis:6379/0 # Prevent Python services from writing __pycache__ into bind-mounted source dirs. PYTHONDONTWRITEBYTECODE=1 # Redirect any unavoidable bytecode writes away from bind mounts. PYTHONPYCACHEPREFIX=/tmp/pycache # Run Celery containers as your host user to avoid root-owned files on bind mounts. # Typical Linux value: `id -u` APP_UID=1000 # Docker defaults: # - inside Compose, service discovery uses `postgres` / `redis` # - host-side tools and tests are normalized to `localhost` automatically by backend/app/config.py # JWT JWT_SECRET_KEY=your-secret-key-here-change-in-production JWT_ALGORITHM=HS256 JWT_ACCESS_TOKEN_EXPIRE_MINUTES=480 # Azure OpenAI AZURE_OPENAI_API_KEY=your-azure-openai-key AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/ AZURE_OPENAI_DEPLOYMENT=gpt-4o AZURE_OPENAI_API_VERSION=2024-02-01 # File Storage UPLOAD_DIR=/app/uploads MAX_UPLOAD_SIZE_MB=500 # Celery worker concurrency (default: 8 parallel CAD jobs per worker container) # Scale horizontally with: docker compose up --scale worker=N CELERY_WORKER_CONCURRENCY=8 # MinIO (S3-compatible object storage for shared uploads) # MinIO is started automatically via docker-compose.yml MINIO_URL=http://minio:9000 MINIO_USER=minioadmin MINIO_PASSWORD=minioadmin MINIO_BUCKET=uploads # MinIO console UI: http://localhost:9001 (user: minioadmin, password: minioadmin) # Blender (render-worker) # Blender >= 5.0.1 must be installed on the host at /opt/blender # The render-worker container mounts it read-only via volumes: - /opt/blender:/opt/blender:ro BLENDER_VERSION=5.0.1 # Set explicitly to `cpu` on hosts without a usable NVIDIA/Cycles device to suppress startup warnings. CYCLES_DEVICE=gpu # Set to host path if Blender is not at /opt/blender: # BLENDER_BIN=/usr/local/blender/blender