Přeskočit na hlavní obsah

Devops

2026


Node-RED + AWS SNS: Setting TopicArn for the Publish Node via a Change Node

·3 min

I wanted to publish a message to an AWS SNS topic from a Node-RED flow using node-red-contrib-aws. The SNS Publish node itself has no field anywhere in its editor to pick or type a topic — no “Topic ARN” box, nothing. I spent a while looking for it before realizing the node simply doesn’t have one, and the value has to arrive on the message instead.

Building a Cloud-Init Debian Template on Proxmox

·4 min

Installing a VM from an ISO through the Proxmox console is slow: boot the installer, click through partitioning, wait for package installation, reboot, then configure networking and users by hand. A cloud-init template skips all of that. You import a pre-built cloud image once, turn it into a Proxmox template, and every clone afterwards boots in seconds with networking, users and SSH keys already in place — set entirely through cloud-init on first boot.

Backing Up a vpsFree VPS via Snapshots

·3 min

This tutorial covers downloading vpsFree snapshot backups using vpsfreectl, both manually and as an automated cron job — including a couple of gotchas that aren’t obvious from the official docs.

Listening for Listmonk Subscriber Confirmations in Node-RED via Postgres LISTEN/NOTIFY

·5 min

This tutorial sets up a real-time trigger that fires whenever a subscriber confirms their double opt-in on a Listmonk list. Listmonk itself has no outgoing webhook for this event (as of v6.2.0), so we tap into the underlying Postgres database directly using LISTEN/NOTIFY, and pick it up in Node-RED with node-red-contrib-digitaloak-postgresql.

Securing Docker Ports with firewalld

·3 min

Docker manages its own iptables rules and, by default, exposes published ports to the whole world - firewalld’s zone rules don’t help here, because Docker inserts its own ACCEPT rule ahead of everything else. On top of that, Docker creates a chain called DOCKER-USER specifically so you can hook into it, but if firewalld gets restarted while Docker is running, that chain gets wiped and container access breaks. Here’s how I lock Docker’s exposed ports down to specific IPs using firewalld’s direct rules, on a CentOS7 box running Docker CE.

Moving Keycloak Users Between Realms Directly in Postgres

·3 min

Keycloak doesn’t offer a built-in way to move a user from one realm to another - the closest thing the admin console gives you is exporting a user and re-importing them elsewhere, which loses role mappings and other relations unless you rebuild them by hand. When I needed to move a handful of users (selected by email domain) from one realm to another, I ended up writing a small PL/pgSQL procedure that does it directly against Keycloak’s Postgres database.

Managing Kubernetes from Neovim: Installing kubectl.nvim on Ubuntu 24

·4 min

kubectl.nvim is a Neovim plugin that lets you browse and manage Kubernetes clusters directly from your editor — without leaving your coding environment. This guide covers a complete setup from scratch on Ubuntu 24, including Neovim, lazy.nvim as the plugin manager, and kubectl.nvim itself with true color support.

Git-Crypt: Secure Secrets in Git Repos

·1 min

Git-crypt provides transparent encryption for sensitive files within Git repositories, allowing teams to store secrets like API keys alongside public code without exposing them.

Resetting asciinema with Scroll Stacking

·2 min

Your asciinema recording looks broken: newlines don’t work, old text gets overwritten, or the screen fills with garbage. This simple tutorial shows how to reset the terminal screen mid-recording using scroll stacking. Fix messy casts without starting over - just edit the file!