(name suggested by u/DaJorsh on Reddit)
A simple aggregator for notification from Sonarr, Radarr and Lidarr.
(Theme song: Informer by Snow - Youtube Link)
What can it do:
- Configurable pause (in hours)
- Customizable movie, episode and song entries
- Notification to Telegram
- Notification to Discord
| Logs | Telegram | Discord |
|---|---|---|
![]() |
![]() |
![]() |
| (click on screenshot to enlarge) |
I mainly chose to create this to be used with Docker.
Made with the wonderful lsiobase/alpine as a base image.
You can find the image on Docker Hub here
-
Here's the
docker runcommand needed to start it up:docker run -d \ --name notificator \ --restart=always \ -e PGID=1000 -e PUID=1000 \ -p 5445:5445 \ -v /some/folder/to/store/your/data:/data \ bonny1992/informrr:latestAt the first run it will create the database and the config needed in the folder
/data(I suggest you to mount it as a volume in thedocker runcommand). Plus, at the very first start, it will generate a random string which you will need to access the "notificator webhook". -
Then, I suggest you to stop the container so you can start editing the
config.ymlfile needed.docker stop notificatorYou can find it in your chosen folder during the container run (
/some/folder/to/store/your/data).The
config.ymlexplaination can be found later. -
Now you can start the container again:
docker start notificator -
That's it, you can configure the webhook in Sonarr and Radarr with the url you will find in the
/some/folder/to/store/your/datafolder in the fileurl.txt, in theConnecttab underSettings, asOn ImportandOn Upgrade.
| Key | Content |
|---|---|
| enable_telegram | You can enable or disable Telegram notifications here |
| enable_discord | You can enable or disable Discord notifications here |
| skip_hours | Time between one notification and the next one (in hours) |
| discord_webhook | (Standard) Discord webhook |
| telegram_bot_token | Telegram bot token (Obtained from BotFather bot) |
| telegram_chat_id | Telegram chat id of where you want the notificator to sends messages to |
| safe_key | Safe key generated if empty or first run. You can however customize it how you please (I think, I did not try). |
| timezone | Your timezone, to customize log entries. Example: Europe/London |
| start_quiet | The hour where the quiet mode starts (if you want the quiet mode to start at 21 till 9, write here 21) |
| end_quiet | The hour where the quiet mode ends (if you want the quiet mode to start at 21 till 9, write here 8, as it counts till 8:59) |
| domain | Your domain. Example: notificator.domain.com. The program will add the https:// part, so you should reverse proxy this. |
| custom_quiet_mode_message | You can customize the header of the quiet mode message here. Example: SILENT NOTIFICATION HERE! (Works only with Telegram) |
| custom_tv_entry | Customizable TV episode entry. Available keys: {SERIES}, {SEASON}, {EPISODE}, {TITLE}, {QUALITY}, {TIME}. See below for explaination and examples. |
| custom_movie_entry | Customizable movie entry. Available keys: {TITLE}, {YEAR}, {QUALITY}, {IMDB_LINK}, {TIME}. See below for explaination and examples. |
| custom_track_entry | Customizable track entry. Available keys: {ARTIST}, {TITLE}, {TRACK_NUMBER}, {QUALITY}, {TIME}. See below for explaination and examples. |
| custom_too_long_message | Customizable message for when the message is too long (Max 4000 characters for Telegram and 2000 for Discord). Available keys: {N_TV}, {N_MOVIE}, {N_TRACK}. See below for explaination and examples. |
| Key | Content | Example |
|---|---|---|
{SERIES} |
Name of the series. | Lucifer |
{SEASON} |
Two digit number of the season. | 01 |
{EPISODE} |
Two digit number of the episode. | 02 |
{TITLE} |
Title of the episode. | Lucifer, Stay. Good Devil. |
{QUALITY} |
Quality of the episode. | HDTV-1080 |
{TIME} |
Time (hh:mm) of the received notification |
08:30 |
Let's say we write a custom entry like this:
{TIME} - {SERIES} S{SEASON}E{EPISODE} - {TITLE} - {QUALITY}
Using the same examples as above, we get:
08:30 - Lucifer S01E02 - Lucifer, Stay. Good Devil. - HDTV-1080
You can also customize it with Markdown syntax (please refer to Telegram and Discord documentation).
| Key | Content | Example |
|---|---|---|
{TITLE} |
Title of the movie. | The Godfather |
{YEAR} |
Four digit number of the year of the release of the movie. | 1972 |
{QUALITY} |
Quality of the movie release. | Blueray-1008p |
{IMDB_LINK} |
Link to the movie IMDB page in Markdown syntax | [IMDB Link](https://www.imdb.com/title/tt0068646/) |
{TIME} |
Time (hh:mm) of the received notification |
08:30 |
Let's say we write a custom entry like this:
{TIME} - {TITLE} ({YEAR}) - {QUALITY} - {IMDB_LINK}
Using the same examples as above, we get:
08:30 - The Godfather (1972) - Blueray-1008p - [IMDB Link](https://www.imdb.com/title/tt0068646/)
Which, will result like this, in Telegram and Discord:
08:30 - The Godfather (1972) - Blueray-1008p - IMDB Link
You can also customize it with Markdown syntax (please refer to Telegram and Discord documentation).
| Key | Content | Example |
|---|---|---|
{ARTIST} |
Name of the musician. | Red Hot Chili Peppers |
{TRACK_NUMBER} |
Two characters long number of the track on the release. | A1 |
{TITLE} |
Title of the track. | Around the World |
| {QUALITY} | Quality of the track. | FLAC |
| {TIME} | Time (hh:mm) of the received notification | 08:30 |
Let's say we write a custom entry like this:
{TIME} - {ARTIST} - {TRACK_NUMBER} - {TITLE} | {QUALITY}
Using the same examples as above, we get:
08:30 - Red Hot Chili Peppers - A1 - Around the World - FLAC
You can also customize it with Markdown syntax (please refer to Telegram and Discord documentation).
You can, however, install this without the use of Docker (though I did not test it, also I'm not an expert).
I'm assuming you will use Linux - I used Fedora Remix on Windows' WSL
- Python 3 (I used 3.8 but I believe any recent version of 3 would work)
- Pip
- Knowledge with systemd or
- Tmux or similar software
- Some way to reverse proxy it, I personally use nginx-proxy with Letsencrypt on Docker, but you could use Caddy or whatever you want.
-
Clone this repository
git clone https://github.com/bonny1992/informrr.git ~/notificator -
Go into the repository folder and in the
/appfoldercd ~/notificator/app -
Install dependencies
pip install -r requirements.txt -
Edit this line in
~/notificator/app/utils/__init__.pyfile:DATA_PATH = '/data'with whatever folder you want (will be created on first start, be sure you have permissions to do that)
-
Now you will have to see how you want to start the programs, if as services or manually, for example with
tmux- With systemd:
- Sorry, not so much experience here, create two files to run
python ~/notificator/app/main.pyandpython ~/notificator/app/notifiator.pyfor systemd; reload the daemon and enable them.
- Sorry, not so much experience here, create two files to run
- With tmux:
- Run
tmux new -s notificator_webhook - Run
python ~/notificator/app/main.py - Press your
detachkey combination (Default should beCTRL + B then D) - Run
tmux new -s notificator_notify - Run
python ~/notificator/app/notificator.py - Press your
detachkey combination (Default should beCTRL + B then D) - Enjoy!
- But not that much because you will have to redo this process everytime you reboot the system.
- Run
- With systemd:
I ultimately suggest you to run this with Docker, or at the very least with systemd.
I have a very little experience with git or GitHub, as I use this majorly as a "cloud" for my (very crappy) code when I go from a PC to another.
So feel like to contribute as you like!
I still haven't tested this with Vagrant, sorry.
- Eh honestly a better error handling, right now it's pretty large.
- Lidarr support
- More entry customization
- Maybe a web page for customizing things?
- I'm accepting suggestions :D
I wrote this as I grew tired of the too many notifications I received when using Sonarr and Radarr, I hope you will find this useful too, even if it's not exactly polished or even... Good!


