I've been on a Tailscale kick lately, putting it on devices, containers, and really anywhere I can find that will let me install it. I've even self-hosted the control server with Headscale and know full well the utility of software-defined networking for keeping my data safe and accessible.
I also love reading books, but hate carrying them around, so the Amazon Kindle has been one of my favorite devices since forever. I don't love how the Kindle handles my data, and it can be a bit of a pain to set up Calibre to serve your own e-books to the E-Ink slate that started it off.
What was needed was to mesh the two together, so that my Calibre library and Kindle are now on the same tailnet, and then they're reachable from wherever I am. It wasn't that tricky to do, either, because other people who are significantly better at coding have already done all the hard work, and now I have a private-networked Kindle that can still use the Amazon storefront. Plus, it's fun putting Tailscale on things it wasn't intended for.
Okay, but why put Tailscale on a Kindle?
Everything's better when it's on your tailnet
I use Tailscale for everything I can think of, and I'm always discovering new ways to leverage it that I'd never have thought of. Yes, it makes it easy to put your own devices on a private network that works across networks or the internet, but have you thought about the implications of that?
Your home network is no longer constrained by the hardware it runs on, or indeed, constrained by the hardware inside your home. It's the easiest way to add SSL certifications to your self-hosted apps, enabling subnet routing for legacy hardware that can't run the app, turns any of your nodes into a VPN exit node, and giving you an easy-to-remember IP address for each device that's connected to it.
On a Kindle, you get a persistent IP address on your tailnet, easy SSH access (because everywhere is your home network), Taildrop for sending files to your device, and the ability to pull books from Calibre or other ebook web library hosting software.
The more I use Tailscale, the more I love it
One of the more annoying things about e-readers is getting your own books, documents, and other reading materials onto them. Sure, you can use various ways to send to Kindle, but Amazon scans everything, and not every file will make it. Connecting via USB is tedious and requires you to remember at the time, but if you're on the same tailnet, you can send files as if you're connected to a local network share. It's fantastic, and it's also encrypted for security.
Tailscale for Kindle
A few hours later, my Tailnet had a new device
It would have been quicker but I needed specific files for my device that took longer to find
Whether you're going to use your Kindle as a second monitor or add Tailscale, the first step is to jailbreak it. That's the process of circumventing device locks that restrict your use of the device. It's essentially a way to gain root, admin, or superuser status so you can modify system files and install things the manufacturer didn't think you needed. The big brains at Kindlemodding will walk you through that, and every Kindle can currently be jailbroken using one of a few methods.
It's worth noting that you will need to jailbreak your Kindle to run Tailscale on it, which will void any remaining warranty on the device. I've had this Paperwhite for years, so that wasn't a consideration.
Once the jailbreak was done, adding Tailscale was no more complicated than downloading the files from a GitHub repository, downloading the static Linux ARM (not ARM64) binaries from Tailscale, and putting the tailscale and tailscaled binaries into where they belong at extensions/tailscale/bin while copying the repository files into the jailbreak folders on your Kindle.
You'll also want a reusable Tailscale authentication key from the admin console, so you can put it in the auth_key file you'll be copyingto your device. It took me a little longer than this to get things running because I needed an older version of USBNetLite that worked on my 7th Gen Paperwhite, but it wasn't that much longer, and I could see it turn up on my Tailscale admin page.
Turn USBNetLite on first, then Tailscaled, wait a few minutes, and then start Tailscale, and you should see success.
Kindles like to auto-update but can't if you fill up their storage
One of the tricks used to foil jailbreaking is that Kindles are only too happy to update at any provocation. I mean rebooting the device, turning the Wi-Fi on, or even turning it off sometimes if the file is already downloaded. The only way to stop this reliably is to fill your storage up with junk files while you do the process. You can delete those files once finished, and you'll want to keep about 90MB free (I had issues with one of the later stages because I didn't have enough space).
Taildrop is awesome
Being able to right-click on any file on my computer and send it to any device on my tailnet is nothing short of revolutionary. It's like AirDrop but doesn't need to be close to the other device, and it's fully encrypted and only able to be sent to those devices that you trust and are connected to your Tailscale network. It's super quick to send individual PDFs or ebooks across.
Now my Kindle is mine to manage
Being able to connect via SSH without remembering my Kindle's IP address is fantastic, since ssh root@kindle works thanks to Tailscale's MagicDNS. But it's more than that. Using end-to-end encryption on any of your electronic communications should be the first option, and most device manufacturers opt for convenience instead. Tailscale gives you security and convenience, and I install it wherever I can.
