Maintainerr¶
Maintainerr helps keep a media library lean by finding content that matches your rules, presenting it in a media-server collection, and optionally removing or unmonitoring it after a delay. It supports Plex, Jellyfin, or Emby as the media server and can use Sonarr, Radarr, Seerr, and Tautulli data when evaluating rules.
Overview¶
Maintainerr provides:
- Rule-based library review - Combine media-server, Arr, Seerr, and Tautulli fields into cleanup rules.
- Leaving-soon collections - Show matched content in Plex, Jellyfin, or Emby before action is taken.
- Delayed actions - Choose how long matched media remains available before removal.
- Arr and Seerr cleanup - Unmonitor or delete Sonarr/Radarr media and clear related Seerr requests.
- Manual safety controls - Test media against a rule and exclude individual items from cleanup.
Review rules before enabling deletion
Begin with collection-only rules, test representative media, and use a non-zero action delay. File deletion is intentional and may not be recoverable from DUMB.
Default port and data¶
| Service | Port | Persistent data |
|---|---|---|
| Maintainerr | 6246 | /maintainerr/data |
Maintainerr's primary SQLite database is /maintainerr/data/maintainerr.sqlite. DUMB preserves the entire data directory across source updates.
Configuration settings in dumb_config.json¶
"maintainerr": {
"enabled": false,
"process_name": "Maintainerr",
"repo_owner": "Maintainerr",
"repo_name": "Maintainerr",
"release_version_enabled": false,
"release_version": "latest",
"commit_sha": "",
"branch_enabled": false,
"branch": "development",
"suppress_logging": false,
"log_level": "INFO",
"port": 6246,
"auto_update": false,
"auto_update_interval": 24,
"auto_update_start_time": "04:00",
"clear_on_update": true,
"exclude_dirs": [
"/maintainerr/data"
],
"platforms": [],
"command": [
"node",
"apps/server/dist/main.js"
],
"config_dir": "/maintainerr",
"log_file": "/maintainerr/data/logs/maintainerr.log",
"env": {
"NODE_ENV": "production",
"UI_HOSTNAME": "0.0.0.0",
"UI_PORT": "{port}",
"DATA_DIR": "/maintainerr/data",
"BASE_PATH": "",
"VERSION_TAG": "stable",
"UV_USE_IO_URING": "0"
}
}
Configuration key descriptions¶
enabled: Whether DUMB starts Maintainerr.release_version_enabled/release_version: Pin a tagged upstream release. With pinning disabled, DUMB bootstraps the latest stable release on first install.commit_sha: Build an exact Maintainerr revision from its full 40-character GitHub SHA. It overrides release/branch selection, disables automatic updates, and is treated as a development/source build for data compatibility.branch_enabled/branch: Build an upstream source branch instead of a stable release. Upstream does not support moving a development data directory back to stable.port: Maintainerr's web UI and API port.auto_update: Check for and install newer releases using DUMB's update scheduler.clear_on_update/exclude_dirs: Replace application source and build output while retaining/maintainerr/data.config_dir: Maintainerr source and runtime directory.env.BASE_PATH: DUMB keeps this blank because its embedded UI proxy supplies the service context while Maintainerr continues to run at its own root path.
Initial setup¶
- Enable Maintainerr during DUMB onboarding or from its service configuration.
- Start Maintainerr. The first source download and Yarn production build can take longer than a normal restart.
- Open Maintainerr from its DUMB service page or browse directly to
http://<host>:6246when that port is published. - Select one media server: Plex, Jellyfin, or Emby.
- Add any Sonarr, Radarr, Seerr, or Tautulli integrations used by your rules. Services inside the same DUMB container can normally use
127.0.0.1and their configured ports. - Create a collection-only rule, test several media items, and confirm the resulting collection before enabling an unmonitor or delete action.
Maintainerr owns its application configuration inside its SQLite database; there is no separate DUMB-managed settings file to edit.
Updates, backups, and rollback¶
- DUMB rebuilds Maintainerr from the selected official release or branch and preserves
/maintainerr/data. - Back up
maintainerr.sqlitebefore major upgrades or destructive rule changes. Maintainerr also provides a database backup action in its General settings. - Database migrations may make an older release incompatible with newer data. To downgrade, restore a database backup created before the upgrade and then pin the matching Maintainerr release.
- Database Health Monitoring can observe the Maintainerr SQLite file in Standard or Enhanced read-only mode when you explicitly enable monitoring for this service.
Reverse proxy safety¶
Maintainerr controls destructive library actions, so treat its UI as an administrative service. If you publish it beyond a trusted network, add an authentication layer with Traefik Proxy Admin or another reverse proxy and verify the protection before sharing the hostname.