diff --git a/deploy/unraid/UNRAID_GUI_BR0.md b/deploy/unraid/UNRAID_GUI_BR0.md new file mode 100644 index 0000000..0bb8aed --- /dev/null +++ b/deploy/unraid/UNRAID_GUI_BR0.md @@ -0,0 +1,411 @@ +# MemPalace on Unraid — GUI install with `br0` networking + +This walks through installing MemPalace as a single Docker container on +Unraid, using the **dockerMan WebUI** (no compose, no SSH-driven YAML), +attached to **`br0`** so the container has its own IP address on your +LAN — separate from Unraid's IP. + +If you'd rather do an SSH/compose install with TLS + bearer auth via a +Caddy sidecar, see [`README.md`](README.md). This guide is the +GUI-friendly path. + +--- + +## Why `br0`? + +`br0` (macvlan-style bridge to your physical network) gives the +container its **own LAN IP**. That means: + +* No port conflicts with Unraid itself (you can keep `8765`/`8766` + instead of remapping). +* Clients connect to the container directly — `http://:8765/sse` + rather than `http://:8765/sse`. +* The container can be reached by every machine on your LAN without + punching holes in the Unraid host. + +The trade-off, classic macvlan: + +* By default the **Unraid host itself can't talk to the container**. + If you only ever connect from other machines, this is fine. If you + also want to test from Unraid's own shell, enable **Host access to + custom networks** (see Step 1). +* The container is exposed bare to the LAN. Anyone on the LAN can hit + the MCP endpoint — it has no auth in this mode. See "Security + notes" at the bottom. + +--- + +## Prerequisites + +* Unraid 6.12+ with Docker enabled. +* The repo synced to a path on Unraid (e.g. `/mnt/user/system/build/mempalace`). + You can clone over SSH or just copy the folder via SMB. +* `/mnt/user/appdata` available (default on every Unraid). +* A free LAN IP for the container, ideally with a DHCP reservation on + your router so it doesn't drift. + +--- + +## Step 1 — Enable br0 in Unraid + +Skip this if you already use `br0` for other containers. + +1. **Stop the Docker service** so settings are editable: *Settings → + Docker → Enable Docker = No → Apply*. +2. *Settings → Docker → Advanced View*. +3. **Host access to custom networks** = **Enabled**. (Lets the Unraid + shell reach `br0` containers — needed for `curl` health checks + from Unraid itself. Skip if you don't need that.) +4. **Docker custom network type** = **macvlan** (default) or + **ipvlan** if your switch/router doesn't like macvlan MAC churn. +5. Re-enable Docker: *Enable Docker = Yes → Apply*. +6. Confirm `br0` shows up under *Settings → Docker → Docker custom + networks* (or implicitly — every Unraid with a bridge has it). + +--- + +## Step 2 — Build the image on Unraid + +There's no public registry image — the container is built locally from +the repo's root `Dockerfile`. SSH into Unraid (or open the WebUI +terminal) and run: + +```bash +cd /mnt/user/system/build/mempalace # wherever you put the repo +docker build -t mempalace-server:latest . +``` + +First build pulls `python:3.13-slim` and pip-installs `mempalace` + +`mcp-proxy` (~3–5 minutes). When it finishes: + +```bash +docker images mempalace-server +# REPOSITORY TAG IMAGE ID CREATED SIZE +# mempalace-server latest