Skip to content

Installation

This guide covers installing RevenProx on your system.

Prerequisites

Before installing RevenProx, ensure you have:

  • Linux operating system (Ubuntu 20.04+, Debian 11+, or similar)
  • libnng-dev library installed
  • At least 512MB RAM (1GB+ recommended for production)

Installing Dependencies

Ubuntu/Debian

sudo apt update
sudo apt install -y libnng-dev build-essential

Fedora/RHEL

sudo dnf install -y nng-devel gcc

Arch Linux

sudo pacman -S nng base-devel

Building from Source

Install Zig

RevenProx requires Zig 0.15 or later:

# Download Zig
wget https://ziglang.org/download/0.15.2/zig-linux-x86_64-0.15.2.tar.xz
tar xf zig-linux-x86_64-0.15.2.tar.xz
sudo mv zig-linux-x86_64-0.15.2 /opt/zig

# Add to PATH
echo 'export PATH=$PATH:/opt/zig' >> ~/.bashrc
source ~/.bashrc

Clone and Build

# Clone the repository
git clone https://github.com/dotcommoners/revenprox.git
cd revenprox

# Build release binary
zig build -Doptimize=ReleaseFast

# Binary is at zig-out/bin/sse-proxy
./zig-out/bin/sse-proxy --help

Running Tests

# Run unit tests
zig build test

# Run extended tests
zig build test -Dext_tests=true

Pre-built Binaries

Pre-built binaries are available for Linux x86_64:

# Download latest release
curl -LO https://github.com/dotcommoners/revenprox/releases/latest/download/sse-proxy-linux-x86_64.tar.gz

# Extract
tar xzf sse-proxy-linux-x86_64.tar.gz

# Make executable
chmod +x sse-proxy

# Verify installation
./sse-proxy --version

Docker Installation

# Pull the image
docker pull revenprox/sse-proxy:latest

# Run with default config
docker run -p 8080:8080 revenprox/sse-proxy:latest

# Run with custom config
docker run -p 8080:8080 \
  -v $(pwd)/config:/config \
  revenprox/sse-proxy:latest \
  --config /config/proxy.toml

Verifying Installation

After installation, verify the proxy starts correctly:

# Create a minimal config
cat > /tmp/test-config.toml << 'EOF'
[http]
bind_address = "127.0.0.1:8080"

[jwt_verifier]
webhook_url = "http://localhost:9999/verify"
require_authentication = false

[limits]
max_cpu_percent = 80
EOF

# Start the proxy
./sse-proxy --config /tmp/test-config.toml

# In another terminal, test the connection
curl -v http://localhost:8080/health

Next Steps