Hi, sorry it took me a bit to respond. 
First things first, most of the credit goes to this: How I set up Tailscale on my WiFi router
To reproduce my implementation, follow these steps:
-
Install packages
opkg update
opkg install ca-bundle kmod-tun
-
Create file /etc/updater/conf.d/userlist-tailscale.lua
with the contents below. This will avoid the packages above being uninstalled the next time the updater runs.
Install("ca-bundle")
Install("kmod-tun")
-
Enable external storage on Turris. This mounts the SSD under /srv
-
Create directory to hold binaries: mkdir /srv/tailscale
-
Create script below in /srv/tailscale/install-version.sh
:
#!/usr/bin/env bash
set -euo pipefail
install_path=$(dirname "${BASH_SOURCE[0]}")
if [ -z "${1:-}" ]; then
echo "Usage: ${install_path}/install-version.sh VERSION"
exit 1
fi
version=$1
trap "popd >/dev/null" EXIT
pushd "${install_path}" >/dev/null
if $(stat "tailscale_${version}_arm" >/dev/null 2>&1); then
echo "Version ${version} is already installed!"
exit 1
fi
curl -LO "https://pkgs.tailscale.com/stable/tailscale_${version}_arm.tgz"
tar zxvf tailscale_${version}_arm.tgz
rm tailscale_${version}_arm.tgz
stat current >/dev/null 2>&1 && rm current
ln -s tailscale_${version}_arm current
echo -e "\n\n-----> Restarting service...\n\n"
/etc/init.d/tailscale restart
-
Make script executable: chmod +x /srv/tailscale/install-version.sh
-
Install tailscale: /srv/tailscale/install-version.sh VERSION
where VERSION is in the format e.g. 1.24.2
.
-
Test that the binaries are functional: /srv/tailscale/current/tailscale version
-
Create the init script in /srv/tailscale/init-script.sh
(this is exactly the one from the blog post, with paths adjusted):
#!/bin/sh /etc/rc.common
# Copyright 2020 Google LLC.
# SPDX-License-Identifier: Apache-2.0
USE_PROCD=1
START=80
start_service() {
/srv/tailscale/current/tailscaled --cleanup
procd_open_instance
procd_set_param command /srv/tailscale/current/tailscaled
# Set the port to listen on for incoming VPN packets.
# Remote nodes will automatically be informed about the new port number,
# but you might want to configure this in order to set external firewall
# settings.
procd_append_param command --port 41641
# OpenWRT /var is a symlink to /tmp, so write persistent state elsewhere.
procd_append_param command --state /etc/tailscale/tailscaled.state
procd_set_param respawn
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
}
stop_service() {
/srv/tailscale/current/tailscaled --cleanup
killall tailscaled
}
-
Make it executable: chmod +x /srv/tailscale/init-script.sh
-
Symlink and enable the init script:
ln -s /srv/tailscale/init-script.sh /etc/init.d/tailscale
/etc/init.d/tailscale enable
-
Join tailnet: /srv/tailscale/current/tailscale up
At this point your router should be part of the tailnet!
When a new version comes out, just re-run the install-version.sh
script with the new version as an argument, and reboot router.
Let me know how this works for you, or if you work out why a reboot is needed! 
Edit: fixed bug in install-version.sh
Edit 2: Added /etc/updater/conf.d/userlist-tailscale.lua
Edit 3: Updated both scripts so there’s no need to reboot router.