Browser-based control plane for Unpackerr that runs in Docker. It provides:
- Unpackerr install and upgrade actions from the UI
- Start/stop/restart runtime controls
- Live log/event monitoring
- Editable, validated TOML settings persisted to a Docker volume
- Copy env template:
cp .env.example .env- Adjust host paths in
.env:
HOST_DOWNLOADS_PATH-> your actual downloads directoryHOST_MEDIA_PATH-> your media/library root (optional)
- Build and run:
docker compose up -d --build- Open:
http://localhost:8080
Use portainer-stack.yml if you want to deploy from Portainer.
- Stack file:
portainer-stack.yml - Host bind set for your downloads:
/Volume2/Media/downloads:/downloads
Important: this stack uses build: so deploy it from Git repository mode in Portainer (repo URL + compose path), not the plain Web Editor with no source context.
- Monitor: live stream of Unpackerr output (SSE) and runtime status.
- Lifecycle: install, upgrade, start, stop, restart.
- Settings: edit and validate TOML config, then save.
Inside container:
- Config:
/data/config/unpackerr.conf - Binary:
/data/bin/unpackerr - Logs:
/data/logs/unpackerr.log
All of these persist in Docker volume unpackerr_data.
GET /api/healthGET /api/unpackerr/statusPOST /api/unpackerr/installPOST /api/unpackerr/upgradePOST /api/unpackerr/startPOST /api/unpackerr/stopPOST /api/unpackerr/restartGET /api/unpackerr/logs?limit=200GET /api/unpackerr/events(SSE)GET /api/unpackerr/configPUT /api/unpackerr/configPOST /api/unpackerr/config/validate
- Start stack:
docker compose up -d --build - Confirm health:
curl http://localhost:8080/api/health - In Lifecycle, click Install then Start
- In Monitor, verify event stream updates
- In Settings, edit config, validate, save
- Restart stack and verify config persists
- Unpackerr release is fetched from GitHub latest release API.
- Current installer expects a Linux amd64 release asset.
- If you want arm64 support, extend
pickAsset()inbackend/src/services/unpackerrManager.ts.