Polari
Networking and topology

Which VPN app do I install?

Source
AI-Notes/guides/VPN_APP_KINDS.md in the suite repository. This page is generated from it; edits go there.

Two product lines, one family (isle-vpn). The name says what it does; the engine is only in the description.

  • Isle Link — WireGuard-based. Fast, key-based tunnels between devices and isles: point to point, mesh, and relays that never hold keys.
  • Isle Bridge — OpenVPN-based. Certificate-based joins of whole networks and outside peers: layer-2 spans, hubs with a certificate authority, TCP/443 paths, boxes that only speak OpenVPN.

Rule of thumb: Link when both ends run ours; Bridge when you are joining a network, or something that only speaks OpenVPN.

AppKind idWhat it does
Link Nodevpn-link-nodePuts this device on a Link network with its own address. Nothing behind it is shared.
Link Gatewayvpn-link-gatewayPuts this isle on a Link network and makes .vpn exposure available for its apps.
Link Relayvpn-link-relayPasses encrypted Link traffic between peers that cannot reach each other. Holds no keys, sees nothing. Safe on a rented box. Blind.
Link Hubvpn-link-hubA Link network's centre: admits members, routes between them, can carry other isles' subnets. Sees traffic — own hardware only.
Link Exitvpn-link-exitA Link Hub that also passes members' internet traffic out through its own connection. Off unless you turn it on. Sees traffic.
Bridge Clientvpn-bridge-clientJoins this device or isle to a Bridge server with a certificate. Works over TCP/443 where UDP is blocked.
Bridge Servervpn-bridge-serverA certificate-issuing hub for Bridge clients, with live per-client control and revocation. Sees traffic — own hardware only.
Bridge Spanvpn-bridge-spanStretches one isle's VLAN across sites at layer 2, so two locations behave as one isle. Sees traffic.
Bridge Exitvpn-bridge-exitA Bridge Server that also passes clients' internet traffic out. Off unless you turn it on. Sees traffic.
Bridge Peervpn-bridge-peerConnects an outside box that only speaks OpenVPN (a YunoHost-class server, an existing VPN) as a gateway peer.

Two labels appear on every row and on the isle-mesh matrix: Blind (holds no keys, cannot read traffic — only Link Relay) and Sees traffic (every hub, server, span, exit and routing relay).

Rules that hold for every kind: the app is configured from the isle side only (never over the tunnel or from outside the isle); private keys and certificates are made on the device and never leave it; nothing forwards or exits unless its knob is on; every exposure is a ledger row the isle pushes to Polari.

Where each kind runs, and at which level (2026-09-09)

Three placements, one rule each (vpn.custom.vpn_placement):

  • kvm — its own guest (isle vm define/start). Every kind that sees traffic and holds authority: hub, server, exit. Own failure domain, own bridge, WAN masquerade, keys and CA on its own disk.
  • openwrt-extension — packages on the isle's router guest (isle vm extend isle-router --with <kind>). Every kind that carries the isle's own subnet or VLAN: gateway, span. The subnet, DHCP, DNS and firewall live on the router, so the tunnel does too.
  • container — an isle-app container on any member device (isle vpn install <kind>). Endpoints, clients, peers and the blind relay: no subnet, no one else's keys, fine on rented hardware.
KindPlacementTierislearchipelago (.arch)mesh (.mesh)
Link Nodecontainermembermember endpointroaming member of a federated network
Link Gatewayopenwrt-extensioncorethe isle's gateway; makes .vpnfederation endpoint (blind relay by default)
Link Relaycontainermemberreach-through behind NATthe default federation relay (blind)zero-trust relay body
Link Hubkvm (OpenWrt)hardwarehousehold membership authorityrouting hub, sees traffic, own hardware
Link Exitkvm (OpenWrt)hardwaremembers' exit (knob)federated members' exit (knob)opt-in consumer exit (knob)
Bridge Clientcontainermemberjoins a Bridge serverTCP/443 path into a hubconsumer path where UDP is blocked
Bridge Serverkvm (Debian)hardwarex509 hub, CA + CRLx509 hub for federation joinsTCP/443 rendezvous, sees traffic
Bridge Spanopenwrt-extensioncoreone isle across two sites (L2)L2 span between member isles
Bridge Exitkvm (Debian)hardwareclients' exit (knob)federated clients' exit (knob)opt-in consumer exit (knob)
Bridge Peercontainermemberan OpenVPN-only box as a gateway peeran outside network as a member

The mesh level never gets a membership authority — only relay bodies, rendezvous and opt-in exits. Read it live: pol vpn placements, pol vpn topology isle|archipelago|mesh, /api/vpn/placements, /api/vpn/topology/<level>; pages /display/topology-isle, /display/topology-archipelago, /display/topology-mesh.

← All documentation