Installation¶
R-VPN binaries are available for multiple platforms. Choose the installation method that best fits your needs.
Supported Platforms¶
| Platform | Architectures | Binary Variants |
|---|---|---|
| macOS | x86_64, arm64 | Universal binary available |
| Linux | x86_64, aarch64, armv7 | GNU (glibc) and static (musl) |
| FreeBSD | x86_64 | Experimental support |
Binary Naming Convention¶
Binaries in the dist/ folder follow this naming pattern:
- rvpn-{platform}-{arch} - Client binary
- rvpn-server-{platform}-{arch} - Server binary
- -static suffix for musl-linked binaries (no external libc dependency)
Examples:
- rvpn-macos-universal - macOS universal client
- rvpn-x86_64-linux-gnu - Linux x86_64 with glibc
- rvpn-aarch64-linux-static - Linux ARM64 static binary
- rvpn-server-x86_64-freebsd - FreeBSD server binary
Downloading Binaries¶
Pre-built binaries are available in the dist/ directory of the repository.
Quick Download¶
# macOS (Universal - works on both Intel and Apple Silicon)
cp dist/rvpn-macos-universal /usr/local/bin/rvpn
cp dist/rvpn-server-macos-universal /usr/local/bin/rvpn-server
chmod +x /usr/local/bin/rvpn /usr/local/bin/rvpn-server
# Linux x86_64 (GNU variant)
sudo cp dist/rvpn-x86_64-linux-gnu /usr/local/bin/rvpn
sudo cp dist/rvpn-server-x86_64-linux-gnu /usr/local/bin/rvpn-server
sudo chmod +x /usr/local/bin/rvpn /usr/local/bin/rvpn-server
# Linux x86_64 (Static/musl variant - for minimal systems)
sudo cp dist/rvpn-x86_64-linux-static /usr/local/bin/rvpn
sudo cp dist/rvpn-server-x86_64-linux-static /usr/local/bin/rvpn-server
sudo chmod +x /usr/local/bin/rvpn /usr/local/bin/rvpn-server
Verifying Downloads¶
All binaries include SHA256 checksums for verification:
# Verify using the checksums file
cd dist
sha256sum -c SHA256SUMS.txt
# Or verify individual binary
cat rvpn-macos-universal.sha256
sha256sum rvpn-macos-universal
Installation Locations¶
System-wide Installation (Recommended)¶
# Client
sudo cp rvpn /usr/local/bin/rvpn
sudo chown root:root /usr/local/bin/rvpn
sudo chmod 755 /usr/local/bin/rvpn
# Server
sudo cp rvpn-server /usr/local/bin/rvpn-server
sudo chown root:root /usr/local/bin/rvpn-server
sudo chmod 755 /usr/local/bin/rvpn-server
User-local Installation¶
mkdir -p ~/bin
cp rvpn ~/bin/
export PATH="$HOME/bin:$PATH"
# Add to your shell profile for persistence
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc # or ~/.zshrc on macOS
Configuration Directories¶
Create the required configuration directories:
# Client configuration
mkdir -p ~/.config/rvpn
# Server configuration (requires root)
sudo mkdir -p /etc/rvpn
sudo mkdir -p /var/lib/rvpn
sudo mkdir -p /var/log/rvpn
Configuration File Locations¶
| Component | Config Directory | Notes |
|---|---|---|
| Client | ~/.config/rvpn/ |
User-specific settings |
| Server | /etc/rvpn/ |
System-wide server config |
| Server Data | /var/lib/rvpn/ |
Runtime data, keys |
| Logs | /var/log/rvpn/ |
Server logs |
Systemd Service Installation (Linux)¶
For production deployments on Linux, use the systemd service installer:
cd rvpn/
# Server service installation
sudo ./deploy/install.sh
# Or manually copy and enable the service
sudo cp deploy/systemd/rvpn-server.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable rvpn-server
sudo systemctl start rvpn-server
Check service status:
Build from Source¶
If you prefer to build from source, you'll need Rust installed:
Prerequisites¶
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
Building¶
# Clone the repository
cd rvpn/
# Build release binaries
cargo build --release
# Binaries will be at:
# target/release/rvpn
# target/release/rvpn-server
Cross-compilation (Advanced)¶
For building for multiple platforms, use the provided build script:
cd rvpn/
# Build all targets (requires cargo-zigbuild)
./scripts/build-release.sh
# Build specific targets
./scripts/build-release.sh --macos-only
./scripts/build-release.sh --linux-only
./scripts/build-release.sh x86_64-unknown-linux-musl
Requirements for cross-compilation:
- cargo-zigbuild: cargo install cargo-zigbuild
- zig: brew install zig (on macOS)
Next Steps¶
- Quick Start - Get started with R-VPN
- Client Configuration - Configure the client
- Server Setup - Set up a server
- Split Tunneling - Configure routing rules