2.7 KiB
2.7 KiB
Docker Deployment Guide (Unraid)
Top | Architecture | Tools & IPC
Overview
This guide covers deploying Manual Slop on Unraid (or any Docker host) using the containerized image. The deployment provides:
- A web-accessible ImGui GUI (browser-based, no local display required)
- The Hook API on
:8999for agent access - Persistent volumes for projects and app state
Prerequisites
- Unraid 6.10+ (or any Docker host with compose support)
- A project share mounted at
/mnt/user/projects(or editdocker-compose.ymlto match your path) - API keys for the providers you want to use
Building the Image
From the repo root:
docker build -t manual_slop:latest .
Or use the helper:
./scripts/docker_build.sh
Running the Container
Edit docker-compose.yml to set your volume paths and provider keys (via .env file or environment).
# Create a .env file with your API keys
cat > .env <<EOF
GEMINI_API_KEY=your-key-here
ANTHROPIC_API_KEY=your-key-here
DEEPSEEK_API_KEY=your-key-here
MINIMAX_API_KEY=your-key-here
EOF
# Start the container
docker compose up -d
Accessing the GUI
Open a browser and navigate to:
http://<your-unraid-ip>:8080for the web clienthttp://<your-unraid-ip>:8999/statusfor the hook API health check
The web client renders the ImGui panels via WebGL. The Hello ImGui web backend streams frame deltas over WebSocket.
Agent Access
Agents interact with the running container via the Hook API on :8999. Examples:
# Check status
curl http://<your-unraid-ip>:8999/status
# Get MMA state
curl http://<your-unraid-ip>:8999/api/gui/mma_status
See guide_tools.md for the full Hook API reference.
Volumes
/projects— Mounted from/mnt/user/projectsby default. Your project workspaces live here. Themanual_slop.tomlper project is in this directory./config— Mounted from/mnt/user/appdata/manual_slopby default. App state: presets, personas, log directory, workspace profiles.
Updating
git pull
docker build -t manual_slop:latest .
docker compose up -d
Backup
Back up /config to preserve presets, personas, and workspace profiles. Back up /projects/<project>/conductor/ to preserve track history.
Troubleshooting
- Port conflicts: Edit
docker-compose.ymlto change the host port (e.g.,"18080:8080"to use 18080 on the host). - Permission errors: Ensure the Unraid share has write permissions for the container's UID.
- Hook API not responding: Check
docker logs manual_slopfor the startup output. The hook server should log "HookServer started on :8999".