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.