yVPN exit node control v0.3.0

Sign in

There is no account here. You "sign in" by supplying the API credentials this app acts with — they stay in your browser and are sent only to DigitalOcean and, via this site's Tailscale relay, to Tailscale.

First time? Build this from your two tokens

Paste each token and the Credentials field fills itself. Sign in, and your password manager will offer to save the combined value as the password.

Where do these go? Your DigitalOcean token goes straight to DigitalOcean. Tailscale's API can't be called from a web page, so your Tailscale key goes through a small relay on this same site, which passes it to Tailscale and stores nothing.

First time here? — what the tokens are, where to get them, and how to use a node once it is up.

New exit node

Pick a datacenter. A droplet is provisioned there, joins your tailnet with a single-use ephemeral key, and is enabled as an exit node.

Getting started

Read as far down as you need. The first paragraph is the whole thing.

yVPN runs your own VPN exit nodes. You need two API tokens — a DigitalOcean personal access token with read and write scope, and a Tailscale API access token. Paste both into Credentials, press New exit node, pick a datacenter, and about a minute later it appears in your Tailscale app as an exit node you can select. Delete it when you are done; you pay for the hours it existed.

Getting the two tokens

  • DigitalOcean — control panel → APITokensGenerate New Token, with read and write scope. It starts with dop_v1_. This is what creates and destroys droplets, so it spends money.
  • Tailscale — admin console → SettingsKeysGenerate access token. It starts with tskey-api-. This is what lets a new node join your tailnet and be approved as an exit node.

Paste them into Credentials as one line, separated by a space, in either order. Your password manager then stores both as one ordinary login. Nothing is sent anywhere except DigitalOcean and Tailscale, and nothing is stored on this site.

What happens when you create a node

  1. A single-use, ephemeral Tailscale auth key is issued.
  2. A $6/month droplet is provisioned in the datacenter you picked. It installs Tailscale on first boot and joins your tailnet with that key.
  3. Its exit routes are approved automatically, and the auth key is revoked.

If any step fails, the droplet and the key are deleted again, so a failed attempt leaves nothing behind. The node is ephemeral, so deleting the droplet also removes the machine from your tailnet on its own.

Using the exit node on your devices

Install Tailscale on any device you want protected and sign in to the same account, then select the node. Every device sees the same exit nodes.

  • iPhone / iPad — install Tailscale from the App Store, sign in, then tap the three-dot menu → Exit Node → pick your node.
  • Android — install from Google Play, sign in, then the three-dot menu → Exit Node.
  • macOS / Windows — install from tailscale.com/download, sign in, then the menu bar or tray icon → Exit Node.
  • Linuxcurl -fsSL https://tailscale.com/install.sh | sh, then sudo tailscale up --exit-node=<node name>.

To stop using it, choose None in the same menu, or on Linux sudo tailscale up --exit-node=. Your traffic then leaves your device normally again.

What it costs, and cleaning up

A node costs about $0.009 per hour ($6/month if you leave it up), billed by the second with a one cent minimum. The Cost so far column is what each node has run up, and Spent so far totals the nodes you still have. Deleting a node stops its billing immediately, and it drops out of that total.

When something looks wrong

  • Stuck on "joining tailnet" — the node is still booting. It normally takes under two minutes; if it never appears, delete it and create another.
  • "DigitalOcean rejected that token" — the token is wrong, expired, or lacks write scope.
  • "Tailscale relay unreachable" — droplet data still loads, but the tailnet columns stay blank. Usually a network problem between you and this site.
  • "route not approved" — the node joined but its exit routes were not approved. Approve it in the Tailscale admin console under Machines, or delete the node and create another.

Delete exit node

The droplet is destroyed immediately and billing stops. The matching machine stays in your tailnet until Tailscale reaps it — ephemeral nodes disappear on their own.

Keyboard shortcuts

n
New exit node
d
Delete selected node
r
Refresh
j k / ↓ ↑
Move selection
?
This panel
Esc
Close

Mirrors the yvpn tui keymap.