Files
MobilityOps/deploy/unraid/README.md
T

2.1 KiB

Unraid deployment

MobilityOps is deployed from a committed source archive; the server does not need Gitea credentials. The portable compose.yaml is combined with compose.unraid.yaml so that only the web application is reachable from the LAN.

Server layout

  • Directory: /mnt/user/appdata/mobilityops
  • Compose project: mobilityops
  • Web: http://192.168.10.150:1236 (1236 on the host to 80 in web)
  • API and PostgreSQL: Compose network only
  • n8n editor: server loopback 127.0.0.1:15678 only; use an SSH tunnel for setup

Deploy

Create .env from .env.example, replace every placeholder secret, set MOBILITYOPS_ENV=production, set both public URLs to http://192.168.10.150:1236, and retain KNOWLEDGE_PROVIDER=demo while RAGcore is not available. Keep MCP_HUB_REGISTRATION_ENABLED=false until the central Hub is ready.

cd /mnt/user/appdata/mobilityops
./deploy/unraid/configure-env.sh http://192.168.10.150:1236
docker compose -p mobilityops -f compose.yaml -f compose.unraid.yaml up --build -d
docker compose -p mobilityops -f compose.yaml -f compose.unraid.yaml exec api \
  python -m app.cli seed --reset

Migrations run automatically in the API entrypoint. Complete the one-time n8n owner setup without exposing its editor to the LAN, then import and publish the workflow:

./deploy/unraid/setup-n8n.sh http://127.0.0.1:15678
docker compose -p mobilityops -f compose.yaml -f compose.unraid.yaml exec n8n \
  n8n import:workflow --input=//imports/mobilityops-return-processing.json
docker compose -p mobilityops -f compose.yaml -f compose.unraid.yaml exec n8n \
  n8n publish:workflow --id=mobilityops-return-processing
docker compose -p mobilityops -f compose.yaml -f compose.unraid.yaml restart n8n

The generated n8n owner credentials remain only in the mode-0600 server .env.

Operate

cd /mnt/user/appdata/mobilityops
docker compose -p mobilityops -f compose.yaml -f compose.unraid.yaml ps
docker compose -p mobilityops -f compose.yaml -f compose.unraid.yaml logs --tail=200
docker compose -p mobilityops -f compose.yaml -f compose.unraid.yaml exec api alembic current