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.
For more information, please consult the documentation
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 \
maintainerr/maintainerr:latestDocker-compose:
version: '3'
services:
maintainerr:
image: maintainerr/maintainerr:latest # or ghcr.io/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-stopped| Tag | Description |
|---|---|
| latest | Stable Release (recommended) |
| development | Dev Version |
A list of all available environment variables are below. No other env variables are officially supported by Maintainerr. These are added either into the compose file or your docker run command.
| Variable | Default Value | Description |
|---|---|---|
| TZ | host timezone | Controls date formatting in logs. |
| UI_HOSTNAME | 0.0.0.0 | The listen host of the web server. Can be set to :: for IPv6. |
| UI_PORT | 6246 | The listen port of the web server. |
| BASE_PATH | (none) | If reverse proxying with a subfolder you'll want to set this. Must be in the format of /subfolder |
| GITHUB_TOKEN | (none) | GitHub Personal Access Token for higher API rate limits |
- Configure rules specific to your needs, based on several available options from Plex, Overseerr, Jellyseerr, Radarr, Sonarr and Tautulli.
- 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 Plex home screen for a specific duration before deletion. Think "Leaving soon".
- Optionally, use a manual Plex collection, in case you don't want Maintainerr to add & remove Plex collections at will.
- Manage media straight from the collection within Plex. Maintainerr will sync and add or exclude media to/from the internal collection.
- Remove or unmonitor media from *arr
- Clear requests from Overseerr
- Delete files from disk
Currently, Maintainerr supports rule parameters from these apps :
- Plex
- Overseerr
- Jellyseerr
- Radarr
- Sonarr
- Tautulli

