feat: Docker support — multi-arch GHCR images on release

Add CI workflow to build linux/amd64 + linux/arm64 images and push to
ghcr.io/razvandimescu/numa on tag. Fix Dockerfile (missing benches/),
bake container-aware config (API + proxy bind 0.0.0.0), add Docker
section to README.
This commit is contained in:
Razvan Dimescu
2026-04-13 15:48:29 +03:00
parent 7cc110a0a1
commit 3b77dcff61
3 changed files with 70 additions and 0 deletions

View File

@@ -27,6 +27,9 @@ yay -S numa-git
# Windows — download from GitHub Releases
# All platforms
cargo install numa
# Docker
docker run -d --name numa --network host ghcr.io/razvandimescu/numa
```
```bash
@@ -102,6 +105,26 @@ From Machine B: `curl http://api.numa` → proxied to Machine A's port 8000. Ena
**Hub mode**: run one instance with `bind_addr = "0.0.0.0:53"` and point other devices' DNS to it — they get ad blocking + `.numa` resolution without installing anything.
## Docker
```bash
# Recommended — host networking (Linux)
docker run -d --name numa --network host ghcr.io/razvandimescu/numa
# Port mapping (macOS/Windows Docker Desktop)
docker run -d --name numa -p 53:53/udp -p 53:53/tcp -p 5380:5380 ghcr.io/razvandimescu/numa
```
Dashboard at `http://localhost:5380`. The image binds the API and proxy to `0.0.0.0` by default. Override with a custom config:
```bash
docker run -d --name numa --network host \
-v /path/to/numa.toml:/root/.config/numa/numa.toml \
ghcr.io/razvandimescu/numa
```
Multi-arch: `linux/amd64` and `linux/arm64`.
## How It Compares
| | Pi-hole | AdGuard Home | Unbound | Numa |