Installation¶
Relay is distributed as a container image and as a standalone server binary. Current packages and the stable version are listed on the Relay Download page; use a versioned image tag for reproducible deployments.
Docker¶
The examples use the published 0.11.5 image tag. Update the tag deliberately
when a newer stable release is available. The 0.11 tag has no published
manifest. The latest tag follows master and may contain unreleased changes.
Relay stores its data in /var/opt/relay and runs as UID 1000 in the container.
mkdir -p data
sudo chown -R 1000:1000 data
docker pull git.thc420.dev/ouch/relay:0.11.5
docker run -d \
--name relay \
-p 9000:9000 \
-v "$PWD/data:/var/opt/relay" \
--restart unless-stopped \
git.thc420.dev/ouch/relay:0.11.5
The ownership command assumes a rootful Docker installation with direct UID mapping. For rootless or user-namespaced Docker, provision the bind mount for the container's effective UID, use an ACL, or choose a named volume.
For an existing installation, set RELAY_HOME explicitly and mount that directory. Standalone fallback checks for legacy config.yaml; the audited container entrypoint still checks legacy config.js. Do not rely on automatic detection to migrate data. Convert legacy JavaScript configuration using migrate-config, then review the YAML before starting.
Docker Compose¶
Create docker-compose.yml:
services:
relay:
image: ${RELAY_IMAGE:-git.thc420.dev/ouch/relay:0.11.5}
container_name: relay
ports:
- "9000:9000"
volumes:
- ./data:/var/opt/relay
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1:9000/"]
interval: 30s
timeout: 5s
retries: 3
start_period: 15s
Then validate and start it:
mkdir -p data
docker compose config
docker compose up -d
To use another release, set RELAY_IMAGE to the complete image and version before starting Compose.
Named volume alternative¶
Replace the bind mount with relay-data:/var/opt/relay and add:
volumes:
relay-data:
Switching mount types does not copy data. Back up and migrate it explicitly, and avoid docker compose down -v unless you intend to delete the named volume.
Linux server archive¶
For Linux x86-64 without Docker, the
0.11.5 server archive
includes the binary and production client assets. Extract it, enter
relay-linux-amd64, and run ./relay start. Keep public/ beside the binary
and run from that directory, including when configuring a service.
Verify the server¶
For a container, follow its logs until Relay is ready:
docker logs -f relay
For the Linux archive, watch the ./relay start terminal output instead.
Open http://localhost:9000 locally, or put Relay behind an HTTPS reverse proxy before exposing it publicly. Continue with First administrator.
For PostgreSQL and retention, see Storage and retention. To compile Relay yourself, see Development.
Follow Backup, restore, and upgrades for subsequent releases.