Commit graph

24 commits

Author SHA1 Message Date
soulis-1256
0115f9d648
Standardize quality profiles to 4K/1080p, disable recycle bin, add migration 003, and update API docs 2026-08-20 18:29:09 +03:00
soulis-1256
f2e1377468
Isolate request-delete queue drains and support WEB/BluRay quality profiles 2026-08-20 18:06:46 +03:00
soulis-1256
784977aeee
Use one quality choice for Radarr, Sonarr, and Seerr.
Express asks the same question as manual. The pick is stored as
QUALITY_TIER and applied to movies and TV, including Seerr. Compose
up hides sidecar Dockerfile output behind a spinner.
2026-08-18 23:07:29 +03:00
soulis-1256
31b7ab8cc0
Make Prowlarr wiring logs say what happened
Indexer add-but-not-on is a full sentence. VPN search routing
talks about searches, not Gluetun HTTP proxies. Do not invent
FlareSolverr or paste our own jargon around Prowlarr's error.
2026-08-16 22:11:00 +03:00
soulis-1256
d1686a846d
Say why a Prowlarr indexer was left off
Replace the jargon "enabled save failed" with a plain note that
Prowlarr could not test the indexer.
2026-08-16 21:59:49 +03:00
soulis-1256
881403b128
Route Prowlarr indexer HTTP through Gluetun
Enable Gluetun's HTTP proxy and add it as a Prowlarr indexer proxy
when VPN is on so searches leave via the tunnel, not the host ISP.
Remove the managed proxy when VPN is off. Log the real Prowlarr error
when an indexer can only be saved disabled, instead of always blaming
FlareSolverr.
2026-08-16 21:58:54 +03:00
soulis-1256
edac50f8a2
Fix specials wipe, leftover torrent dirs, and default-stack pins
Keep TV specials when a request covers only regular seasons. Encode
first-run passwords, default missing config-show fields, and strip
Windows CRLF on Python, Dockerfiles, and migrations. Pin express-stack
images. After Sonarr title delete, remove leftover torrents/ dirs even
when qB already dropped the torrent. Document that only the default
stack is supported.
2026-08-16 21:19:15 +03:00
soulis-1256
7d2d0d1770
Do not remap existing *arr titles when applying quality defaults
Add New still opens on the assemblrr profile. Library movies and
shows keep whatever quality profile they already have.
2026-08-16 16:29:43 +03:00
soulis-1256
962e322fdb
Add config apply, full auth change, and *arr quality defaults
Re-wire without replacing compose. Update the shared login on every
UI. Make assemblrr quality profiles the Radarr/Sonarr Add New default.
config edit is picker-only. Forward Seerr Host headers, chmod only the
VPN secrets just written, and ignore Python cache files.
2026-08-16 15:58:48 +03:00
soulis-1256
d4808f96a5
Fix remaining merge-review correctness bugs
Hold media-purge-watch when *arr shows a queue or upgrade delete.
config edit vpn retargets Radarr/Sonarr qB host and clears tun0 when
VPN is off. Start waits on the service catalog (missing ≠ ready).
Empty indexer confirm no longer wipes Prowlarr. Wire only minSeeders.
Existing-media import is optional.
2026-08-16 14:56:36 +03:00
soulis-1256
bdd5f263b5
Tick elapsed seconds on blocking waits, not just API polls
Recyclarr sync, backup/restore archives, git fetches, and Prowlarr
indexer sync now use wait_while/wait_inline. Compose up/pull keep
their own progress instead of a fake overlay.
2026-08-16 14:40:25 +03:00
soulis-1256
1149dfaae4
Show elapsed seconds on wait lines instead of dots
Radarr and the other polls now rewrite one line as
'Waiting for Radarr API (12s)' instead of a growing dot trail.
2026-08-16 14:36:25 +03:00
soulis-1256
9ac07caf12
Scope TV request-delete to requested seasons
Seerr's DELETE /api/v1/media/:id/file is title-scoped and would wipe
every remaining season. For a TV request that is only a subset, the
gateway now deletes those Sonarr episode files and unmonitors them,
then drops the request. Movies and last remaining seasons still use
the title-level cascade.

media-purge --seasons and the inotify watcher match that: a season
path never title-purges (other seasons may only be monitored). qB
cleanup requires a season token, refuses multi-season and S01-03
packs, and uses the same title-boundary rules as title-level. *arr
recycle bin is /data/media/.recycle with 7-day cleanup.

Sonarr uncertainty (missing key, failed episodefile list, empty TV
season list) returns 502 and leaves the request. The gateway mounts
config/sonarr/ as a directory so first install cannot replace
config.xml with a Docker-created directory.
2026-08-16 12:04:27 +03:00
soulis-1256
710540fc40
Add modular config edit and wait for healthy services
Section-based `config edit` (setup vs edit copy), qB Automatic Torrent
Management so category folders are used, upgrade --skip-stack/--skip-wire,
and a port-forwarding warning instead of a provider allowlist.
2026-08-13 21:50:59 +03:00
soulis-1256
0696a83e2d
Fix fresh-install stalls and harden default-on sidecars
qBittorrent 5.x does not bind WireGuard's tun0 unless told to, so tracker
and DHT packets left via eth0 and Gluetun dropped them (stalledDL). Bind
the session to tun0 on VPN installs. Build sidecar images on the host
instead of apk at start, move vpn-watchdog off Gluetun's netns, ignore
non-video inotify events, and stop start/upgrade from aborting or
re-prompting.
2026-08-13 01:25:20 +03:00
soulis-1256
0858a5a629
Drop Portainer from default stack; harden upgrade and setup UX
Remove Portainer from managed compose and catalog; leave a custom.yaml
example for optional use. Upgrade/start use compose --remove-orphans and
migration 002 removes leftover Portainer containers unless custom.yaml
keeps it. Fix setup double URL list when status is unhealthy, share
OpenSubtitles y/N on express, and tone down indexer/provider prompts.
2026-08-12 15:26:21 +03:00
soulis-1256
c180732db1
Add media purge cascade, seed defaults, and wire on upgrade.
Hardlink-safe cleanup: Seerr/Jellyfin/*arr deletes remove library files and
qB torrents via purge hooks and media-purge-watch. Indexers get seed ratio/time
so completed downloads can leave torrents/. Upgrade always re-wires services;
drop user-facing config sync. Live e2e covers Radarr, Seerr, and Jellyfin APIs.
2026-08-12 13:19:49 +03:00
soulis-1256
c00377844e
Import existing media into Radarr/Sonarr during config sync.
Unmapped folders under movie/TV roots are looked up and added with the
default quality profile (no search), then rescanned and synced to Bazarr.
Enables Netflix-like reinstall/keep-media and fills Bazarr for disk libraries.
2026-08-11 23:05:48 +03:00
soulis-1256
188975fea2
Fail setup when service wiring critically fails
Track required vs optional wiring steps with real exit codes, stop
claiming success after partial failures, and note Jellyfin import scan
in the README.
2026-08-05 18:12:37 +03:00
soulis-1256
35b408d441
Replace configure/reconfigure with config show/edit/sync
Collapse the confusing dual commands into one config surface, rename
configure.sh to config.sh, and keep deprecated aliases for older installs.
2026-08-05 18:01:54 +03:00
soulis-1256
a97d6e58ed
Fix indexer min-seeders apply order and expand README features
Set the Prowlarr app profile before fullSync, wait for Radarr indexers,
then patch *arr minimumSeeders once. Expand Features & Philosophy to
match the install, CLI, VPN, and quality-profile behavior.
2026-08-05 16:40:49 +03:00
soulis-1256
bd126b704e
Fix quality profile setup and split Recyclarr into include packs
Always sync HD/UHD (and Sonarr WEB) as include packs, name them with
an assemblrr prefix, soften blocking CF scores, zero quality minSize,
relax minimumSeeders, and update Seerr on reconfigure. Document TRaSH
guide drift and tighten comments and uninstall messaging.
2026-08-05 16:12:47 +03:00
soulis-1256
15a929d2ef
Use lowercase assemblrr as the product name
Rename display branding and prose from Assemblrr to assemblrr for
a consistent identity across docs, CLI messages, and source comments.
2026-08-05 14:05:14 +03:00
soulis-1256
e9f356cffd
Initial commit
Assemblrr: Docker-based bootstrap and wiring for a self-hosted media stack.
2026-08-04 23:42:34 +03:00