Self-hosted home server platform acting as a secure reverse proxy, app manager, and gateway with auth, MFA, SSO, and anti-bot protection.
trailofbits/algo
Ansible scripts that deploy a personal WireGuard and IPsec VPN server to your own cloud account in minutes.
Open-source alternative to:NordVPN
ExpressVPN
Surfshark
- Stars
- 30,434
- Forks
- 2,369
- Open issues
- 84
- Last commit
- 7 days ago
What is it?
Algo VPN is a set of Ansible scripts that set up a personal VPN server on a cloud provider you already use, such as DigitalOcean, Amazon EC2, Vultr, Azure, Google Compute Engine, or Hetzner Cloud. It creates the virtual machine, configures the server, and generates client configuration files, so you run your own endpoint instead of trusting a commercial VPN provider.
The project supports WireGuard for iOS, macOS, Android, Windows, and Linux, and IPsec with IKEv2 for Apple devices and Linux clients. It generates .conf files and QR codes for WireGuard, Apple profiles for built-in IPsec on iOS and macOS, and includes helper commands to add or remove users later. Optional features include a local DNS resolver that blocks ads and SSH users limited to tunneling.
Algo uses Ubuntu 22.04 LTS with automatic security updates and a deliberately narrow set of cipher suites, and it limits logging by default. It does not claim to provide anonymity or censorship avoidance.
Key features
- 01Deploys WireGuard and IPsec (IKEv2) VPN servers to common cloud providers and existing Ubuntu servers
- 02Generates WireGuard .conf files and QR codes for iOS, macOS, Android, and Windows
- 03Creates Apple profiles to configure built-in IPsec on iOS and macOS without extra client software
- 04Includes scripts to add, remove, and update users after deployment
- 05Optional local DNS resolver for blocking ads and SSH users limited to tunneling
- 06Minimal logging with automatic rotation and configurable privacy settings
Use cases
- Running a personal VPN on your own cloud server instead of a commercial VPN service
- Securing traffic on public Wi-Fi from a laptop or phone
- Giving a small group of family members or colleagues separate VPN credentials per device
- Routing traffic through a cloud region of your choice
Quick start
- 1
Get a copy of Algo with git clone
git clone https://github.com/trailofbits/algo.git - 2
Edit config.cfg to list the users you want to create
- 3
Start the deployment from the Algo directory on macOS/Linux
./algo
Things to know
- Requires your own account with a supported cloud provider or an Ubuntu server, which costs money.
- Licensed under AGPL-3.0, a copyleft license that applies to modified network-served versions.
- Windows use requires WSL because Ansible needs a Unix-like environment.
Topics
FAQ
- What is algo?
- Ansible scripts that deploy a personal WireGuard and IPsec VPN server to your own cloud account in minutes. Algo VPN is a set of Ansible scripts that set up a personal VPN server on a cloud provider you already use, such as DigitalOcean, Amazon EC2, Vultr, Azure, Google Compute Engine, or Hetzner Cloud. It creates the virtual machine, configures the server, and generates client configuration files, so you run your own endpoint instead of trusting a commercial VPN provider.
- Is algo free to use? What license does it have?
- algo is open source under the AGPL-3.0 license. Check the license terms before using it in commercial products.
- Is algo still maintained?
- Actively maintained. The last commit to algo was on Oct 14, 2026.
- What can I use algo for?
- Running a personal VPN on your own cloud server instead of a commercial VPN service Securing traffic on public Wi-Fi from a laptop or phone Giving a small group of family members or colleagues separate VPN credentials per device Routing traffic through a cloud region of your choice
- How do I install algo?
- Get a copy of Algo with git clone: git clone https://github.com/trailofbits/algo.git Edit config.cfg to list the users you want to create Start the deployment from the Algo directory on macOS/Linux: ./algo
- Where can I get algo?
- The source code and installation instructions are on GitHub: https://github.com/trailofbits/algo
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Self-hostable-by-design secure remote access platform built on WireGuard, with identity-based policies, device trust and audit logs.
Self-hosted secure remote access platform combining WireGuard VPN, identity management, MFA and network access control.
A curated, categorized list of privacy- and security-focused software and online services, from password managers to operating systems.
An alternative, Rust-based server implementation of the Bitwarden Client API, compatible with official Bitwarden clients for self-hosting.
Open-source tool for securely storing, accessing, and auditing secrets such as API keys, passwords, and certificates, with encryption as a service.