Software that never grew a pricing page.
Storage, deploys, monitoring, streaming, routing: the software a homelab runs on, built to live on hardware you own. All of it free. All of it open. No seats, no tiers, no “contact sales”.
8
projects, all of them open source
159
guides, synced from the repos
0 €
what any of it costs, forever
0
bytes of telemetry sent home
Everything you rely on is rented.
Files, deploys, alerts, the page you open fifty times a day. Each one is a monthly line on a card statement, at a price the vendor can change whenever it wants.
- 01
It starts free.
A generous free tier, a slick onboarding, and every guide on the internet recommends it.
- 02
Then it grows a pricing page.
The feature you rely on moves to Pro. Seats get counted. The free tier shrinks every year.
- 03
Then leaving costs more than staying.
Your files, configs and history live on their servers, in their format. The price goes up, and you pay it.
Cloud drive, 2 TB
or Penombre, on your box
9.99 €0 €App hosting, per seat
or Homerun, on your box
20.00 €0 €Server alerting, pro tier
or Baba, on your box
15.00 €0 €Start page, synced
or Bercail, on your box
3.00 €0 €
PER YEAR
575.88 €, every year, for software
that can change the deal at any time.
0 €
Illustrative list prices for hosted equivalents.
Own the box. Run the software. Keep the data.
Every project here does one of those rented jobs, on a machine you already have. No account to create, no plan to pick, nobody between you and your data.
No subscription
Nothing to renew, nothing to cancel, no card on file.
No seats
Invite the whole household. The count never matters.
No telemetry
Nothing phones home. What happens on your box stays there.
One container
Most of it is one image and one volume. Back up a folder, done.
Open source
MIT and AGPL. Read it, fork it, keep running it if the author disappears.
Your hardware
An old laptop, a NAS, a mini PC in a closet. That is the whole data centre.
The projects
Each one replaces a subscription. Each one runs in a container on a box you own.
Penombre
A self-hosted drive, in the browser, on your desktop and on your phone. SQLite by default: one container, one volume, no database server to babysit.
DeploysHomerun
A self-hosted PaaS that starts on one box. Point it at an image or a git repo, fill a form, hit deploy, and Traefik routes it with TLS. No Kubernetes anywhere near it.
MediaNuvio Web
An unofficial web client for Nuvio. Your profiles, addons, library and watch progress in a browser, with a player that streams, casts, downloads for offline, or hands off.
DashboardBercail
A start page for your homelab. Your links with a live up/down dot, the weather and your server’s vitals on top, and a new tab extension to open it everywhere.
Toolingsvelte-smol
A SvelteKit adapter that compiles your app to one standalone binary with Bun. No node_modules to ship, built-in healthcheck for Docker.
Toolingreleaser
semantic-release without the plugins, the config or node_modules. Conventional commits in; version, changelog, tag and GitHub release out. One static Go binary.
MonitoringBaba
The lookout. Watches CPU, load, memory, disk, temps and GPU, then pings Discord or Telegram when something breaks, and again when it heals.
Networkingdokploy-to-pangolin
A webhook bridge. Deploy in Dokploy, get the Pangolin resource and target created for you. Stop hand-writing routes for every new app.
From the blog
All postsHomerun has release channels now, because I was tired of shipping broken builds
Every merge to main used to be a Homerun release, including the broken ones, and every fix cost fifteen minutes of CI. Now Releaser cuts nightly, canary and stable, and the updater refuses to install a build that can't boot.
Penombre versioning: stop naming your files like a hostage note
Penombre now keeps versions of your files. For musicians and designers that means no more final-final-v3 exports, and switching between mixes mid-playback to hear what actually changed.
Why I rewrote semantic-release in Go
semantic-release does one job and buries it under a plugin registry, a .releaserc, and a node_modules folder heavier than the project it's releasing. I looked at GoReleaser too, wrong tool for a different job. Releaser is the same four steps and a single Go binary.
Everything here is free. Actually free.
No trial that expires. No feature held back for an enterprise plan. No usage cap waiting for the day it matters. The code is on GitHub, the images are on public registries, and the licence lets you keep all of it.
Broken? Open an issue. Fixed it? Open a PR. Never get in touch and just run it for years? That’s the point.