Quick Start
Get VersionGate running on a fresh VM (or existing server) in under 3 minutes with Nginx reverse proxying, PM2 systemd boot persistence, and optional automatic Certbot TLS.
Option A: Universal One-Line Host Installer (Recommended)
On a clean VPS (Ubuntu, Debian, RHEL) with nothing installed, run this single command to provision Docker Engine, Nginx reverse proxy, Node 20, Bun, PM2 boot persistence, and start VersionGate:
curl -fsSL https://versiongate.tech/install.sh | sudo bash
Automatic TLS / Custom Domain Setup
If you have a domain pointing to your VM's public IP address, pass the DOMAIN environment variable to provision free Let's Encrypt SSL/TLS certificates automatically via Certbot:
DOMAIN=versiongate.tech curl -fsSL https://versiongate.tech/install.sh | sudo bash
The installer configures Nginx to proxy incoming traffic on ports 80 and 443 to the local VersionGate API and dashboard on 127.0.0.1:9090.
Azure Network Security Group (NSG) Configuration
Azure firewalls traffic at the subscription level using Network Security Groups (NSGs). OS firewall rules (ufw/firewalld) alone will not allow external traffic until Azure NSG inbound rules are created.
If the Azure CLI (az) is installed and authenticated, the installer auto-configures these rules for you. Otherwise, enable ports 80, 443, and 9090 (TCP) in the Azure Portal (VM -> Networking -> Add inbound port rule) or run:
az network nsg rule create \ --resource-group <YOUR_RESOURCE_GROUP> \ --nsg-name <YOUR_NSG_NAME> \ --name Allow-VersionGate-Inbound \ --priority 1010 \ --direction Inbound \ --access Allow \ --protocol Tcp \ --destination-port-ranges 80 443 9090
Option B: Existing Server (Manual Clone)
If you already have Docker and Node/Bun installed on your server and want to launch manually:
git clone https://github.com/dineshkorukonda/VersionGate.git cd VersionGate bun install bun run agent # Audit system prerequisites & copy-paste fix commands bun run dev # Start engine on port 9090 in Setup Mode
Complete In-UI Setup Wizard
Once started, open your browser directly at:
http://<your-vm-ip>/ (or https://<your-domain>/)
Enter your PostgreSQL connection string, JWT secrets, and administrator account details. The Setup Wizard tests your database connection, applies Drizzle ORM schema migrations, writes .env, and launches the full control-plane dashboard.