--- type: project status: reference tags: [infrastructure, docker, unraid, deployment] updated: 2026-05-29 --- # Preferred Deployment Workflow Reference: [[deployment-guide]] (saved to F:\CLAUDE\COWORK\COWORK\deployment-guide.md) ## Pipeline summary ``` Code (Claude Code / Antigravity / VSCode) → git push main to git.alwisp.com → Gitea Actions triggers .gitea/workflows/docker-build.yml → Runner builds & pushes to registry.alwisp.com/{owner}/{repo}:latest → Unraid Docker GUI: add container manually ``` ## Gitea Actions workflow pattern - Runner image: `catthehacker/ubuntu:act-latest` - Registry: `registry.alwisp.com` - Secrets: `REGISTRY_USER`, `REGISTRY_TOKEN` - Tag pattern: `registry.alwisp.com/{owner}/{repo}:latest` - Trigger: push to `main` branch only ## Unraid container standards ### Network - Always **Custom: br0** (not bridge) - Subnet: `10.2.0.0/24` - Each app gets a fixed dedicated IP ### Known fixed IPs | App | IP | Notes | |---|---|---| | adminer | 10.2.0.2:7070 | bridge | | alwisp_db | 10.2.0.7 | | | alwisp_web | 10.2.0.8 | | | breedr | 10.2.0.17 | | | codedump | 10.2.0.34 | | | cpas | 10.2.0.14 | | | email-sigs | 10.2.0.10 | | | fabdash | 10.2.0.13 | | | Gitea | 10.2.0.15 | | | gitea-mcp | 10.2.0.16 | | | Gitea-Runner | 172.17.0.7 | bridge | | inven | 10.2.0.25 | | | invoiceninja-v5 | 10.2.0.2:8000, 10.2.0.2:8444 | bridge | | MariaDB-Official | 10.2.0.2:3306 | bridge | | matter-server | 10.2.0.2 | host network | | memer | 10.2.0.30 | | | mrp | 10.2.0.19 | | | mrp-qrcode | 10.2.0.32 | | | n8n | — | stopped | | NEBULA | 10.2.0.5 | | | NGINX | 10.2.0.3 | | | nyaa | 10.2.0.21 | | | obsidian | 10.2.0.2:3000, 10.2.0.2:3001 | bridge | | OpenClaw | — | br0, IP not shown | | plex | 10.2.0.2 | host network | | postgresql16 | 10.2.0.2:5432 | bridge | | QR.knit | 10.2.0.9 | | | rackmapper | 10.2.0.23 | | | Redis | 10.2.0.2:6379 | bridge | | stepview | 10.2.0.33 | | | syncthing | 10.2.0.2:8384, 10.2.0.2:21027 | bridge | | ui-tracker | 10.2.0.29 | | | UISP | 10.2.0.4 | | | unifi-access-dashboard | 10.2.0.11 | | | wfh | 10.2.0.18 | | ### Volume convention - Host: `/mnt/user/appdata/{app-name}/` - Container: `/app/data`, `/data`, `/app/uploads`, `/app/static`, `/app/secrets` ### Standard env vars `PORT`, `NODE_ENV=production`, `ADMIN_USERNAME`/`ADMIN_USER`, `ADMIN_PASSWORD`/`ADMIN_PASS`, `DB_PATH`, `DATA_DIR`, `PUBLIC_URL`, `CRON_SCHEDULE`, `TZ=America/Chicago`, `STATIC_PATH` ### Defaults - Privileged: OFF - Tailscale: OFF - Console: Shell