A fully open-source, self-hosted media automation stack — that sets itself up, runs in the exact slice you need, and proves it's working instead of hoping.
Self-hosting your own media works brilliantly — once it's running. Getting there means a weekend of pasted Reddit compose files, six web UIs, hand-copied API keys, and a nagging doubt that your VPN is actually hiding your IP. Then it breaks in a way nothing warns you about, and you never touch it again.
Lemonfiber is one small binary that does all of that for you — and then keeps watch.
$ lemonfiber
No configuration found.
Run first-time setup? [Y/n]Lemonfiber runs on macOS and Linux and needs Docker.
Install it, run lemonfiber, and
answer the setup questions. Your first stack
walks through it.
Not "all twenty services or nothing." Named forms start exactly the part you want; the rest stays off.
lemonfiber up search # just find things. 3 containers.
lemonfiber up dl # just download a link you have.
lemonfiber up tv # search → download → organise → subtitle.
lemonfiber up full # the lot.|
No closed-source media server, no paid tier, no phone-home. Every service is open-source and runs on your hardware. Jellyfin, the *arr apps, Seerr — the good stuff, all of it yours. |
"Just search." "Just download." "Everything." One config, one data folder, no separate installs — boot the shape that fits the moment. |
It tests hardlinks instead of assuming them. It compares public IPs to prove your VPN isn't leaking. Silence means healthy — and it means it. |
You run the setup. Your household never sees Lemonfiber at all — they get one link, one account: ask for something in Seerr, and it turns up in Jellyfin on the TV. That's the whole experience.
Set it up and run it from the command line, the terminal dashboard or the web console on the machine itself. A companion app for phones is in development: it pairs with your machine over your own network and shows what is running, what stopped and what the household asked for.
Prowlarr · FlareSolverr · NZBHydra2 · SABnzbd · Gluetun · qBittorrent (VPN-isolated) · Sonarr · Radarr · Lidarr · Bindery · Bazarr · Jellyfin · Seerr · Calibre-Web-Automated · Audiobookshelf · Navidrome · Recyclarr · Unpackerr · Homepage · Caddy: twenty open-source services, each pinned to a version and wired together automatically.
Lemonfiber is before 1.0, and every release is a pre-release. It is built spec-first: every requirement, and the reasoning behind it, is written down before the code.
- 📖 The documentation: install, run, fix, and build on it
- 📐 The specification: every requirement, and the why behind each one
- 🗺️ The roadmap, and the releases so far
- 💬 Join the Discord
You don't need to write code — or even be especially technical:
- 🧪 Try it and tell us what broke. There is something to run now — bug reports and rough edges are gold.
- 📝 Improve the docs. Something unclear? Fix it — every repo's docs are open, and a docs PR is a real contribution.
- 🎨 Design & UX. The web UI and the brand welcome a good eye.
- 💬 Hang out on Discord. Answer a question, share your setup, help shape the roadmap.
- ⭐ Spread the word. A star or a mention genuinely helps a young project find people.
Prefer to write code? Read how change gets in, then start with a good first issue.
Grouped by what they are for.
Everything starts here. Nothing is built that is not written down first.
| spec | Every requirement, and the argument behind each one |
| lemonfiber | The lemonfiber tool: command line, terminal dashboard, and the local web API everything else talks to (Rust) |
| lemonfiber-media-stack | The Docker Compose stack it runs. Works with plain docker compose too |
| lemonfiber-request-gate | A small service in the stack that lets Seerr ask Sonarr, Radarr and Jellyfin for a fixed set of things, and nothing more |
| lemonfiber-decline | A small service in the stack that lets somebody turn down an invitation to the household |
The command line and the terminal dashboard are part of lemonfiber itself.
| lemonfiber-web | The web console for the person who runs the stack, and a view for the rest of the household. lemonfiber ui serves it |
| lemonfiber-companion | The phone app, in development. Native on iOS and Android, no web view |
| sdk-ts | TypeScript client for the local web API |
| sdk-php | PHP client for the same API |
| sdk-python | Python client for the same API, synchronous and asynchronous |
| integration-home-assistant | The stack's health, controls and a member's library in Home Assistant |
| integration-mcp | An MCP server, so an AI assistant can use the web API through a scoped key |
A plugin adds a service to the stack as declarative data: a manifest, recorded responses, and checks those responses must pass. Nothing in a plugin runs as code.
| plugin-template | Copy this to write a plugin. It validates unmodified |
| plugin-komga | Komga: comics and manga |
| plugin-uptime-kuma | Uptime Kuma: endpoint monitoring |
| plugin-plex | Plex: a worked example that asks for more than plugins may do today, so it cannot be installed yet |
| lemonfiber-plugins | The reviewed catalogue where plugins are listed so people can find them. A plugin needs only a git repository; the catalogue is optional |
| homebrew-tap | The Homebrew tap. It holds a placeholder formula, so brew install installs nothing yet; use the installer in the install guide |
| website-lemonfiber.app | lemonfiber.app, built from this organisation's live state |
| website-docs.lemonfiber.app | docs.lemonfiber.app, the documentation and the specification in one site |
| brand | Logo, colour and type. The marks are proprietary; the tokens are open |
| .github | The community health files every repository above inherits |
Lemonfiber is made by NightWorksIO.