Installation
Docker (recommended)
docker run -d \ --name sozune \ -p 80:80 -p 443:443 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v $(pwd)/config.yaml:/etc/sozune/config.yaml \ ghcr.io/kemeter/sozune:latest
From source
Requirements: stable Rust, Cargo.
git clone https://github.com/kemeter/sozune cd sozune cargo build --release ./target/release/sozune
Running as non-root
The image runs as root by default so it works out of the box: it can bind to ports 80/443 and read /var/run/docker.sock without extra configuration.
If you'd rather run as the unprivileged nonroot user (UID 65532) baked into the distroless base image, override user and grant the necessary capability + group:
services: sozune: image: ghcr.io/kemeter/sozune:latest user: "65532:65532" cap_add: - NET_BIND_SERVICE group_add: - "997" # GID of the `docker` group on the host (varies — check with `getent group docker`) volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./config.yaml:/config.yaml:ro
The group_add value must match your host's docker group GID. Without it, sozune cannot read the Docker socket.
Verify the install
/health is exposed by the REST API, not by the proxy itself. With the API enabled (default port 127.0.0.1:3035):
curl http://127.0.0.1:3035/health
You should get 200 OK. Next: Quick start.