mirror of
https://github.com/tailscale-dev/deck-tailscale.git
synced 2025-10-22 07:28:14 +00:00
65 lines
2.8 KiB
Markdown
65 lines
2.8 KiB
Markdown
# Tailscale on the Steam Deck
|
|
|
|
This process is derived from the [official guide][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.
|
|
|
|
## Installing Tailscale
|
|
|
|
1. Clone this repo to your Deck.
|
|
2. Run `sudo bash tailscale.sh` to install Tailscale (or update the existing
|
|
installation).
|
|
3. Run `sudo tailscale up --qr --operator=deck --ssh` to have Tailscale generate
|
|
a login QR code. Scan the code with your phone and authenticate with
|
|
Tailscale to bring your Deck onto your network.
|
|
|
|
### Changing the root filesystem after installing Tailscale
|
|
This method for installing Tailscale uses [`systemd` system extensions](https://man.archlinux.org/man/systemd-sysext.8.en)
|
|
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](https://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge/)
|
|
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:
|
|
|
|
```bash
|
|
$ systemd-sysext unmerge
|
|
$ steamos-readonly disable
|
|
[ make your changes to the rootfs now ]
|
|
$ steamos-readonly enable
|
|
$ systemd-sysext merge
|
|
```
|
|
|
|
|
|
## Updating Tailscale
|
|
|
|
⚠️ This process will most likely fail if you are accessing the terminal over
|
|
Tailscale SSH, as it seems to be locked in a chroot jail. You should start and
|
|
connect through the standard SSH server instead, but remember to stop it when
|
|
you're done.
|
|
[Suggestions for how to fix this are welcomed.](https://github.com/legowerewolf/deck-tailscale/issues/2)
|
|
|
|
1. Git fetch and pull to make sure you're up to date.
|
|
2. Run `sudo bash tailscale.sh` again.
|
|
|
|
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.
|
|
|
|
## How it works
|
|
|
|
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.
|
|
|
|
[official-guide]: https://tailscale.com/blog/steam-deck/
|