Maintainerr makes managing your media easy.
- Do you hate being the janitor of your server?
- Do you have a lot of media that never gets watched?
- Do your users constantly request media, and let it sit there afterward never to be touched again?
If you answered yes to any of those questions... You NEED Maintainerr. It's a one-stop-shop for handling those outlying shows and movies that take up precious space on your server.
- Configure rules specific to your needs, based on several available options from Plex, Jellyfin, Seerr, Radarr, Sonarr and Tautulli.
- Switch between Plex and Jellyfin as your media server, with automatic rule migration.
- Manually add media to a collection, in case it's not included after rule execution. (one-off items that don't match a rule set)
- Selectively exclude media from being added to a collection, even if it matches a rule.
- Show a collection, containing rule matched media, on the media server home screen for a specific duration before deletion. Think "Leaving soon".
- Optionally, use a manual collection, in case you don't want Maintainerr to add & remove collections at will.
- Manage media straight from the collection within your media server. Maintainerr will sync and add or exclude media to/from the internal collection.
- Remove or unmonitor media from *arr
- Clear requests from Seerr
- Delete files from disk
Currently, Maintainerr supports rule parameters from these apps :
Docker images for amd64 & arm64 are available under ghcr.io/maintainerr/maintainerr and maintainerr/maintainerr.
Data is saved within the container under /opt/data, it is recommended to tie a persistent volume to this location in your docker run command/compose file. Make sure this directory is read/writeable by the user specified in the 'user' instruction. If no 'user' instruction is configured, the volume should be accessible by UID:GID 1000:1000.
For more information, visit the installation guide.
Docker run:
docker run -d \
--name maintainerr \
-e TZ=Europe/Brussels \
-v ./data:/opt/data \
-u 1000:1000 \
-p 6246:6246 \
--restart unless-stopped \
ghcr.io/maintainerr/maintainerr:latestDocker-compose:
services:
maintainerr:
image: ghcr.io/maintainerr/maintainerr:latest # or maintainerr/maintainerr:latest
container_name: maintainerr
user: 1000:1000
volumes:
- type: bind
source: ./data
target: /opt/data
environment:
- TZ=Europe/Brussels
# - BASE_PATH=/maintainerr # uncomment if you're serving maintainerr from a subdirectory
# - UI_HOSTNAME=:: # uncomment if you want to listen on IPv6 instead (default 0.0.0.0)
# - UI_PORT=6247 # uncomment to change the UI port (default 6246)
# - GITHUB_TOKEN=ghp_yourtoken # Optional: GitHub Personal Access Token for higher API rate limits (60/hr without, 5000/hr with token)
ports:
- 6246:6246
restart: unless-stoppedFor more information, please consult the documentation
To get an indication of which features are most desired, you can vote for them
Maintainerr is heavily inspired by Seerr (Overseerr / Jellyseerr). Some parts of Maintainerr's code are plain copies. Big thanks to the Seerr team!



