From 2803bc34b701a8d1794d5102263168072412ab02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Padez?= Date: Wed, 12 Aug 2026 19:50:14 +0000 Subject: [PATCH] draft the offscale copy: same protocol, different amount of work MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two things said plainly, because they are the two a reader needs before choosing: Nothing about the protocol changes. offscale is headscale's open-source code speaking to stock Tailscale clients, so a machine on an offscale network behaves exactly as it would on either of the others. Worth stating outright — "our own distribution" reads as a fork, and a fork of a network protocol is something to be wary of. There is no offscale protocol to be locked into, because there is no offscale protocol. What changes is the work. Running headscale yourself is a project: install it, put TLS in front of it, keep it upgraded, administer it through a config file and a CLI. offscale makes that a step in a setup script. "our own sugar on top" is gone. One marker left, in both the menu and the long answer: the goodies are unnamed. Two or three specifics would be worth more than the sentence they replace — every product claims extras, and the claim is only interesting when it says which. Co-Authored-By: Claude Opus 5 (1M context) --- scripts/setup/machine-setup/lib/tailscale.sh | 29 +++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/scripts/setup/machine-setup/lib/tailscale.sh b/scripts/setup/machine-setup/lib/tailscale.sh index 087f5622..53caa5a5 100644 --- a/scripts/setup/machine-setup/lib/tailscale.sh +++ b/scripts/setup/machine-setup/lib/tailscale.sh @@ -62,10 +62,14 @@ tailscale_network_menu() { info "Which network should this machine join?" echo "" echo " [1] set up your own network — offscale" - # TODO(pastilhas): your copy. Enough that somebody who has never heard the name - # knows what they are choosing, without having to type ?. - echo " offscale is just tailscale and headscale, with our own sugar on top." - echo " [ to be written ]" + echo " Your own coordination server, running on this machine. offscale" + echo " changes nothing about how any of it works: it is headscale's" + echo " open-source code, talking to stock Tailscale clients, exactly as" + echo " they already do. Same protocol, same clients, same behaviour." + echo " What it changes is the work — installing it, running it, keeping" + # TODO(pastilhas): name them. "a lot of goodies" is what every product says; + # two or three specifics are worth more than the sentence they replace. + echo " it upgraded — and it brings [ goodies to be listed ] with it." echo "" echo " [2] use a network you already run — headscale or offscale" echo " You already have a coordination server somewhere. Point this" @@ -106,9 +110,20 @@ tailscale_networks_help() { echo " it is now a service you host, and it needs to be reachable." echo "" echo " OFFSCALE" - # TODO(pastilhas): your words. What offscale is, how it relates to headscale, - # and what "set up your own network" actually does for someone choosing 1. - echo " [ to be written ]" + echo " Our own distribution of headscale, which is to say: headscale." + echo " The protocol is untouched and the code underneath is theirs. The" + echo " server speaks the same thing headscale speaks, the clients are the" + echo " stock Tailscale ones, and a machine on an offscale network behaves" + echo " exactly as it would on either of the other two. There is no" + echo " offscale protocol to be locked into, because there is no offscale" + echo " protocol." + echo "" + echo " What differs is everything around it. Running headscale yourself is" + echo " a project: installing it, putting TLS in front of it, keeping it" + echo " upgraded, and administering it through a config file and a CLI." + echo " offscale makes that a step in a setup script instead, and adds" + # TODO(pastilhas): the specifics. + echo " [ goodies to be listed ] on top." echo "" echo " FOR OFFICER" echo " Whichever you pick, the tailnet is what Officer treats as its"