Credits

Colophon

Lemonfiber orchestrates other people's excellent work. This list is authored in the specification and rendered here, so the credits cannot drift from what is actually used.

The orchestrated services

Prowlarr
Indexer manager. One place to configure trackers and Usenet indexers, which then syncs them into every *arr.
FlareSolverr
Proxy that solves the browser challenges some indexers put in front of their search endpoints.
NZBHydra2
Meta-indexer that fans one Usenet search out across many indexers and merges the results.
SABnzbd
Usenet downloader. Handles the par2 repair and unpacking that makes Usenet usable.
Gluetun
VPN gateway container. Everything torrent-related routes through it, and it is the only container granted NET_ADMIN.
qBittorrent
Torrent client. Runs inside Gluetun's network namespace so it has no route to the internet if the tunnel drops.
Sonarr
Television automation — searches, grabs, renames and files episodes.
Radarr
The same, for films.
Lidarr
The same, for music.
Bindery
The same, for ebooks.
Bazarr
Finds and syncs subtitles for whatever Sonarr and Radarr have filed.
Jellyfin
The media server. The household-facing surface everyone else in the house actually uses.
Seerr
Request portal. Lets the household ask for something without touching an *arr.
Calibre-Web-Automated
Ebook library and reader.
Audiobookshelf
Audiobook and podcast server.
Recyclarr
Syncs TRaSH-guide quality profiles into the *arrs, so quality settings are maintained upstream rather than by hand.
Unpackerr
Extracts archives the download clients leave behind, so imports do not stall on them.
Homepage
The dashboard that gives the stack a single front door.
Caddy
Reverse proxy with automatic certificates, for the optional proxy form.

The binary

tokio
Async runtime. The stack is I/O bound on Docker and the network, which is what it is for.
bollard
Docker Engine API client. Talks to the daemon directly rather than shelling out to the CLI.
clap
Command-line parsing, with the derive feature so the CLI surface is declared alongside the types.
serde
Serialisation. Everything read from disk or the Docker API lands in a typed struct.
toml
Parses stack.toml, the manifest that defines the services, profiles and forms.
color-eyre
Error reporting. Chosen because P4 requires every user-facing failure to carry a remedy, and it makes the context chain legible.
thiserror
Typed errors in the library crates, where a caller has to match on the variant.
etcetera
Resolves the per-platform config and data directories, so paths are correct rather than guessed.
sysinfo
Disk inspection for the preflight checks.
include_dir
Embeds the bundled manifest and templates in the binary, so a single file is the whole install.
async-trait
Async methods in the traits the Docker layer is abstracted behind.
tokio-stream
Streaming container logs and events without buffering them whole.

The specification and the site

mdBook
Renders this specification into the published docs site.
Astro
Static site generator behind lemonfiber.app. Ships no JavaScript unless a page asks for it.
Bricolage Grotesque
The display and body typeface, served from the site's own origin rather than a font CDN.
JetBrains Mono
The monospace face, for terminal output and identifiers.

The toolchain

Docker
The engine the whole stack runs on. lemonfiber orchestrates Compose; it does not reimplement it.
just
Task runner. The same commands work locally and in CI.
lefthook
Git hooks that mirror CI, so a failure is found before it is pushed.
typos
Spell check across every repository.
lychee
Link check. Nothing in this spec may point at a page that does not exist.
CodeQL
Static analysis for security defects.
OpenSSF Scorecard
Public supply-chain posture score on each default branch.
OSV-Scanner
Dependency vulnerability scanning against the OSV database.
gitleaks
Secret scanning.
SonarQube Cloud
Code quality and coverage, fed by cargo-llvm-cov.
Renovate
Dependency updates, emitting the trailer that lets its pull requests pass spec-check.
git-cliff
Generates release notes from the commit log, so the changelog cannot disagree with what shipped.
cargo-dist
Builds and publishes the signed multi-platform release artefacts and the Homebrew formula.

Browse the specification →