Niko Kultalahti

Current RevOps professional, future Cloud Engineer/Developer. A father (of one) and a husband (also of one).

Migrating from Wallabag to Karakeep

Mastodon

Today, I migrated my read-later list (and archived links) from Wallabag to Karakeep.

I self-host both of these applications on my Synology DS224+ NAS.

It turned out, that migrating the links from Wallabag to Karakeep is not as straight-forward as exporting from Wallabag and importing into Karakeep. The reason being that there were no file-format that Wallabag could export to that could be imported to Karakeep.

What I ended up doing is exporting the links from Wallabag as json, converting that to html and importing that into Karakeep. Worked flawlessly.

From this discussion on GitHub I found axilleas comment that included a ruby script that I used to do the conversion.

I’m using Bluefin on my Framework 13 laptop so here’s what I did step-by-step:

  1. Exported the links from Wallabag as json file into a folder on my computer (let’s say ~/Temp) and renamed the file as archived_links.json
  2. Spun up Ubuntu container using Distroshelf
  3. Used terminal to enter the container, updated it and installed ruby (and nano) with sudo apt-get update && sudo apt-get install ruby-full nano
  4. The way Distroshelf works (at least on Bluefin) is that it mounts my home folder to any created container, so I only had to run cd ~/Temp to enter the folder with the exported file
  5. I created a new file with touch wallabag-json-to-html-karakeep.rb
  6. I opened the file with nano wallabag-json-to-html-karakeep.rb and pasted the code from the link above into it, saved and closed the file
  7. I ran ruby wallabag-json-to-html-karakeep.rb archived_links.json archived_links.html

That’s it. A new file was created, which could be imported (successfully) into Karakeep. I created a gist of the code, which hopefully makes it a bit more accessible than browsing through GitHub discussions. As said, credits for the code goes to axilleas on GitHub.