The current working Importarr flow on example-host is split across legacy systemd units and /usr/local/sbin scripts. The periodic folder-surveillance behavior is provided by manual-media-import.timer, which runs manual-media-import.service every 15 minutes.
For the repo-managed reinstall, this timer/worker behavior must be represented in the repository and installed from the repository, not left as a legacy host-local remnant.
Current legacy behavior to preserve
manual-media-import.timer
OnBootSec=5min
OnUnitActiveSec=15min
AccuracySec=1min
Persistent=true
runs manual-media-import.service
manual-media-import.service
oneshot folder surveillance/import run
currently executes /usr/local/sbin/manual-media-import.py
failure notification currently goes through manual-media-import-failure.service and ha-critical-notify.py.
Desired repo-managed behavior
Add repo-owned systemd unit/timer templates for the worker/timer.
Install them through the example-host repo install script.
The worker must run from the packaged repo install/venv, not /usr/local/sbin.
The timer must remain enabled on example-host after reinstall.
Existing operational logs/state should either be preserved or explicitly migrated.
Failure notification behavior must be preserved or replaced with an equivalent documented system-driven notification.
Acceptance criteria
Fresh example-host install from repo creates/enables the worker service and timer.
systemctl list-timers manual-media-import.timer shows the repo-installed timer active.
A manual systemctl start manual-media-import.service run uses repo-installed code.
Public Importarr UI/API still shows queue/status based on the worker state.
No /usr/local/sbin/manual-media-import.py dependency remains after reinstall.
Documentation explains the update workflow: push repo update → pull on example-host → reinstall/restart service/timer.
## Problem
The current working Importarr flow on example-host is split across legacy systemd units and `/usr/local/sbin` scripts. The periodic folder-surveillance behavior is provided by `manual-media-import.timer`, which runs `manual-media-import.service` every 15 minutes.
For the repo-managed reinstall, this timer/worker behavior must be represented in the repository and installed from the repository, not left as a legacy host-local remnant.
## Current legacy behavior to preserve
- `manual-media-import.timer`
- `OnBootSec=5min`
- `OnUnitActiveSec=15min`
- `AccuracySec=1min`
- `Persistent=true`
- runs `manual-media-import.service`
- `manual-media-import.service`
- oneshot folder surveillance/import run
- currently executes `/usr/local/sbin/manual-media-import.py`
- watches/imports from:
- `/srv/scrypted/sabnzbd-data/downloads/manual`
- legacy migration path `/srv/scrypted/sabnzbd-data/downloads/danish`
- writes/imports into:
- `/srv/media/movies`
- `/srv/media/tv`
- status/log side effects used by the UI:
- `/run/manual-media-import/status.json`
- `/var/log/manual-media-import.log`
- `/var/lib/importarr/manual-batches.json`
- failure notification currently goes through `manual-media-import-failure.service` and `ha-critical-notify.py`.
## Desired repo-managed behavior
- Add repo-owned systemd unit/timer templates for the worker/timer.
- Install them through the example-host repo install script.
- The worker must run from the packaged repo install/venv, not `/usr/local/sbin`.
- The timer must remain enabled on example-host after reinstall.
- Existing operational logs/state should either be preserved or explicitly migrated.
- Failure notification behavior must be preserved or replaced with an equivalent documented system-driven notification.
## Acceptance criteria
- Fresh example-host install from repo creates/enables the worker service and timer.
- `systemctl list-timers manual-media-import.timer` shows the repo-installed timer active.
- A manual `systemctl start manual-media-import.service` run uses repo-installed code.
- Public Importarr UI/API still shows queue/status based on the worker state.
- No `/usr/local/sbin/manual-media-import.py` dependency remains after reinstall.
- Documentation explains the update workflow: push repo update → pull on example-host → reinstall/restart service/timer.
daniels
changed title from Repo-manage manual-media-import timer and folder surveillance on dgsserver1 to Repo-manage manual-media-import timer and folder surveillance on example-host2026-07-29 14:18:58 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Problem
The current working Importarr flow on example-host is split across legacy systemd units and
/usr/local/sbinscripts. The periodic folder-surveillance behavior is provided bymanual-media-import.timer, which runsmanual-media-import.serviceevery 15 minutes.For the repo-managed reinstall, this timer/worker behavior must be represented in the repository and installed from the repository, not left as a legacy host-local remnant.
Current legacy behavior to preserve
manual-media-import.timerOnBootSec=5minOnUnitActiveSec=15minAccuracySec=1minPersistent=truemanual-media-import.servicemanual-media-import.service/usr/local/sbin/manual-media-import.py/srv/scrypted/sabnzbd-data/downloads/manual/srv/scrypted/sabnzbd-data/downloads/danish/srv/media/movies/srv/media/tv/run/manual-media-import/status.json/var/log/manual-media-import.log/var/lib/importarr/manual-batches.jsonmanual-media-import-failure.serviceandha-critical-notify.py.Desired repo-managed behavior
/usr/local/sbin.Acceptance criteria
systemctl list-timers manual-media-import.timershows the repo-installed timer active.systemctl start manual-media-import.servicerun uses repo-installed code./usr/local/sbin/manual-media-import.pydependency remains after reinstall.Repo-manage manual-media-import timer and folder surveillance on dgsserver1to Repo-manage manual-media-import timer and folder surveillance on example-host