Replace YNAB: Self-Host Actual Budget in One Docker Container

YNAB is $14.99 a month — $180 a year — for envelope budgeting. That’s a subscription to be told where your own money went. Actual Budget is the open-source clone: same “give every dollar a job” philosophy, local-first so it works offline, and a tiny server that syncs your budget between devices. One container, zero dollars, your data never leaves your network. The math YNAB Actual Budget (self-hosted) Cost $14.99/mo ($180/yr) $0 Budgeting method Envelope Envelope Your data lives YNAB’s cloud Your /data folder Works offline Mostly Yes — local-first Bank sync Built-in, polished US/EU only (see below) Mobile apps Yes Yes (point at your server) The honest trade-off is bank sync — more on that below. Everything else is at parity or better. ...

2026-09-26 · 4 min · Ramesh

One Container to Watch Them All: homelab-monitor Replaces Your Uptime + Grafana Tabs

My monitoring stack used to be five containers: Prometheus, Grafana, node-exporter, cadvisor, and an uptime checker — plus a paid UptimeRobot plan for the “is the house on fire” pings. Total maintenance burden: a weekend to set up, and a Sunday every few months when something in the pipeline silently died. homelab-monitor replaces all of it with one container. Pure Python + Flask, no agents, no Prometheus, no cloud. It does the thing most dashboards skip: per-container GPU/VRAM attribution — which container is actually squatting on your VRAM — plus power-cost tracking, multi-machine monitoring over SSH, and built-in uptime checks with push alerts. ...

2026-09-24 · 6 min · Ramesh

Ditching Plex Pass: Jellyfin 12 with Hardware Transcoding in Docker

Plex keeps moving features behind Plex Pass, and this month it finally got personal: hardware transcoding — the thing that lets a $150 mini-PC serve 4K to five devices at once — is paywalled. Meanwhile Jellyfin 12 shipped on September 7th (.NET 10, FFmpeg 8.1, a rewritten database, 12.1 bugfix follow-up on the 14th), and hardware transcoding in Jellyfin is free. It always was. This is the full migration: the cost math, a working Docker Compose file with hardware transcoding for both Intel and NVIDIA, and the 10.x → 12 upgrade checklist — because 12 is a major migration and doing it wrong eats your library. ...

2026-09-22 · 6 min · Ramesh

New Linux Server? Do These 9 Things Before Anything Else

Every fresh VPS (Hetzner, DigitalOcean, your homelab Proxmox box) boots up with the same problem: a root login over password, no firewall, and nothing installed. Before you deploy anything, spend 15 minutes on this checklist. Order matters. Firewall rules and SSH hardening can lock you out permanently if done in the wrong sequence. Do the steps in this order and you won’t have to rescue-boot your way back in. 1. Update everything first Connect as root and patch the box before touching anything else. ...

2026-09-20 · 6 min · Ramesh

Docker

Docker Installation Storage Storage Drivers Running Images Logging Driver Docker Swarm Namespaces Control Group Image Dockerfile Multi-Stage Build Managing Image Flattening an Image Docker Installation We have two versions of Docker. Docker Community Version (Docker CE) Docker Enterprise (Docker EE) Instalation Guide Ubuntu Debian Storage By default all files created inside a container are stored on a writable container layer. This means that: The data doesn’t persist when that container no longer exists, and it can be difficult to get the data out of the container if another process needs it. A container’s writable layer is tightly coupled to the host machine where the container is running. You can’t easily move the data somewhere else. Writing into a container’s writable layer requires a storage driver to manage the filesystem. The storage driver provides a union filesystem, using the Linux kernel. This extra abstraction reduces performance as compared to using data volumes, which write directly to the host filesystem. Storage Drivers The storage driver controls how images and containers are stored and managed on your Docker host. ...

2024-07-03 · 6 min · Ramesh