💾 Archived View for gemini.mcgillij.dev › wallabag-miniflux.gmi captured on 2023-12-28 at 15:33:03. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2022-03-01)
-=-=-=-=-=-=-
:author:
mcgillij
:category:
Web
:date:
2021-02-02 14:49
:tags:
Linux, Miniflux, Wallabag, RSS, Android, #100DaysToOffload, Web
:slug:
wallabag-miniflux
:summary:
Setting up Miniflux with Wallabag to read articles on my Android phone.
:cover_image:
wallabag.png
It’s been a while since
removed **live bookmarks** support from their browser.
I loved those.
All my RSS feeds in the browser as just another bookmarks toolbar, it was super convenient and worked very well for many years. But for some reason they didn’t want to support it anymore. So I guess that opens the market to other RSS aggregation services/sites and apps.
I’ve actually written several different RSS reader applications and scripts in
to try to fill the void left by the **live-bookmarks** that Firefox had left in me, and have been searching for an alternative that works for me for quite some time.
Setup
to fetch all my feeds, which I can parse through manually during the day and send over the choice pieces to
for later reading, either at lunch or at nighttime using my phone. Wallabag has a nice Android client application that you can install that will interface with your Wallabag instance so you can do your reading where ever you are. The important part here is that if you choose to self-host these services, that the data is always on your own network and not managed by 3rd parties.
is an RSS aggregator. What differentiates it from the other services, is the ability to *self-host* (set it up on your own hardware or vps). This allows you finer-grain control over your data and privacy, and allows extra flexibility in the configurations available to you.
Not having a self-hosted solution has been a pain-point for me with many of the online services that provide a similar service.
Installing these services is made ridiculously easy with docker, I’ll walk through my configurations.
version: '3.8' services: miniflux: restart: always image: miniflux/miniflux:latest container_name: miniflux ports: - "2080:8080" depends_on: - db environment: - DATABASE_URL=postgres://miniflux:SEKRET_PASSWORD@db/miniflux?sslmode=disable - RUN_MIGRATIONS=1 - CREATE_ADMIN=1 - ADMIN_USERNAME=admin - ADMIN_PASSWORD=EVEN_MORE_SECRET_PASSWORD extra_hosts: - "host.docker.internal:host-gateway" db: restart: always image: postgres:latest container_name: postgres environment: - POSTGRES_USER=miniflux - POSTGRES_PASSWORD=SEKRET_PASSWORD volumes: - miniflux-db:/var/lib/postgresql/data volumes: miniflux-db:
The above *docker-compose.yml* has been slightly modified from the standard one provided by Miniflux. I’ll highlight the changes I’ve made to it. You can likely get by with just using the default configuration depending on your use-case.
I’m using a non-standard port for it since I have other services running on my server on the ports it wants to use by default.
Port configuration:
ports: - "2080:8080"
This will allow me to access Miniflux by going to **http://MYSERVER:2080/** on my LAN(local area network).
I’ve also added the following lines to allow Miniflux to reach my Wallabag instance running from a separate docker-compose.yml by allowing it to talk to the **host**.
extra_hosts: - "host.docker.internal:host-gateway"
I’ve also gone ahead and added the **restart** directives for the containers, so that if my server reboots, the services will come back up automagically. You can add the following lines to each container if you want that functionality as well.
restart: always
That’s it for my modifications, you’ll need to replace your **admin** users password and **database** password as well as they are just placeholders.
Start up your Miniflux instance with the following "docker-compose" command.
docker-compose up -d && docker-compose logs -f
This will bring up the log console, so you can make sure your service is running properly, and you can login to it and start configuring it to your liking. More on that later when we configure it to work with Wallabag.
is a reader service which also provides and Android client for reading, giving you options in how you would like to access your stored articles.
This would potentially be a good transition format if you wanted to do your daily reading on an E-Reader device… Which I do have one.. Maybe that’s my next steps here.
So were going to create another *docker-compose.yml*, and start it up similarly to our Miniflux service.
version: '3.8' services: wallabag: restart: always image: wallabag/wallabag environment: - MYSQL_ROOT_PASSWORD=wallaroot - SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql - SYMFONY__ENV__DATABASE_HOST=db - SYMFONY__ENV__DATABASE_PORT=3306 - SYMFONY__ENV__DATABASE_NAME=wallabag - SYMFONY__ENV__DATABASE_USER=wallabag - SYMFONY__ENV__DATABASE_PASSWORD=SECRET_DATABASE_PASSWORD - SYMFONY__ENV__DATABASE_CHARSET=utf8mb4 - SYMFONY__ENV__MAILER_HOST=127.0.0.1 - SYMFONY__ENV__MAILER_USER=~ - SYMFONY__ENV__MAILER_PASSWORD=~ - SYMFONY__ENV__FROM_EMAIL=PUTYOURE@EMAIL.HERE - SYMFONY__ENV__DOMAIN_NAME=http://YOUR_SERVER_HOSTNAME_HERE:8585 - SYMFONY__ENV__SERVER_NAME="PUT YOUR SWEET INSTANCE NAME HERE" ports: - "8585:80" volumes: - ./images:/var/www/wallabag/web/assets/images db: image: mariadb restart: always environment: - MYSQL_ROOT_PASSWORD=SECRET_DB_ROOT_PW volumes: - ./data:/var/lib/mysql redis: restart: always image: redis:alpine
Again we’ve gone ahead and lightly modified the *docker-compose.yml* file, I won’t go over the individual changes in detail. But I did add the **restart: always** and changed the default ports to match what I wanted on my server. Again you will need to also switch out the password information for your database connections to whatever you need.
Again using "docker-compose up -d && docker-compose logs -f" will allow to watch the startup of the containers and check to make sure nothing’s going wrong during startup.
Login to your instance, and configure it to your liking.
OK we have both services up and running now, but they aren’t talking to each other. They will do this using the Wallabag client API.
We’ll start in the Wallabag settings to create our client for Miniflux.
Click the API clients management in the user settings menuYou can create a new client by clicking the **CREATE A NEW CLIENT** button in the Wallabag user settings.
Take note of the **Client ID** and **Client Secret** to pass into Miniflux, you can name your client as well if you wish.
Next we move back to our Miniflux instance, and go to the settings and select **Integrations**. Scroll down and fill out your **Client ID** and **Client Secret** from your Wallabag instance along with your user credentials to the Wallabag instance.
[image: Miniflux Wallabag integration screenshot]
Put in your credentials and make sure to use the right endpointThe **endpoint** should be your Wallabag container, now usually containers running in different docker-compose environments cannot see each others networks (by default). However since we added the *extra host* directive to the Miniflux configuration, we will be able to talk to our host and through that Wallabag.
So make sure your endpoint reflects this, in my case I had to connect to **http://host.docker.internal:8585** for you depending on if you modified the port settings of your Wallabag container it may be different.
That’s it for the integration bit, now you just need to save some stories in Miniflux and they will automagically appear in your Wallabag reader.
Once you’ve added some RSS feeds to Miniflux, and you’ve read some headlines that your interested in, click “Save” and the stories will be sent to your Wallabag instance, which you can easily setup the Android client to view as well if you don’t want to browse through a web browser.
If for some reason you can’t send the stories over to the Wallabag instance, you will need to take a peek at the logs using the commands I outlined above. But I’ll put them here as well so save you from scrolling.
docker-compose logs -f
This will allow you to inspect the logs of either of the docker-compose environments that we setup and allow you to see if you have maybe typed in your password incorrectly, or didn’t copy/paste your client id etc.
Maybe I’ll setup forwarding of the stories to my Kindle so I can read it on a nice E-ink display.
Anyways hope you enjoy reading your stories on whichever device you choose.