Home avatar

vors

Latest recipes

All recipes →

Guides & how-tos

All guides →

Latest from the blog

Chicken Enchiladas in Red Chilli Sauce

Enchiladas are pure comfort: tortillas wrapped around tender chicken, blanketed in sauce and cheese, then baked until bubbling. The twist is the sauce. Rather than reaching for a jar, this one starts with whole dried chillies, toasted in a dry pan until fragrant and then blended into a deep, smoky, brick-red sauce. It takes minutes of extra effort and transforms the dish entirely, giving a warmth and complexity that no shortcut can match.

Kubernetes Secrets Management: SOPS, Sealed Secrets, or External Secrets

Kubernetes Secrets are not secret. That’s the first thing nobody tells you. A Secret object is base64-encoded YAML sitting in etcd, and base64 is encoding, not encryption — anyone with get secrets on the namespace can read it back in plaintext with a single command. Encryption at rest in etcd helps a little, but the real problem turns up the moment you adopt GitOps: now you want everything in a repo, and committing a base64 blob of your database password to Git is the kind of decision that ends careers. So you reach for tooling. There are three serious contenders, and I’ve run all of them in anger.

Honey and Ricotta Phyllo Cups with Walnuts

These little cups are the answer to the question of how to make a dessert that looks like real effort while taking barely twenty minutes of actual work. Crisp, ruffled shells of filo pastry hold a cloud of whipped ricotta sweetened with honey and brightened with lemon, all crowned with honey-glossed walnuts. They are light, elegant and endlessly poppable, the sort of thing to set out after dinner with coffee or to pile onto a platter for a party. The small twist here is treating the ricotta like a savoury cheese given a sweet turn, whipping it smooth and perfuming it with cinnamon, lemon and a whisper of orange blossom.

Apple and Calvados Tarte Tatin

Few puddings deliver as much drama for as little fuss as a tarte Tatin. You build it upside down, apples caramelising in the pan beneath a blanket of pastry, and the moment of truth comes when you flip the whole thing over and pray. Done right, it lands as a glossy, burnished disc of caramel-soaked apple crowned with crisp puff pastry. This version adds a measured splash of Calvados, the apple brandy of Normandy, which sharpens the caramel and amplifies the fruit, tying the whole tart together with a warm, boozy hum that suits a cold December evening.

The SaaS Trap: How Per-Seat Pricing Pushes You Toward Self-Hosting

There is a particular moment, familiar to anyone who has run a small team, where you log into a tool you’ve happily paid for for years, go to add a new colleague, and watch the price quietly leap by another tenner a month. Do it five times and the friendly little subscription has become a line on the budget that someone, eventually, is going to question. That moment is when otherwise sensible people start googling “self-hosted alternative to” — and per-seat pricing is the reason.

Charred Guacamole with Pomegranate

Guacamole is simple by nature, so the smallest tweaks make the biggest difference. Here the aromatics are charred first in a dry pan until blackened and sweet, lending the whole bowl a gentle smokiness that plain guacamole never has. Then comes the flourish: a generous scatter of ruby pomegranate seeds, which burst with sharp, sweet juice and bring a jewel-bright crunch against the creamy avocado. It is the same comforting dip, dressed up just enough to feel special.

Sourdough Discard Banana Muffins with Walnut Streusel

Anyone who keeps a sourdough starter knows the small, recurring guilt of the discard jar. Every time you feed the starter you tip away a portion to keep it healthy, and unless you have a plan, that perfectly good fermented flour goes down the drain. These muffins are my favourite answer to that problem. They take the two most common things lurking in a baker’s kitchen, sourdough discard and a few brown bananas, and turn them into a tray of tender, gently tangy muffins crowned with a craggy walnut streusel. Nothing wasted, and breakfast sorted.

Linkwarden: Self-Hosted Bookmarking for the Tab Hoarder

I have a confession that will surprise nobody who has ever borrowed my laptop: my browser at any given moment is holding somewhere north of two hundred open tabs. Each one is a promise to myself — “I’ll read this later” — and each one is a lie. Worse, the tabs I do eventually bookmark have a nasty habit of rotting. I click through six months later and find a 404, a parked domain, or a “this article has been removed” notice. The thing I wanted to keep is gone, and all my bookmark preserved was the gravestone.

Kaniko: Building Container Images Inside Kubernetes

There is an awkward chicken-and-egg problem at the heart of running CI inside Kubernetes: you want to build container images, but the traditional way to build a container image is to run docker build, and docker build needs a Docker daemon, and a Docker daemon needs root and a bunch of kernel features that you really, really should not be handing to a CI pod. The old hack — mounting the host’s Docker socket into the build pod — is the security equivalent of leaving your front door open because the lock is fiddly. Anything that can talk to that socket effectively owns the node.

Proxmox vs Kubernetes for the Home Lab: Pick the Right Tool for the Mess

“Should I run Proxmox or Kubernetes in my home lab?” is one of those questions that’s wrong in a subtle, expensive way. It sounds like a versus, and the internet loves a versus, so people pick a side and defend it with the energy of a football derby. But the two tools answer different questions. One asks “how do I carve this physical machine into several virtual ones?” The other asks “how do I run my workloads across machines and keep them running when one dies?” You can — and many of us do — run the second on top of the first.

Mushroom and Gruyère Quiche with Thyme Pastry

A proper quiche is a thing of quiet luxury: a crisp, buttery shell holding a custard so soft it barely sets, shot through with something savoury. This one leans into autumn, with deeply browned mushrooms, nutty Gruyère and a pastry that has fresh thyme worked right into the dough. That last detail is the small twist that lifts it; instead of a neutral case, you get a herb-scented crust that perfumes every forkful. It is the kind of tart that turns a bit of leftover salad into a proper lunch, and is honestly better the day it cools than straight from the oven.

Supply Chain Attacks: From npm Typosquatting to Poisoned Container Images

The most effective way to attack a company isn’t to break down its front door. It’s to be standing inside the delivery van that the company waves through the gate every morning. Supply chain attacks work because they exploit the one thing every developer does without thinking: pull in code and images they didn’t write, from people they’ve never met, and run them with full trust.

You did it this morning. npm install. docker pull. pip install. Each one is an act of faith that the thing at the other end is what it claims to be and hasn’t been tampered with since you last looked. Mostly that faith is rewarded. The supply chain attacker’s entire business is the times it isn’t.

Rye and Honey Oat Flapjacks

A good flapjack is one of the great democratic bakes: no creaming, no folding, no fear. You melt, you stir, you press, you bake. This version keeps all of that ease but trades a little of the usual one-note sweetness for something with more backbone. A handful of wholegrain rye flour brings a dark, malty, faintly sour note, and proper honey replaces some of the golden syrup, so the squares taste deep and almost gingerbread-ish rather than simply sugary. They are chewy in the middle, crisp at the edges, and exactly the thing to wrap in paper for a cold walk.

Arancini with a Molten Mozzarella Centre

Arancini are the great Sicilian street snack: cold risotto rolled into balls, crumbed and fried until shatteringly crisp. The twist tucked inside is a cube of mozzarella buried at the centre, which melts as the balls fry so that each one pulls into a long, satisfying string of cheese when you break it open. Make them with leftover risotto or cook a batch specially. Either way, serve them hot, while the centre is still molten and the crust still crackles.

Keel: Automated Kubernetes Deployments Without GitOps Overhead

The orthodox answer to “how should my Kubernetes cluster deploy updates” is GitOps: Argo CD or Flux watching a Git repository, reconciling the cluster to match declared state, the whole pull-based pipeline. It is genuinely the right answer for a team shipping a product. For a homelab cluster running Sonarr, a couple of dashboards, and the odd hobby project, it is also a small mountain of YAML, a controller to babysit, and a Git workflow you have to actually follow. Sometimes you just want third-party images to update themselves when a new tag lands, without standing up a GitOps engine to do it.

Proton vs Tuta vs Self-Hosted: Email Privacy, Practically Assessed

“Private email” is one of those phrases that sounds like a single product and is in fact three completely different bargains. You can pay an encrypted provider to hold your mailbox in a way they can’t read. You can pay a different encrypted provider with a different idea of how that should work. Or you can host the lot yourself and own the whole problem. I’ve run all three at various points, and the right answer depends entirely on which trade-off you can live with — so let’s be specific about what each one actually costs you.

Orange Blossom Shortbread with Pistachios

There is a particular kind of biscuit that does not shout. It sits quietly on the plate, pale and sandy, and only gives itself away when you bite in and a soft cloud of orange blossom drifts up from somewhere unexpected. This shortbread is that biscuit. It takes the steady, buttery reliability of a classic British shortbread and gives it a Levantine accent, perfuming the dough with orange blossom water and studding it with green pistachio. The result is delicate, fragrant and dangerously easy to eat by the handful.

Vanilla Panna Cotta with Berry Coulis

Panna cotta is the most elegant of puddings and one of the simplest: barely-set cream, just firm enough to hold a wobble, scented with real vanilla. The twist is in the contrast, a quick homemade berry coulis whose sharpness ripples through the rich, silky cream and stops it cloying. Use a whole vanilla pod for those tell-tale flecks of seed, and aim for the softest set you dare. The reward is a dessert that quivers when you tap the plate.

Chicken and Preserved Lemon Tagine

A tagine is one of those dishes that sounds far more intimidating than it is. Strip away the romance of the conical clay pot and what you have is a fragrant, gently spiced chicken braise that any heavy casserole can produce beautifully. What makes it unmistakably Moroccan, and what makes it sing, is a handful of bold, salty, perfumed ingredients working in concert: saffron, warm spices, briny olives, and above all preserved lemons. This is the dish that taught me how electric a salt-cured lemon can be.

Walnut and Espresso Rugelach

Rugelach are the kind of biscuit-pastry hybrid that disappears off a plate before you have quite worked out what you are eating. Each one is a little rolled crescent of impossibly tender, faintly tangy cream-cheese pastry wrapped around a sweet, nutty filling. They are a fixture of Jewish bakeries, sold by the bagful, and once you have made your own you will understand why people are evangelical about them. The twist here is espresso: a tablespoon of instant espresso powder folded through the classic walnut-and-cinnamon filling gives these a deep, slightly bitter, grown-up edge that pairs perfectly with the coffee you will inevitably want alongside them.

Let's Encrypt Rate Limits: What to Do When You Hit the Wall

Let’s Encrypt is one of the genuinely great things to happen to the open web. Free, automated, universally trusted TLS certificates — the whole reason your homelab services have padlocks now instead of a wall of browser warnings. It is also a free service handling staggering volume, and it protects itself with rate limits. The trouble is you only ever learn those limits exist at the precise moment you slam into one, usually at 2am, usually while debugging something else, usually with a renewal cron job hammering away making everything worse.

Calico vs Cilium: Kubernetes CNI for a Home Cluster

Set up a fresh Kubernetes cluster and one of the first decisions you’re handed is also one of the least explained: which CNI? Your nodes sit there in NotReady, the docs wave vaguely at a list, and you pick whatever the tutorial used. Months later you’re trying to write a NetworkPolicy or debug a packet that vanishes, and you finally wish you’d understood the choice.

The Container Network Interface is the plugin that gives every pod an IP and makes pods on different nodes able to talk to each other. Without one, your cluster is a collection of isolated boxes. For self-hosters, two names dominate the conversation: Calico and Cilium. They reach the same destination by very different roads.

Fig, Walnut and Blue Cheese Galette

A galette is the answer to anyone who finds pastry intimidating. It is a tart that has given up on perfection, a single round of dough loaded with filling and folded roughly over itself, then baked free-form on a tray. No tin, no blind baking, no fretting over neat edges. The rougher it looks, the better. This particular galette pairs ripe figs with salty blue cheese, toasted walnuts and a thread of honey, and the result is the kind of sweet-savoury thing that works equally well as a light supper, a starter, or the centrepiece of a lazy weekend lunch.

Local LLMs: A Practical Comparison of Llama, Mistral, and Gemma for Real Work

There is a particular flavour of disappointment unique to running a local LLM for the first time. You’ve read the benchmarks, you’ve seen the leaderboard, you spin up a model on your own GPU, ask it something real, and it produces confidently structured nonsense. Then you try a different model and it nails the same task. The benchmarks didn’t lie exactly — they just don’t tell you which model is good at your work. After months of using all three of the big open families for actual tasks, here’s what I’ve learned about Llama, Mistral, and Gemma when the novelty wears off.

Eggs Benedict with Quick Hollandaise and Sourdough Muffins

Eggs Benedict has a reputation it does not deserve. People treat it as restaurant food, the dish you order out because making hollandaise at home is supposedly a tightrope walk over a split, oily disaster. It is not. The trick I swear by is a blender hollandaise: hot butter poured into egg yolks with the motor running, emulsified in under a minute, no whisking arm and no double boiler. The other small upgrade is the muffin. A tangy, chewy sourdough English muffin underneath all that richness cuts through it and stops the whole plate feeling like a butter delivery system. With those two things sorted, Benedict goes from terrifying to a perfectly achievable lazy Sunday.

Rosemary Sea-Salt Focaccia

Few breads reward patience like focaccia. The twist here is time: a long, cold overnight rise that develops a deep, almost savoury flavour and a wonderfully open, bubbly crumb, finished with a fragrant rosemary and flaky-salt top. The result is golden and crisp where it meets the oiled tin, soft and airy within, and unapologetically rich with good olive oil. It is best eaten warm, torn straight from the tray.

Authelia vs Authentik: Choosing a Self-Hosted SSO You Won't Regret

There comes a moment in every homelab’s life when you realise you have a dozen logins. Grafana wants a password. So does Sonarr, and Radarr, and that Nextcloud instance, and the thing you spun up at 2am and have already forgotten the credentials for. Each one is its own little island of authentication, half of them reusing the same password because you’re only human, and exactly none of them have multi-factor authentication because configuring it twelve times sounded like a Tuesday you’d rather not have.

eBPF: The Linux Kernel Feature That's Changing Security (and Attack Surfaces)

For most of Linux’s life there was a hard wall between code you wrote and the kernel that ran underneath it. If you wanted the kernel to do something new, you wrote a kernel module — which is to say, you wrote code with the power to crash, corrupt, or backdoor the entire machine, loaded it with your fingers crossed, and hoped. eBPF tore a window in that wall. And like any window, it lets the light in and gives someone a way to look out.

Portuguese Custard Tarts (Pastéis de Nata)

If there is one pastry I would happily eat until I felt slightly unwell, it is the pastel de nata. Crisp, shattering pastry holding a wobbling, scorched custard that is somewhere between set and molten, eaten warm so the cinnamon catches in your throat a little. They are sold from glass cabinets all over Lisbon, and for years I assumed they were beyond a home cook. They are not. They are fiddly, yes, but the technique is learnable in an afternoon, and homemade ones eaten ten minutes out of the oven beat almost anything you can buy outside Portugal.

Just and Task: Modern Alternatives to Make That Don't Make You Cry

Almost every project I touch accumulates a pile of little commands: build the thing, run the tests, regenerate the assets, deploy to staging. For decades the reflex answer was a Makefile, and for decades a Makefile has been quietly torturing everyone who isn’t compiling C. Tab-versus-space errors that print nothing useful. Recipes that fail silently because each line runs in its own shell. Variable expansion that fights you because Make has its own $ and the shell has another. Make is a brilliant build tool wearing a task-runner costume, and the costume doesn’t fit. This article is about two tools — just and Task — that fit much better.

Miso Caramel Shortbread (Millionaire's Shortbread with a Twist)

Millionaire’s shortbread is one of those bakes that is almost impossible to dislike: a crumbly butter base, a thick layer of chewy caramel, a snap of dark chocolate on top. The only fair criticism is that it can be relentlessly, one-note sweet, the sort of thing you can manage one square of before your teeth ache. My fix is a couple of tablespoons of white miso whisked into the caramel. It sounds strange and it is the best thing I have done to this recipe in years. The miso brings a deep, savoury, almost butterscotch saltiness that turns the caramel from merely sweet into something complex and grown-up, the same way salted caramel improved on plain caramel, but pushed further. People cannot place it, but they always want another piece.

Kubernetes CronJobs: Scheduled Tasks That Don't Silently Fail

Every cluster ends up with a graveyard of scheduled tasks. Backups, certificate renewals, cache warmers, the nightly script that reconciles a database with some upstream nonsense. On a single box you’d reach for crontab -e and move on with your life. In Kubernetes you reach for a CronJob, and if you’re not careful you reach for a thing that fails quietly at 3am and tells nobody.

I have lost data to silently failing cron tasks. Not a CronJob specifically — an old-fashioned line in a crontab that had been emailing its errors into the void for eight months. The lesson stuck. A scheduled task you don’t monitor isn’t automation, it’s a slow-motion incident waiting for a calendar invite. Kubernetes gives you better tooling for this than a plain crontab ever did, but only if you opt in.

Osso Buco with Gremolata

Osso buco is the great Milanese braise, a slice of shin cooked so slowly that the meat slips from the bone and the marrow turns to silk. The dish can feel rich and wintry, so the finishing flourish is everything: a raw, fragrant gremolata of lemon zest, garlic and parsley scattered over at the last moment. That bright, citrussy hit cuts through the unctuous sauce and lifts the whole plate.

VictoriaMetrics: When Prometheus Gets Too Hungry for Your Hardware

I love Prometheus. I’ve said as much before. But there’s a moment in the life of a growing homelab where the love turns slightly conditional, and that moment usually arrives when you check htop and find Prometheus quietly chewing through two gigabytes of RAM to remember some numbers about your fridge thermometer. It’s not that Prometheus is badly written — it’s that it was designed for ephemeral, short-retention monitoring of large fleets, and it makes memory and disk trade-offs that suit a data centre better than a fanless box in a cupboard.

Fermented Hot Sauce with Habanero and Garlic

Wear gloves. I am opening with that because every fermented hot sauce story should, and because I learned the hard way that habanero oils do not care about your plans for the rest of the day. With that out of the way: this is the condiment that turned me from someone who owned seven half-finished bottles of shop hot sauce into someone who makes one bottle that beats all of them.