Skip to content

Faucet v1.0.0

Choose a tag to compare

@Harrsn Harrsn released this 30 Jun 04:36
· 209 commits to main since this release

Faucet v1.0.0

Self-hosted media manager — search, grab, sort, request, and track your shows and movies, in one container.

Faucet replaces a Prowlarr + Sonarr + Radarr + Overseerr + download-client stack with a single FastAPI service over your indexer (Jackett/Prowlarr) and torrent client (Transmission/qBittorrent/Deluge). This is the first stable release.


Highlights

Library management (the Sonarr/Radarr core). Monitor shows and movies; Faucet pulls canonical episode lists from TMDb, scans what you own on disk, reconciles the difference, and hunts only what's missing. Point it at an existing library and it auto-imports everything, matching messy real-world folder names (release tags, punctuation, truncated titles) to the right TMDb entry by year.

Accounts, roles & requests (the Overseerr role). Real authentication with signed sessions, hashed passwords, CSRF protection, and brute-force lockout. The first account becomes admin; later sign-ups wait for approval. Non-admin users browse and request titles that flow into the hunting pipeline once approved — or instantly, for trusted users.

Hunting. A built-in scheduler reconciles and grabs missing media on a timer, prefers season packs when multiple episodes of a season are wanted, and caps concurrency so it never floods your client. Per-show monitor modes (all / future / paused) keep big back catalogs in check.

Quality profiles. Per-profile resolution/source priorities, minimum seeders, and size caps drive search ranking and upgrades. Assign a profile per title, with a global default-profile fallback so auto-imported titles still follow your rules.

Admin dashboard. A single consolidated overview: storage gauge, live transfers with progress/ETA and downloaded-of-total size, indexer/client health, library counts, recent activity, and request/user quick-links.

Settings, in-app. Edit the full environment from the UI — connections, metadata, behavior, and (behind an advanced tab with live path-status chips) container paths — with a "Test connections" button that live-checks Jackett and your client before you rely on them.

Plus: auto-sort into a clean Plex/Jellyfin layout, Fix Match / Fix Location overrides, a sandboxed admin file browser, auto-grab subscriptions, a scan report for unmatched files, notifications (Discord/Telegram/ntfy/Gotify/webhook), and a cinematic dark/light UI with a mobile layout.

Running it

Docker, with bundled Jackett + Transmission:

git clone https://github.com/Harrsn/faucet.git
cd faucet
cp .env.example .env        # set JACKETT_API_KEY, SESSION_SECRET, client creds
docker compose up -d
# open http://localhost:8088

Or pull the published image:

docker pull ghcr.io/harrsn/faucet:latest

First run: register the admin account, add your Jackett key + TMDb key in
Settings, hit Test connections, then import library. Full setup in
[docs/SETUP.md](https://github.com/Harrsn/faucet/blob/main/docs/SETUP.md).

Set a fixed SESSION_SECRET so logins survive restarts. Generate one with:
python3 -c "import secrets; print(secrets.token_urlsafe(48))"

Notes

  • Single container, single config — no multi-service stack to run and update.
  • Works with Transmission, qBittorrent, or Deluge (one env var to switch).
  • Python 3.10+ · MIT licensed · CI tested on 3.10/3.11/3.12.
  • You're responsible for what you download and for complying with the law where you live.

Full configuration reference: [README](https://github.com/Harrsn/faucet/blob/main/README.md) · Client hooks: [docs/HOOKS.md](https://github.com/Harrsn/faucet/blob/main/docs/HOOKS.md)