No-ops linux part 3: It puts the data in the pond. Nightly.

This post is part of the series on no-ops linux deployment. The first post covered local development of linux server configuration and essential configuration. The previous installment covers a janky podman installation and configures a reverse proxy to send traffic to a simple container deployment. This is the final post. It covers a more challenging deployment with jobs and rolling restarts, and discusses the strengths and weaknesses of this approach to hosting. After the previous post, we know how to deploy a container that requires absolutely no configuration and restarts almost instantly. Most of the applications I work on in my daytime job aren’t like that. Let’s take a look at a more complex example. ...

May 14, 2025 · 22 min · 4516 words · Robin Kåveland

No-ops linux part 2: Hosting a simple container on a lean mean systemd machine

This post is part of the series on no-ops linux deployment. The previous post covered local development of linux server configuration and essential configuration. This installment covers a janky podman installation and configures a reverse proxy to send traffic to a simple container deployment. The final post covers a more challenging deployment with jobs and rolling restarts, and discusses the strengths and weaknesses of this approach to hosting. At the completion of the previous post, we had automatic installation of a functional Ubuntu server with the bare essentials installed. We did this by writing a base-install ansible role. There’s still a missing ingredient before we can start deploying containers, though! ...

May 14, 2025 · 15 min · 3112 words · Robin Kåveland

No-ops Linux part 1: Automation, security and essentials

In Running containers on no-ops linux in 2025 I wrote about moving my hobby projects to a European cloud provider. I did an initial, manual setup in Hetzner, which I’ve now automated. This weekend, I tested the setup. It takes me a few minutes now to get everything moved to a new host, and most of that has to do with DNS. I’ve got a reproducible setup, I can quickly provision up a machine locally or in any cloud that has Ubuntu 24.04. Reproducible infrastructure is ✨liberating✨ ...

May 13, 2025 · 12 min · 2444 words · Robin Kåveland

Deploying to BunnyCDN and protecting Norway from drop bears

Not long ago, I wrote about running containers as part of moving my hobby projects to European cloud providers. That post was focused on running good old Linux servers. I briefly mentioned BunnyCDN but didn’t dive into the details. It’s time to dive into the details! What the flark is a CDN? A content delivery network is a geographically distributed network of servers that can deliver content to your users, close to where they are. It’s useful, because the speed of light isn’t fast enough to make pages load quickly across the other side of the globe. Seriously, the fastest thing in the universe cannot deliver cat pictures to people quickly enough. By using a CDN, you can geographically distribute assets like cat pictures, HTML, CSS, JavaScript, video files, fonts and much more. ...

April 20, 2025 · 8 min · 1609 words · Robin Kåveland