All three methods use the same background installation job — the only difference is who creates the underlying VPS.
Deploy on DigitalOcean
Requires a configured DigitalOcean API token. See DigitalOcean setup.- Go to Admin → Deployments → DigitalOcean
- Fill in the form:
- Region — geographic location for the droplet
- Size — instance size
- Protocol — OpenVPN or WireGuard
- Server Name — display label shown to users
- Country / City — shown in the user-facing server list
- Click Deploy
Deploy on Vultr
Requires a configured Vultr API key. See Vultr setup.- Go to Admin → Deployments → Vultr
- Fill in the form with region, plan, protocol, and display info
- Click Deploy
Deploy on a custom server
Use this when you already have a VPS — from any provider (AWS, Hetzner, OVH, etc.) or a dedicated server. StartMyVPN connects via SSH and installs the VPN software automatically, exactly the same as for DigitalOcean and Vultr deployments.Requirements for the custom server
- OS: Ubuntu 20.04+ or Debian 10+
- Access: Root or sudo-capable SSH user
- SSH port: Port 22 open (or specify a custom port)
- Clean install: Ideally a fresh VPS with no conflicting VPN software
Steps
- Go to Admin → Servers → Add Server
- Complete the 3-step wizard:
Step 2 — SSH Access
Step 3 — Review & Deploy
Review the summary and click Deploy Server. StartMyVPN will:
- Connect to the server via SSH using the credentials provided
- Automatically install and configure the selected VPN protocol
- Register the server and mark it active
SSH credential security
SSH passwords are encrypted at rest using Laravel’sCrypt facade (AES-256-CBC). They are only decrypted in memory during installation and are never logged or displayed after the server is saved.
Post-deployment steps
After any server is deployed (regardless of method):- Go to Admin → Server Groups and add the new server to a group
- Assign the server group to one or more Plans (Admin → Plans → Edit Plan)
- Users subscribed to those plans will see the server in their dashboard immediately
Monitoring deployment progress
Deployment jobs log progress tostorage/logs/laravel.log. Check queue status:
Google Places API (optional)
The city autocomplete field in the custom server wizard uses Google Places. To enable it:- Obtain a Google Maps API key with the Places API enabled
- Enter it in Admin → Settings → API → Google Maps API Key