# trailofbits/algo

Set up a personal VPN in the cloud

Repository: https://github.com/trailofbits/algo
Canonical: https://ross.abutalabs.com/products/algo
Homepage: https://blog.trailofbits.com/2016/12/12/meet-algo-the-vpn-that-works/
Language: Python
License: AGPL-3.0
License Family: copyleft
Topics: vpn-server, strongswan, ansible, vpn, ikev2, security, encryption, ipsec, vpn-client, ssh-tunnel, wireguard
Last push: 2026-08-26T21:45:41+00:00

## Health v2 (maintenance only)
Score: 77/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 35, longevity 100
- inputs: {"age_days": 3762, "days_push": 7, "days_rel": 279, "gap_med": 97, "n_releases_24m": 2}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 30365, forks 2366 (observed 2026-08-28T04:11:54.429089+00:00)

## What it is
Algo VPN is a set of Ansible scripts that automates deploying a personal WireGuard and IPsec (IKEv2) VPN server on common cloud providers. It emphasizes secure defaults, modern ciphers only, and easy client configuration with generated profiles and QR codes.

## Use cases
- set up a personal VPN server in the cloud
- deploy a WireGuard VPN on DigitalOcean or AWS
- replace a commercial VPN provider with a self-hosted one
- configure IPsec IKEv2 on iOS and macOS without client software
- generate WireGuard config files and QR codes for my devices
- create an encrypted tunnel when traveling or on public Wi-Fi
- spin up a VPN with strong crypto defaults using Ansible

## When to choose
- you want a personal VPN you fully control instead of trusting a commercial provider
- you need WireGuard or IKEv2 with modern, secure cipher defaults
- you want automated deployment across many cloud providers via Ansible
- you need easy multi-device client setup with generated profiles and QR codes

## When to avoid
- you need anonymity or censorship circumvention, which Algo explicitly does not provide
- you require legacy protocols like OpenVPN, L2TP, or IKEv1
- you want a shared VPN endpoint with many exit locations
- you cannot run deployment scripts from your own machine or Cloud Shell

## Facets
- artifact type: cli-tool
- maturity: active
- function: vpn, security, deployment, cryptography, networking
- domain: security, privacy, self-hosted, networking, cloud-computing
- platform: windows, cloud, self-hosted, python
- tags: wireguard, ipsec, ikev2, strongswan, ansible, personal-vpn, vpn-server, trail-of-bits, linux, macos, android, ios

## Member repositories
- trailofbits/algo (main) score 77

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:11:54.429089+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T16:52:46.644047+00:00, confidence not recorded.
  - readme: https://github.com/trailofbits/algo (fetched 2026-08-28T04:11:54.429089+00:00, sha 99ed160c7ee7)
  - homepage: https://blog.trailofbits.com/2016/12/12/meet-algo-the-vpn-that-works/ (fetched 2026-08-29T07:49:39.117453+00:00, sha e0e69269f6d4)
- Data as of 2026-08-30T08:39:29.467469+00:00.
