Files
MobilityOps/deploy/unraid/README.md
T

43 lines
1.7 KiB
Markdown

# 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.
```bash
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. For the one-time n8n owner setup,
forward a local port over SSH to server loopback, open that local URL, then run the
documented workflow import/publish commands from `docs/17-runbook.md` with both Compose
files supplied.
## Operate
```bash
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
```