Arqut Community Edition
Complete guide for installing and configuring Arqut Community Edition (CE), a self-hosted VPN and networking solution with WebRTC-based peer-to-peer connectivity.
Overview
Arqut Community Edition consists of three main components that work together to provide secure remote access:
1. Arqut Server
Cloud/Central Server
- TURN/STUN services for NAT traversal
- WebRTC signaling for peer discovery
- REST API for credential management
- Automatic TLS via Let's Encrypt
2. Arqut Edge
Edge Device/Gateway
- WireGuard VPN connectivity
- WebRTC P2P connections
- Local network proxy & routing
- Integration with central server
3. Mobile App
iOS & Android
- Works with both cloud and self-hosted
- Configure server hostname
- API key authentication
- Secure tunnel management
Architecture
Server
WebRTC Signal
Edge
Local Net
Clients
iOS / Android
Connection Types
Prerequisites
For Server Installation
- Public server with static IP (VPS, cloud instance, or dedicated server)
- OS: Linux (Ubuntu 20.04+, Debian 11+, CentOS 8+)
- CPU: 1+ cores (2+ recommended)
- RAM: 512MB minimum (2GB+ recommended)
- Domain name with DNS access (for TLS certificates)
- Go 1.24+ (for building from source)
For Edge Installation
- Local server or device (PC, Raspberry Pi, NAS, etc.)
- OS: Ubuntu, Debian, or Raspberry Pi OS
- CPU: 1+ cores
- RAM: 512MB minimum (1GB+ recommended)
- Network: Can reach the internet and local network
Network Requirements
Server (must be publicly accessible):
- • Port
3478UDP/TCP - TURN/STUN - • Port
5349TCP - TURN over TLS - • Port
9000TCP - REST API + WebSocket - • Port
80TCP - HTTP (for Let's Encrypt) - • Port
443TCP - HTTPS (optional) - • Ports
49152-65535UDP - TURN relay ports
Edge (local network):
- • Port
3030TCP - Edge API (configurable) - • WireGuard ports as needed
Installation Steps
Install Arqut Server (Cloud)
The server must be installed first as it generates the API key needed by edge devices.
📖 Follow the detailed guide: Server Setup Guide
Quick summary:
- Build or download the server binary
- Generate API key:
arqut-server apikey generate - Configure domain, email, and network settings
- Set up DNS records pointing to your server
- Configure TLS certificate auto-renewal
- Start the server and verify it's running
Important: Save the generated API key securely - you'll need it for edge installation.
Install Arqut Edge (Local Network)
Once the server is running, install edge devices on your local network.
📖 Follow the detailed guide: Edge Setup Guide
Quick summary:
- Download and install edge binaries
- Configure with server URL and API key from Step 1
- Set up systemd services
- Start the edge service
- Verify connection to cloud server
Connect Mobile App
Configure the mobile app to connect to your self-hosted server.
Configuration steps:
- Download Arqut app from App Store (iOS) or Google Play (Android)
- Login to your account or register
- Open the app and navigate to Profile tab
- Scroll down to "Setup CE Server" section
- Enter your server configuration:
- Server URL (ssl): Your server's API endpoint (e.g.,
https://yourdomain.com:9000/api/v1) - API Key: The key you generated in Step 1 (starts with
arq_)
- Server URL (ssl): Your server's API endpoint (e.g.,
- Tap CONNECT button
- Verify the connection is successful
💡 Tip: Make sure your server is accessible from the internet and has a valid SSL certificate for secure connections.

Environment Variables
Server Environment Variables
| Variable | Description | Default | Required |
|---|---|---|---|
| - | Server uses config.yaml | - | - |
Edge Environment Variables
| Variable | Description | Default | Required |
|---|---|---|---|
| ARQUT_API_KEY | API key from server | - | Yes |
| CLOUD_URL | Server WebSocket URL | - | Yes |
| SERVER_ADDR | Edge API listen address | :3030 | No |
| DB_PATH | Database file path | ./data/edge.db | No |
WSL Users: If you encounter SQLite errors on WSL, use: DB_PATH=/tmp/arqut-edge.db
Troubleshooting
Server won't start:
- • Check logs:
journalctl -u arqut-server -n 50 - • Verify ports aren't in use:
sudo lsof -i :9000 - • Confirm DNS is resolving:
dig turn.yourdomain.com
Edge can't connect:
- • Verify API key is correct
- • Check server URL is reachable:
curl https://yourdomain.com:9000/api/v1/health - • Review edge logs:
journalctl -u arqut-edge -f - • Confirm firewall allows outbound HTTPS
Certificate issues:
- • Verify DNS points to server IP
- • Check port 80 is open (HTTP-01 challenge)
- • Review ACME logs in server output
- • Test with staging CA first
Next Steps
After successful installation:
- Configure clients to connect to your edge device
- Set up monitoring for both server and edge
- Review security settings and harden as needed
- Enable automatic updates for edge devices
- Configure backups for configurations and certificates
Getting Help
Documentation
- • Server Setup: Complete server installation guide
- • Edge Setup: Complete edge installation guide
- • API Reference: See server docs for REST API documentation
Community & Support
- • GitHub Issues: Report bugs and request features
- • Logs: Always check service logs first:
journalctl -u <service-name> -f