User Tools

Site Tools


operations:lifecycle_management

Application Lifecycle Management (Updates)

While the base operating systems handle their own security patches via the configurations in Unattended Upgrades, the application layer requires manual, sequenced updates to prevent breaking API dependencies between Prowlarr, Sonarr, and Overseerr.

1. The Native Daemons (Plex, NGINX, qBittorrent)

Applications installed via standard Linux `apt` repositories can be updated natively.

  • Frequency: Monthly.
  • Execution: Run `sudo apt update && sudo apt upgrade -y` on the respective hosts (Media Engine, Edge Proxy, Acquisition Server).
  • Validation: For Plex, ensure hardware transcoding is still active post-update, as kernel upgrades can occasionally unhook the NVIDIA drivers.

2. The ARR Suite (.NET Binaries)

Applications installed directly into the `/opt/` directory (Sonarr, Radarr, Lidarr, Prowlarr) manage their own internal update branches.

  • Frequency: Bi-weekly (or as notified in the application UI).
  • Execution:

1. Log into the specific application WebUI.

  2. Navigate to **System โ†’ Updates**.
  3. Click **Install Latest**.
* **Architectural Guardrail:** Do NOT update all ARR applications simultaneously. Update Prowlarr first, verify indexer connectivity, and then update Sonarr/Radarr. 

3. Docker Containers (Unmanic, ByParr)

Docker images do not update themselves automatically unless paired with a tool like Watchtower (which is not recommended for destructive pipelines like Unmanic).

  • Frequency: Monthly.
  • Execution (Unmanic / Brawn Host):
    sudo docker pull josh5/unmanic:latest
    sudo docker stop unmanic
    sudo docker rm unmanic
    # Re-run the deployment string from [[services:unmanic]]
 
  • Execution (ByParr / Acquisition Host):
    cd /opt/byparr
    sudo docker-compose pull
    sudo docker-compose up -d
 
  • Cleanup: Run `sudo docker image prune -f` to delete old, dangling container images and free up NVMe space.

4. Node.js Applications (Overseerr)

Overseerr was cloned directly from GitHub and built locally using Node.js.

  • Frequency: Quarterly.
  • Execution (Requests Host VM-B):
    sudo systemctl stop overseerr
    cd /opt/overseerr
    git pull
    npm install
    npm run build
    sudo systemctl start overseerr
 
operations/lifecycle_management.txt ยท Last modified: by privacyl0st