Commit graph

13 commits

Author SHA1 Message Date
soulis-1256
54f3aaa7cd
Close the wiring blank gap and label uninstall removals.
Skip wait newlines when an API key is already present, and say
config/media were removed instead of listing them like a live status.
2026-08-19 00:05:43 +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
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
e11ac87d7a
Fix Jellyfin empty-series after Sonarr season-pack imports
Fire Sonarr refresh once on import complete, skip a second
/Library/Refresh so it cannot cancel a running scan, and heal
series that still show 0 episodes despite video on disk.
2026-08-14 11:45:10 +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
c2920808eb
Harden media-purge qB matching and refresh Jellyfin on delete.
Prefer history hashes filtered by library folder key, then exact folder-key
match only (no sequel prefix hits). Refuse ambiguous multi-matches. Ignore
partial file-delete events. Best-effort Jellyfin library refresh after purge.
2026-08-12 14:26:27 +03:00
soulis-1256
7339d1b8b4
Add seerr-gateway so delete request fully purges media.
Stock Seerr only drops the request row; intercept DELETE /api/v1/request/:id
to cascade media file delete (*arr + purge hooks) before removing the request.
2026-08-12 14:06:49 +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
b4d792f2b0
Add assemblrr upgrade engine with git/--from transport and Bazarr migration.
Introduce managed-file apply, ordered migrations, backup-first upgrade CLI,
and migration 001_add_bazarr (skip if user already defined Bazarr). Local
--from uses the same apply path as production git fetch of main.
2026-08-11 22:34:34 +03:00
soulis-1256
8cb601f9e7
Prepare install bind mounts before any container starts
Docker creates missing volume parents as root, which broke setup after
the early VPN test (config/ owned by root). Add prepare_install_dirs,
call it before VPN test and full compose up, and reuse it on CLI start.
2026-08-05 14:18:24 +03:00
soulis-1256
1fd188a5c4
Use .env.example as the env template and cover it with tests
Generate INSTALL_DIR/.env from .env.example via envsubst, drop
templates/envsubst.env, and add a unit test that keeps the template
keys aligned with setup. Tighten related docs and test helpers.
2026-08-05 14:01:04 +03:00
soulis-1256
3ddedb4d15
Add unit/integration tests under tests/ and clean up related docs
Move live watchdog smoke out of scripts/, drop the old ad-hoc test
scripts, and simplify uninstall + README CLI/optional-stack wording.
2026-08-05 13:43:45 +03:00