Docker

Quick Start

git clone https://github.com/NIKX-Tech/relayly.git
cd relayly
docker compose up --build -d

docker-compose.yml

version: '3.8'
services:
  relayly:
    build: .
    container_name: relayly
    restart: unless-stopped
    ports:
      - "8080:8080"   # Relay WebSocket
      - "8081:8081"   # Admin UI (bind to 127.0.0.1 in production!)
    volumes:
      - ./data:/data
    environment:
      RELAYLY_LOG_LEVEL: info
      RELAYLY_LOG_FORMAT: json

Warning: In production, do not expose port 8081 publicly. Bind admin to 127.0.0.1 and use SSH tunneling or a private network to access it.

Persistent Data

Mount /data as a volume to persist:

  • /data/relayly.db: SQLite database (device registry, pairing codes)
  • /data/server.noise.key: Server Noise Protocol keypair

Back up both files. Losing server.noise.key requires re-pairing all devices.

Admin UI

After starting, visit http://localhost:8081 to access the admin dashboard.

The admin UI auto-refreshes every 5 seconds via HTMX and shows:

  • Live connection count and uptime
  • Full device registry with one-click revocation
  • Pairing code management