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=$(dpkg --print-architecture) 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 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​