Skip to main content

Installation

Requirements

  • OS: Linux (Debian 13+, Ubuntu 24.04+)
  • Kernel: 5.11+ for io_uring, 5.19+ for kTLS
  • Arch: amd64 or arm64

APT Repository (Debian/Ubuntu)

Packages are available for amd64 and arm64.

curl -fsSL https://hyper-derp.dev/repo/key.gpg | \
sudo gpg --dearmor \
-o /usr/share/keyrings/hyper-derp.gpg

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/hyper-derp.gpg] \
https://hyper-derp.dev/repo stable main" | \
sudo tee /etc/apt/sources.list.d/hyper-derp.list

sudo apt update && sudo apt install hyper-derp

Verify:

hyper-derp --version

Build from Source

Dependencies

sudo apt install cmake ninja-build clang \
liburing-dev libsodium-dev libspdlog-dev libssl-dev

See Building for the full dependency table, CMake presets, cross-compilation, and running tests.

Build and Install

git clone \
https://github.com/hyper-derp/Hyper-DERP.git
cd Hyper-DERP
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
sudo cmake --install build

Quick Start

After installing, the minimum to get HD running:

1. Generate TLS Certificates

HD needs a TLS certificate for the DERP protocol. For testing, use a self-signed cert:

sudo mkdir -p /etc/hyper-derp
sudo openssl req -x509 -newkey ec \
-pkeyopt ec_paramgen_curve:prime256v1 \
-keyout /etc/hyper-derp/key.pem \
-out /etc/hyper-derp/cert.pem \
-days 365 -nodes \
-subj "/CN=derp.example.com"

For production, use certificates from Let's Encrypt or your CA.

2. Create a Config File

sudo tee /etc/hyper-derp/config.yaml << 'EOF'
port: 3340
tls_cert: /etc/hyper-derp/cert.pem
tls_key: /etc/hyper-derp/key.pem
log_level: info
EOF

3. Run

hyper-derp -c /etc/hyper-derp/config.yaml

HD will start listening on port 3340 with kTLS enabled (if the kernel supports it). Worker count defaults to the number of available CPUs.

4. Verify

From another machine, check the DERP endpoint:

curl -k https://your-server:3340/derp/probe

A healthy relay responds with ok.

Next Steps