Repository navigation
Releases: Harrsn/faucet
Release list
Faucet 2.6.0
Faucet now works hand in hand with Plex, finds the episodes nobody's seeding, and lets each profile say what kind of file it wants.
Highlights
- Plex integration. When Faucet files a download it asks Plex to scan just that folder, so new episodes appear in Plex within seconds instead of at the next scheduled scan. Faucet libraries pair with Plex's automatically by folder name; adjust any in Settings → Integrations → Plex.
- Watched status. Show pages mark the episodes you've watched in Plex and count them per season; movie pages show Watched. Synced every 30 minutes, matched by TMDb id.
- Hard-to-find episodes. Old episodes that only exist on thinly seeded releases are no longer refused forever: after a week aired and four fruitless searches, the hunter accepts releases down to one seeder (better-seeded ones still win; dead grabs are replaced automatically). Settings → Hunting.
- Format rules in quality profiles. Prefer HEVC for smaller files or H.264 for players that can't decode it; prefer, avoid or refuse HDR; preferred and never release groups; never grab releases containing words like
HCorKORSUB.
Full details: CHANGELOG.md
Faucet 2.4.0
Security and visibility: two-factor sign-in, passkeys, and a clear record of everything the hunter grabbed.
Highlights
- Two-factor sign-in. Authenticator codes (Bitwarden, 1Password, Google or Microsoft Authenticator) with ten one-time recovery codes. Required for admins, optional for members. Codes can't be replayed, and wrong ones count toward sign-in throttling.
- Passkeys. Sign in with Face ID, Touch ID, Windows Hello, a security key or your password manager — from a button or straight from the username field. No password, no code; phishing-resistant. Manage them on the new Account page.
- Grab history. Activity → Grabs shows every grab with why it was picked ("picked from 4 of 11 found; skipped 2 wrong show, 5 too few seeders") and what became of it.
- Blocklist. Activity → Blocklist shows the releases Faucet won't grab again, problems first, with Allow again.
- Pinned dependencies. Exact, hash-checked versions in the image and CI; upgrades arrive as Dependabot pull requests instead of silently on rebuild.
Fixes
- ⋯ menus no longer get cut off inside lists.
- A sign-in page left open across an upgrade now says to refresh instead of looping.
Upgrading
Admins are asked to set up two-factor at their next sign-in (Account page). Have your authenticator app ready. FAUCET_REQUIRE_ADMIN_2FA=0 turns the requirement off.
Full details: CHANGELOG.md
Faucet 2.3.0
Faucet now knows who should see what, puts your shows in your calendar, and tells you when something needs attention.
Highlights
-
Per-user library access. Limit a member to some libraries (Settings → Users & requests → ⋯ → Library access). They then see only those everywhere: sidebar, Home, Calendar, search, and every show and movie page. The server enforces it, so a direct link to anything hidden returns "not found". Their approved requests are filed into their library automatically, and requesting something that's in a library they can't see says so without revealing where.
-
Calendar feed. Calendar → Subscribe on your phone gives you a private link for Apple, Google or Outlook calendars: every episode of your shows, two weeks back to three months ahead, refreshing every few hours and limited to the libraries you can see. The link is shown once and only a hash is stored. Making a new one revokes the old, and a disabled account's link stops working.
-
Alerts. Faucet messages your notification targets once when a problem starts and once when it clears, and shows it on Home while it lasts. It watches for:
- an indexer failing every search for an hour
- a library's or the downloads folder's disk under 10% free
- the download client not answering for 10 minutes
- the same episode or movie stalling three times in a day
- Faucet restarting after an unclean exit (killed, out of memory, power loss — not a deploy)
Each check and threshold is adjustable in Settings → Integrations → Alerts, with Check now.
Also in this release
- New icon: the gold drop from the app, as the browser favicon and the README logo. The favicon is content-hashed like the rest of the interface, so future changes show on the next load.
- New README with fresh screenshots, plus a bundled
docker-compose.ymlthat puts media and downloads on one mount, so finished downloads move into the library by instant rename instead of a full copy.
Upgrading
Nothing to do. Existing members keep seeing every library until you limit them; alerts are on by default and go to your existing notification targets.
Full details: CHANGELOG.md
Faucet 2.2.0
The biggest release since 1.0: a new interface, settings that live in the app, and a hunter that searches every indexer at once.
Highlights
- A new interface that feels like Plex. Sidebar sections for every library, a home page with a featured backdrop and rails, show and movie pages with season cards and episode stills, ⌘K search across your library, TMDb and every indexer, and Discover, Calendar, Requests, Activity and Wanted pages. Works on phones.
- Setup wizard. A fresh install opens on "Welcome to Faucet": create the admin account, then connect libraries, the download client, Jackett and TMDb, and import what's on disk.
- Settings in the app. Libraries, integrations (with per-indexer health), path mappings, quality profiles, users and requests, hunting and maintenance are all edited in Settings and apply on the next run, no restart.
- Parallel, structured search. Each indexer is queried on its own, at the same time, with season, episode and ID searches where it supports them. A slow or broken indexer only costs its own results.
- Many libraries, like Plex. Add as many as you like; each is its own section, every title has a library it's saved to, and its downloads are filed there.
- Instant moves. Faucet shows whether finished downloads move into each library by rename or by copy, and the bundled compose now puts media and downloads on one mount so they rename.
- Faster pages. Home and Activity never wait on a slow download client.
Upgrading from 1.x
- Settings that lived in
faucet.envor the environment are imported into the database on first start; after that, environment values for them are ignored (a startup warning names any it skips). - The classic UI (
/classic) is gone. - Existing installs skip the setup wizard.
Full details: CHANGELOG.md
Faucet v1.0.0
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_SECRETso 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)