MindBotz-branded RunPod/docker workstation fork of edenaion/EZ-CorridorKey, the desktop/noVNC GUI wrapper for CorridorKey.
This fork keeps the upstream GUI and Docker/noVNC workflow, then adds a small workstation control layer for remote/cloud use:
- Browser GUI via noVNC on port
6080 - File upload/browser UI on port
6081 - MindBotz HTTP API on port
8080 - MindBotz MCP-style JSON-RPC endpoint on port
8765 - stdio MCP module for local agent integration
- RunPod-focused compose/template notes
- persistent volumes for clips, outputs, models, projects, config, and logs
This repo is derived from edenaion/EZ-CorridorKey and keeps upstream attribution. Upstream license is CC BY-NC-SA 4.0. Treat this fork as non-commercial unless/until licensing is reviewed and permission is obtained for any commercial deployment.
cd docker
MINDBOTZ_WORKSTATION_PASSWORD='change-me' \
MINDBOTZ_API_TOKEN='optional-api-token' \
docker compose -f docker-compose.runpod.yml up -d --buildOpen:
| Service | URL | Notes |
|---|---|---|
| GUI/noVNC | http://localhost:6080 |
password = MINDBOTZ_WORKSTATION_PASSWORD |
| Upload UI | http://localhost:6081 |
user admin, password = MINDBOTZ_WORKSTATION_PASSWORD |
| API health | http://localhost:8080/health |
bearer auth only if MINDBOTZ_API_TOKEN is set |
| MCP HTTP | http://localhost:8765 |
JSON-RPC endpoint for initialize, tools/list, tools/call |
| Raw VNC | localhost:5900 |
optional; avoid exposing publicly |
Best practical path:
-
Build and push this image to a registry you control:
docker build -f docker/Dockerfile -t your-dockerhub/mindbotz-corridorkey-runpod:latest . docker push your-dockerhub/mindbotz-corridorkey-runpod:latest -
Create a RunPod template using that image.
-
Expose HTTP ports:
6080for noVNC GUI6081for file browser8080for API8765for MCP HTTP JSON-RPC
-
Optional TCP port:
5900raw VNC, only if you know you need it
-
Recommended env vars:
MINDBOTZ_WORKSTATION_PASSWORD=change-this MINDBOTZ_API_TOKEN=optional-long-random-token CORRIDORKEY_RESOLUTION=1920x1080x24 CORRIDORKEY_INSTALL_SAM2=y CORRIDORKEY_PREDOWNLOAD_SAM2=n CORRIDORKEY_INSTALL_GVM=n CORRIDORKEY_INSTALL_VIDEOMAMA=n MINDBOTZ_API_ENABLE_COMMANDS=0
-
Mount a RunPod network volume to
/opt/corridorkeyif you want models/projects/uploads to persist across pod rebuilds.
curl http://localhost:8080/health
curl http://localhost:8080/status
curl http://localhost:8080/inputs
curl http://localhost:8080/outputs
curl http://localhost:8080/jobsIf MINDBOTZ_API_TOKEN is set:
curl -H "Authorization: Bearer $MINDBOTZ_API_TOKEN" http://localhost:8080/healthRecord a job note:
curl -X POST http://localhost:8080/jobs \
-H 'Content-Type: application/json' \
-d '{"kind":"inference-note","clip":"example.mov","notes":"prepare for CorridorKey GUI run"}'By default jobs are recorded but heavy commands are not executed. To permit command jobs, set MINDBOTZ_API_ENABLE_COMMANDS=1 and send a command field. Keep that disabled on public pods.
HTTP JSON-RPC:
curl -X POST http://localhost:8765 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
curl -X POST http://localhost:8765 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"health","arguments":{}}}'stdio MCP mode:
python -m mindbotz.mcp_server --transport stdioAvailable tools:
healthstatuslist_inputslist_outputslist_jobscreate_job
See docs/mindbotz/MODIFICATIONS.md.
- Change
MINDBOTZ_WORKSTATION_PASSWORDbefore exposing any endpoint. - Set
MINDBOTZ_API_TOKENif API endpoints are reachable by anyone except you. - Keep
MINDBOTZ_API_ENABLE_COMMANDS=0unless you explicitly need remote command execution. - Raw VNC (
5900) should generally stay private; use noVNC through RunPod's HTTP proxy instead.
The original upstream README is preserved as README_UPSTREAM.md.