Infrastructure/docker/omada-controller/README.md

51 lines
2.4 KiB
Markdown

# Omada Software Controller (temporary, on David's desktop)
Runs the self-hosted Omada Software Controller via the community-maintained
[`mbentley/omada-controller`](https://github.com/mbentley/docker-omada-controller)
image, avoiding TP-Link's cloud controller.
This instance is meant to be **temporary**: it runs on David's Linux desktop just
long enough to adopt the ER605 (and later the switch/AP) instead of leaving them
in standalone mode, then gets migrated to the NUC once that's provisioned — see
[../../docs/omada-controller-migration.md](../../docs/omada-controller-migration.md).
The desktop does not need to run 24/7. The ER605 keeps forwarding traffic on its
last-known config even if the controller is offline — you only lose live
management/statistics visibility while it's down.
## Prerequisites
- Docker + Docker Compose installed on the desktop.
- ER605 firmware already updated — see [../../docs/er605-firmware-update.md](../../docs/er605-firmware-update.md). Do this first; it's harder once the device is controller-managed.
- Desktop and ER605 on the same L2 network segment (needed for adoption's broadcast discovery).
## Bring it up
```bash
docker compose up -d
```
Then open `https://<desktop-ip>:8043` and walk through the initial setup wizard
(create the controller admin account, name the site, etc).
## Adopt the ER605
1. In the controller UI, go to the site's **Devices** view — the ER605 should
appear as "Pending" once discovery finds it on the network.
2. Click **Adopt** and enter the router's current admin credentials when
prompted.
3. Wait for adoption to finish and the device to show **Connected**.
## Notes
- Image tag is pinned to a `major.minor` version (currently `6.3`) — check
[Docker Hub tags](https://hub.docker.com/r/mbentley/omada-controller/tags)
before bumping it, and never move backwards to an older version once the
Mongo database has been touched by a newer one.
- `network_mode: host` is used because Omada discovery/adoption depends on a
wide range of UDP/TCP ports and broadcast traffic; bridging those
individually is more fragile than just sharing the host network.
- Controller data lives in the `omada-data` / `omada-logs` named Docker
volumes, not bind mounts — back them up via the controller's own
**Settings → Maintenance → Backup** feature (see the migration guide),
not by copying the volume directly.