Image 1 — Old Kindle as an e-ink homelab dashboard
Image 2 — Old Kindle as an e-ink homelab dashboard
Image 3 — Old Kindle as an e-ink homelab dashboard
Image 4 — Old Kindle as an e-ink homelab dashboard
▲ 1.0k r/selfhosted

Old Kindle as an e-ink homelab dashboard

A while ago I saw some posts in r/homeassistant about e-ink displays used as dashboards and wanted to try the same but for my homelab. So I bought a waveshare e-ink panel and bricked it pretty quickly and didn't want to order another one. But I still had an old Kindle lying around which I hadn't used in years, so I tried it again with that one and this time it worked.

It shows me if something is down (Uptime Kuma), how full my media pool is, the Proxmox uptime and the weather. During the day it swaps between the dashboard and a random photo from an Immich album every 5 minutes and between 22:00 and 07:00 it only shows photos, because I don't need monitoring at night.

The Kindle itself doesn't render anything. A service on my server collects the data, draws a 600x800 grayscale PNG and serves it at /dash.png and the Kindle just runs a loop which downloads that image every 5 minutes and puts it on the screen. So it is really only used as a display.

The jailbreaking took the longest by far but in the end I am very happy with the result.

How to do it on your own:

  1. Jailbreak the Kindle. Run your serial and firmware through the wizard first and it tells you which method to use. Mine was WinterBreak. This video walks the whole sequence and worked for me.
  2. Install the KindleModding Hotfix. This is what makes any .sh file in /mnt/us/documents/ show up in the library as a tappable entry, so you can start things by tapping what the Kindle thinks is a book.
  3. Install MRPI and KUAL, both from that thread.
  4. Block OTA updates with renameotabin. An update is the one thing that can still take the jailbreak away.
  5. Set up SSH with USBNetwork (there's a good writeup here), before anything else. Starting the display loop stops the reader UI and takes the touchscreen with it, so SSH is your way back in.
  6. Run the render service on your server so it serves a finished PNG.
  7. Put the fetch loop script on the Kindle and start it.

Wrote a more detailed guide about the setup on my personal site (https://mxd.codes/articles/an-e-ink-homelab-dashboard-on-a-jailbroken-kindle). You could also show something completely different on it, like Home Assistant data or a reminder which bin has to go out this week. All you need is an image.

u/mxdcodes — 4 days ago

Colota 1.9: Android GPS tracker that syncs to your own server

Hi there,

Colota v1.9.0 is out! For those who haven't seen it before:

Colota is an Android GPS tracker / location-history app. It's a mobile Google Timeline alternative which works offline and has things like geofences and tracking profiles that auto-adjust GPS settings to save battery. Inside the app you can view and verify your whole location history for each day.

Colota supports Dawarich, Reitti, GeoPulse etc. out of the box and the payload is customizable enough to hit basically any HTTP endpoint. So it doesn't force you into any backend. If you'd rather just dump files on a schedule, that works too. AGPL-3.0, no ads, no telemetry, data only ever goes to your server (or nowhere).

The only external connections it makes by default is fetching tiles for the in app map from maps.mxd.codes. But you can also change that to a tile server of your choice.

Some background

For years I've wanted to develop my own version of a Android GPS tracker because I am a fan of the indieweb and eat what you cook and I wasn't happy with the battery consumption of most alternatives especially while being stationary and the lack of feedback of what was actually recorded and sent.

So I finally pulled the trigger by starting working on it end of 2025 while making it public early of 2026.

What's new

A few of the bigger things since I last posted:

  • Breaking: First of all with the new release there is a breaking change regarding stricter TLS trust. User-installed CAs from Android Settings -> Encryption & credentials are no longer trusted by Colota. If your sync endpoint uses a self-signed or private-CA certificate that you previously trusted via system Settings, sync will fail until you re-import the CA via the new mTLS Settings -> Trusted Server CA flow. Publicly-trusted certificates (Let's Encrypt etc.) are unaffected.
  • Furthermore you can authenticate against your server with a mTLS client certificate. Pick from the OS keystore or import a .p12.
  • You can now finally create a backup of the local SQLite DB. The backup is encrypted by a password you choose during export, so better don't forget it. It will contain all locations, settings and credentials so you easily migrate to a new device or keep a backup for your peace of mind.
  • Sync conditions: any network, any Wi-Fi, a specific SSID or VPN only.
  • Stationary heartbeat while inside a geofence pause zone, so Home Assistant etc still know you're there.
  • Share tracking profiles and geofences via deep-link or create a QR code for your setup.
  • Import data into the app, e.g. GeoJSON, Google Timeline or GPX to migrate from other apps. The imported locations can also optionally be requeued to be sent to your backend.

Colota-forwarder

Can't decide between Dawarich, Reitti, GeoPulse, etc.? Just spin up all and point Colota at colota-forwarder, a small Docker service that fans the same payload out to all of them with per-target format conversion. It also accepts OwnTracks-format input, so you can use it as a single endpoint for the OwnTracks app too.

Thank You

Last but not least, a massive thanks to everyone who's been filing issues and suggestions. Without them Colota couldn't have evolved like it did in the past few months!

At the moment you can download two versions.

Feedback as always much appreciated.

u/mxdcodes — 3 months ago