two presets, one engine · pre-release
Install.
The shortest path is helm init with a preset flag
and one or two cloud VMs. helm stays on a private
box; every operational instruction to nodes is
mTLS gRPC, helm-initiated.
prerequisites
What you need before you start.
- A private machine to run
helmon — your laptop, a home server, a small private box. It needs outbound internet; it does not need a public IP or open ports. - One or more public VMs to run
buoyon, on any provider.helmdoesn't call cloud APIs; you create the VMs. - SSH access to those VMs from the machine running
helm.helmgenerates its own keypair on first run and prints the public key for you to add. - Go 1.22+ & Make for now, while we're building from source. Released binaries land later.
preset · for one operator
helm init --personal
One operator, one or two nodes, sensible defaults, AmneziaWG by
default, the relay embedded in helm itself.
# 1. build helm on your private machine
git clone https://github.com/PharosVPN/helm
cd helm && make
# 2. first-run setup with the personal preset
./helm init --personal
# 3. create a VM on any cloud provider you like.
# add helm's SSH public key to that VM's authorized_keys:
./helm ssh-key
# 4. enroll the node — helm SSHes in, installs buoy, signs a CSR
./helm nodes add [email protected]
# 5. issue yourself a device profile
./helm users add me
./helm devices enroll me --qr # scan with caravel
# ...or:
./helm devices enroll me --file me.pharos preset · for a fleet
helm init --enterprise
Multi-region, multi-admin, AmneziaWG and XRay both enabled,
remote beacon relays optional, longer audit
retention. The presets only swap defaults — the engine is the
same.
# 1. build helm on a private box (laptop, home server, jump host)
git clone https://github.com/PharosVPN/helm
cd helm && make
# 2. first-run setup with the enterprise preset
./helm init --enterprise
# 3. enroll one or more nodes in each region you care about
./helm ssh-key
./helm nodes add [email protected] --region eu-fra
./helm nodes add [email protected] --region us-east
# 4. (optional) deploy a remote beacon — same SSH enrollment pattern
./helm relays add [email protected]
# 5. add admins; each gets their own device cert from the Device CA
./helm admins add alice
./helm admins add bob
# 6. roll out caravel via your MDM, or by handing out enrollment QR codes
./helm users add team-employee
./helm devices enroll team-employee --qr what happens after init
From here, every instruction is gRPC.
helm holds a long-lived outbound mTLS connection
open to each buoy. Pushes are applied live — adding
a peer doesn't restart the data plane. SSH was a deployment
channel only, used once at enrollment and again for agent
upgrades.
The admin UI is a SvelteKit SPA embedded in the
helm binary, served on localhost. Open
it from the machine that's running the controller.