Caddy as a Docker-Compose Reverse Proxy

It seems that every 10 years, a new web server comes along that becomes popular. When I started with hosting my own infrastructure, Apache, first launched in 1994, was the cool kid on the block. 10 years later in 2004, nginx saw the first light and has since become very successful. These days, I use nginx in my self-hosted infrastructure to act as a reverse proxy for my containerized services. It works well and is relatively easy to set up with this project from Evert Ramos, but it seems to be a bit of a niche thing. So I was wondering if there is an alternative to it, as it’s always good to have a plan B.

I am well aware of Traefik, but that’s a bit of an overkill for my needs. I need something simple to set up and maintain because I only need it to do two main things:

  • Serve as a reverse proxy for many Docker Compose based projects running on a single host.
  • The reverse proxy needs to automatically retrieve and update Letsencrypt certificates.

Long story short, say hello to Caddy, which was first released in 2015. At first, I thought Caddy was ‘just’ a Dockerized reverse proxy, but that was a misconception. In its ‘native’ form, Caddy has nothing to do with Docker, it runs as a standalone webserver that is easy to configure and has Letsencrypt capabilities built in. However, with this Docker Compose project by Lucas Lorentz, Caddy becomes a super easy to configure and to deploy reverse proxy for Docker Compose services. So let’s have a look:

Continue reading Caddy as a Docker-Compose Reverse Proxy

Changing Call Forwarding Settings While Roaming

Every few years, it’s interesting to do a reality check of mobile device or network features considered as stable or perhaps even legacy. And that’s because every now and then, things do change while you are not looking, and sometimes even for the better! Case in point: Call forwarding settings for voice calls while roaming.

Continue reading Changing Call Forwarding Settings While Roaming

From Selfoss to CommaFeed – RSS in 2025

I’ve been using RSS feeds to create a centralized place for me to read news pretty much since the Internet became a thing. The first mention of it I can find on this blog is 2013, when I installed Selfoss on a Raspberry Pi to collect the news for me. And before that I was using Google Reader for many years. At the time, I wondered if I was a dinosaur, because RSS feeds were portrayed by big tech to be a thing of the past. 12 years down the road and I use RSS feeds more than ever. But perhaps time has come for a bit of a change.

I like my self hosted Selfoss installation a lot, but the software seems to have fallen a bit behind times. Pretty soon, I have to update the VM it runs on, which means a new OS, new Apache version and a new PHP version. That’s likely a lot of work and quite frankly, the days when I relished tweaking Apache and PHP configuration parameters are long gone.

Today, a dockerized reverse proxy that can be installed in 2 minutes does the frontend job just fine, including the regular update of the TLS certificate. So I was looking for a way to use a dockerized version of Selfoss as well. And while there is a docker image and docker-compose project for it, it’s not from the official project, and I would have to convert and import my database, so I’m a bit hesitant to use it.

What I would like is a modern RSS feed reader with an official Docker container that is part of the project. So I looked around a bit, and it is really nice to see that there are many open source and self hosting alternatives around. After trying some of them, I decided to stay with CommaFeed. It is super simple to install as a docker-compose project, works well in the web browser, even on mobile, and has almost all options I need. No complexity, just a stream of news that I can mark as read after I’ve browsed through them.

There are only two features I’m missing: Many RSS feeds only offer the first few sentences of a new post. For reading the full article, one has to go to the respective web page. Selfoss had a generic way of scraping full web pages for an RSS stub that worked surprisingly well and is easy to use. CommaFeed also has options to do this, but it looks rather complicated to get it working. And so do the full feed solutions of other products as well. So I decided to see if I really need the feature. So far, the pain is manageable.

The second feature I am missing is that posts I mark with a star are kept indefinitely. At the moment, CommaFeed deletes them like all other entries after a year. That sounds like a limitation, as I have almost starred 2000 RSS entries over the past 12 years. At least that is what I thought at first. But then, I wondered how often I have actually looked at or searched for a starred entry in the past decade that is more than 1 year old!? I have to admit that the answer is < 10. So perhaps keeping starred entries indefinitely is not so important after all.

So it’s CommaFeed for me for the moment, and I wonder if it will stick to it for as long as I ran Selfoss. Let’s see.

Immich – Pictures and AI at Home

A problem that was not really pressing and hence unsolved for a long time is how to archive and synchronize images I and members of the family take regularly. Obviously, using a public cloud service for this was out of the question, my pictures are my pictures. Back in January, a friend made me aware of Immich, an open source and GNU APGL licensed ‘Self-hosted photo and video management solution’. Could this be a software to address my needs?

Continue reading Immich – Pictures and AI at Home

Shell in the Browser – ttyd – Perhaps For Online Courses?

I recently came across this article on Tecmint, which describes ttyd, a nifty program to make the Linux shell available remotely over the Internet.

I played around with it a bit and was delighted to see ttyd can be configured to request username and password from the client and provides an https channel if you supply keys and a certificate. While a relatively recent version can be installed directly from the Debian / Ubuntu repository in recent OS versions, the latest version is available as source or binary on Github. I tried installing all three variants in a test VM and even compiling from source worked without much trouble.

Continue reading Shell in the Browser – ttyd – Perhaps For Online Courses?

Anker Power Supply Revisited – Temperature Limits

A few months ago I bought an Anker A1336 72 Wh power bank with a nice display, supporting 3 USB ports, 100W charge and discharge power and simultaneous loading and discharge. All in all, a great power bank, and I reviewed it here and here. However. there are a number of limitations mostly related to prevent overheating, of which I only became aware while using the power bank extensively. So let’s have a look:

When charging or discharging the power bank, its temperature rises, and while you don’t go to the specified charge/discharge power limits you probably won’t notice. But try to recharge the power bank with a 65W power supply while at the same time connecting a notebook and mobile phones, all with low batteries and high power draw, and you will notice a quick rise in the power bank’s temperature, which in turn quickly leads to counter measures.

Continue reading Anker Power Supply Revisited – Temperature Limits

Dishy on Ice – Starlink in Iceland

When I was in Iceland recently, another thing I wanted to have a look at was if Starlink would work reliably there as well. So why wouldn’t it? Have a look at the Starlink satellite map image below and you see where my question came from: Most Starlink satellites are in orbits with an inclination that doesn’t bring them over arctic and antarctic areas of the planet. However, there are some that have a different orbit that brings them close to the poles for coverage of such areas.

If there are enough, then this will work, as you definitely don’t need a lot of capacity at these higher latitudes. But are there enough satellites for a continuous coverage?

Continue reading Dishy on Ice – Starlink in Iceland

Docker ‘Latest’ Can Be Fun – Or Not!

When I updated my Docker Compose based Onlyoffice instance today, I soon discovered that the update broke my installation. Hm, wasn’t one of the promises of container based services to prevent exactly such a thing from happening? Well perhaps, but if you have several containers working with each other in a Docker Compose setup, non-backwards compatible changes in one image can render the overall service unusable. So what exactly happened?

Continue reading Docker ‘Latest’ Can Be Fun – Or Not!