Skip to main content

Reading things later with Wallabag and my Kobo

·675 words·4 mins
Tutorial Cool Tools Self Hosting
reading - This article is part of a series.
Part 6: This Article

Reading things later
#

In 2014, I discovered Pocket. I was living in Tanzania and often took the ferry between Dar es Salaam and Zanzibar. This is about a 2.5-hour trip, and the internet dies out pretty quickly once you leave port. I paid for the “fancy” tickets and normally preferred sitting in the lounge, which had gigantic La-Z-Boy-type chairs and a big TV screen. I watched a lot of Charlie Chaplin movies on those ferry trips. But! I also discovered the Pocket app, and it was a great way to pre-load a bunch of stuff to read while sailing.

the port of dar es salaam

After that initial burst in Tanzania, I rediscovered Pocket a couple years ago when I found that my browser (Firefox) and my e-reader (the Kobo) integrated with it. Reading it later… in e-ink?! Truly glorious.

chart

The end of Pocket
#

Unfortunately, the good times are coming to an end - Pocket is shutting down in July 2025. I’ve already been moving as much as I can to self-hosted solutions (e.g. all my news comes in via my self-hosted RSS reader), and so I immediately went hunting for an alternative - ideally self-hostable and open source.

The main ones I came across were:

I ended up going with Wallabag because it was: (a) open source, (b) self-hostable, (c) mature, and (d) I found several blog posts of people integrating it into their Kobo reading flow.

Setting up Wallabag on my Synology NAS
#

As with my other self-hosted services, I relied on the Docker Hub image - I set the minimum environment variables up, got some help from Claude on how to debug the env vars lol, and then had the pain of exporting my Pocket saves and importing them into Wallabag.

For now (an open PR will change this), the process is (1) Pocket exports a CSV, (2) but Wallabag wants to talk to Pocket via its API. Either way, I had 4k (!) Pocket saves, and Wallabag’s connection died a couple times trying to import everything. I’m assuming Pocket didn’t save the plaintext of the URLs, and so Wallabag had to ping 4k URLs to try to download the <body> or whatever tags. How tedious! I haven’t checked yet, but I do hope Wallabag is now just saving the plaintext of these articles.

…and my Android and browser
#

The nice thing about Wallabag has been its maturity, as I said: it has an Android app and browser extension available. Note: the browser extension had a small fight with my browser re: HTTPS vs. HTTP.

The next big piece: the Kobo
#

So the vanilla Kobo OS (?) is integrated with Pocket. (This was one of the big reasons I bought a Kobo! sob) I knew that switching to Wallabag, or any other option, really, would probably require jailbreaking it and loading KOReader. This was actually super easy. There’s an install.sh script, but - honestly - it was literally just plugging in my Kobo, downloading the ZIP file and extracting it into the appropriate folder on the e-reader. Here’s the details. It was totally painless - my Kobo immediately restarted, and now I had the KOReader option available on top of my vanilla Kobo menu.

After setting up KOReader, it was just a matter of configuring the (built-in!) Wallabag integration to talk to my self-hosted instance. Doing this was actually a bit tricky, and took some brainstorming with Claude. Basically, my Kobo can’t get on my Tailscale - which is how I connect to my self-hosted services when I’m not on the local nework. But Wallabag’s PHP server insists that incoming HTTP requests, ahem, call it by its (domain) name. And so I just set the Docker’s env var, SYMFONY__ENV__DOMAIN_NAME to both the local network IP address and the Tailnet IP address. This has broken my instance’s CSS and JS (ughhhhhh), but the basic functionality of save an article on my phone or laptop -> read it on my phone or Kobo works - and that’s the most important thing!

reading - This article is part of a series.
Part 6: This Article

Related

Moving everything into RSS
·974 words·5 mins
Tutorial Cool Tools
I heard you like websites so I put websites in your website so you could
Yet another dotfiles repo
·760 words·4 mins
Tutorial Bash Zsh Cool Tools
marcello
This blog is now brought to you by Hugo
·630 words·3 mins
Cool Tools Fun Meta
Welp! It was time!