This process is derived from the official guide, but has been tweaked to make the process smoother and produce an installation that comes up automatically on boot (no need to enter desktop mode) and survives system updates.
- Clone this repo to your Deck.
- Run
sudo bash tailscale.shto install Tailscale (or update the existing installation). - Run
sudo tailscale up --qr --operator=deck --sshto have Tailscale generate a login QR code. Scan the code with your phone and authenticate with Tailscale to bring your Deck onto your network.
This method for installing Tailscale uses systemd system extensions
to install files in the otherwise read-only Steam Deck filesystem. A
side-effect is that the /usr and /opt directories
(and directories like /bin, /lib, /lib64, /mnt, and /sbin,
that typically link to /usr due to /usr merge
which SteamOS implements) are read-only while system extensions are active,
even after running steamos-readonly disable.
If you need to modify files in these directories after installing Tailscale, run the following commands:
$ systemd-sysext unmerge
$ steamos-readonly disable
[ make your changes to the rootfs now ]
$ steamos-readonly enable
$ systemd-sysext merge- Git fetch and pull to make sure you're up to date.
- Run
sudo bash tailscale.shagain.
This process overwrites the existing binaries and service file, so it's not
recommended to tweak those files directly. The configuration files at
/etc/default/tailscaled and
/etc/systemd/system/tailscaled.service.d/override.conf are left alone, so feel
free to edit those. If something goes wrong, copy those files somewhere else and
re-run the install script to get back to a working state.
It uses the same system extension method as the official guide, but we put the
tailscaled.service file directly in /etc/systemd/system/ because it's
actually safe to put things there. Changes in /etc/ are preserved in
/var/lib/overlays/etc/upper/ via an overlayfs, meaning that they survive
updates.