Docker and macvlan networking (IPv4)

Docker is the well known spin on Linux containers (LXC), if you’re not already playing with containers it’s probably time to jump in and get familiar. I’ve been (very slowly) migrating my personal infrastructure over to a container centric setup.

For me, containers are really nice for managing the set of software dependencies needed to run any particular application. It allows me to keep my RSS feed reader up to date, and avoids me breaking something my WordPress install needs or vice versa. Containers are a light weight virtualization.

The default networking model (default bridge) allows you to easily expose (map) a set of ports from the container, onto the host. This makes it easy to host an nginx container as your webserver on port 80.

Docker does some interesting network tricks to keep things more secure, but this gets problematic too. Containers can’t easily see the host they are on, making it difficult for container A to see container B’s port on the host – however, you can put both containers on the same docker network to allow them to see each other. This is a subject for another blog post entirely.

The macvlan support in docker is very cool. It allows you to provision a second IP address on the same network card, giving your docker container a full IP on the local network. In the world of virtual machines, similar macvlan support is available, and when you want to treat a docker container like a mini-VM, this is very useful.

Continue reading “Docker and macvlan networking (IPv4)”

Moar Speed: Faster Internet

When we upgraded to cable internet, we had 30/5 service. At the time this was a nice upgrade from the fastest DSL we could get at our house.

In general, that was plenty. There were of course occasions when Netflix would load slowly, but this was almost always something you could attribute to the internet being poor as a whole vs. the lack of speed. Even web conferences with video were pretty good.

During COVID19 lockdown and many more people working from home, we’ve managed so far with 30/5 – but there have been some issues. Pulling bits down was always pretty ok, but pushing them up was sometimes a challenge. The different web meeting software is quite different in how it handles poor connections. Zoom is one of the better ones, Jitsi tends to really eat up the bits and WebEx is somewhere in the middle.

Teksavvy offers a no-cost upgrade (or downgrade) path for your cable plan. It was a very simple to switch my service speed via the self service portal, which created a change request ticket. They said 48hrs, but the work was done very quickly (within the hour).

I’m getting pretty solid speed tests. My old go-to dslreports has been pretty cranky lately, giving me plenty of time out errors when trying to test. I have started to look at fast.com as an alternative. Still dslreports is one of the few that gives you a bufferbloat rating, something that is important if you want VOIP or any sort of interactive activity to go smoothly.

If you haven’t read up about bufferbloat, it’s worth learning a little about. The short story is that you want to make sure that your home networking equipment (router, etc) has some form of QoS to help make sure that not only are you getting ‘fast’ internet, but responsive internet. It will make all the difference, at any speed. There are certainly people out there with 150Mbps internet who have terrible lag, that’s not a happy place and it’s something you can fix with a little bit of learning – and the right hardware.

In any case – the ~$10 price increase has doubled performance of our internet connection (75/10 plan). This still means we are lagging behind the average, but it’s pretty good. Before I go chasing more ISP speed, I’ll be looking more closely at network / wifi infrastructure I have set up.

Hello FreshRSS

Well, it was time for a new RSS feed reader – and FreshRSS was the best choice for me. The kind folk at linuxserver.io maintain a container for it, and it fits nicely into my nginx setup.

Moving to a new tool for anything will have an adjustment period, it would be nice if the user experience was identical – but there is also something to be said about trying new things. Different isn’t always bad, change can be for the better.

Setting it up on a basic linux install looks simple, but I would suggest that adopting a container version is even easier. FreshRSS bootstraps and has a guided setup for first run (first connect on the web). You can even pick a sqlite database and avoid any database setup. It supports OPML import, which many other RSS feed readers support as well – so getting your feeds in or out of FreshRSS is easy.

My initial kick the tires install, I use the no-database required sqlite configuration. This worked well, but as I already run MySQL for my wordpress installs, why not use the same data store?

This is very easy – and the MySQL is also running in a container. The linux install covers how to setup your database, but as I’m using a container version I need to make one change to the setup – because ‘localhost’ isn’t the source of the network traffic to the container. (this is the use of ‘%’ instead of ‘localhost’ as shown below)

While allowing access from any host is a bit security scary, the container is already isolated to a private network so I’ve got layers of protection already.

During the web first run setup you have to then configure the database appropriately.

That’s probably the most complicated part of the setup. Now it’s just a matter of creating a user, and importing the OPML of my feeds and away I go.

Of course the new FreshRSS is going to ‘discover’ loads of new unread articles I’ve already read – and also for feeds I’ve been ignoring, not load enough unread articles. Oh well. So for a short while I run both – marking large chunks of articles as read in the new system, and burning down ones that were missed by the new system in the old one. It’s a one time hit and it gives me a chance to tweak some of the user setup configuration.

I’m only a day or so into using FreshRSS – but I’m adapting quickly to the differences. I will shout out to the Android app FeedMe which supports FreshRSS very nicely, once you enable the mobile API.

I will say that the themes are quite nice, I’m still getting use to the layout differences between it and the previous reader I was using. No regrets in making the switch to FreshRSS.