feat: initialize managed portal

This commit is contained in:
Yoilun
2026-04-27 10:04:36 +08:00
commit d4e351df71
145 changed files with 13425 additions and 0 deletions

59
docs/rollout-10.8.0.14.md Normal file
View File

@@ -0,0 +1,59 @@
# `10.8.0.14` Rollout Notes
## Goal
Deploy the standalone `managed-portal` project to `10.8.0.14` and expose it on port `13000` without changing the existing `3000` stack.
## Expected Target Layout
- project root: to be finalized after local verification
- backend container: `managed-portal`
- frontend container: `managed-portal-web`
- public entry: `http://10.8.0.14:13000/`
## Preconditions
- Docker daemon is running on `10.8.0.14`
- child service runtime weights have been placed under `managed/*/weights`
- the host can access the target LAN segments used by web-device scanning
- `/var/run/docker.sock` is available to the backend container
## Planned Steps
1. Copy the local `managed-portal` repo to `10.8.0.14`
2. Review and adjust `managed_services.yaml` for the remote host
3. Review `deploy/managed-portal.env`
4. Build:
```bash
docker build -t managed-portal:dev .
docker build -t managed-portal-web:dev -f web/Dockerfile ./web
```
5. Start:
```bash
cd deploy
docker compose --env-file managed-portal.env up -d --build
```
6. Verify:
- `http://10.8.0.14:13000/` opens
- managed-services list works
- managed-services detail works
- RTSP update works
- restart works
- web-device scan works
- existing `3000` stack remains available
## Rollback
If the new portal misbehaves, stop only the new stack:
```bash
cd deploy
docker compose --env-file managed-portal.env down
```
This rollback must leave the existing `3000` stack untouched.