reddit-post-notifier

reddit-post-notifier

Docker app from mcreekmore's Repository

Overview

Get notified for new Reddit posts that match your search criteria. Copy the example config: https://github.com/RafhaanShah/Reddit-Post-Notifier/blob/master/config.yaml.example

Reddit Post Notifier

Get notified for new Reddit posts that match your search criteria.

screenshot

Prerequisites

  • A Reddit account
  • Reddit API client_id and client_secret, see here for more detailed instructions
  • A notification service supported by Apprise and the required API keys or other configuration for your chosen services

Building

Install Requirements:

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Upgrade Dependencies:

pip install pipreqs
pip install --upgrade -r requirements.txt
pipreqs --force --ignore .venv

Installation

  • If you have Python installed, you can clone the repository and directly run the Python file
  • You can download the latest release artifact from GitHub Releases
  • If you have Docker installed, you can run the Docker image

Configuration

  • The configuration is stored inside a yaml file, you can copy config.yaml.example into a new file config.yaml use that as a base, the following sections are all required:
  1. Apprise configuration urls as a list, for your chosen providers

    apprise:
      - discord://webhook_id/webhook_token
      - join://apikey/device
      - slack://TokenA/TokenB/TokenC/
    
  2. Reddit configuration with your app details, it is also recommended to put your username in the agent field but it can be anything you want. You can also configure the notification_title and notification_body with placeholders for details of the post. Available placeholders for notifications are: {TITLE}, {SUBREDDIT}, {URL}, {FLAIR}

    reddit:
      client: xxxxxxxxxx
      secret: xxxxxxxxxxxxxxxxxxxx_xxxxxxxxxx
      agent: reddit-post-notifier (u/xxxxxx)
      notification_title: "{SUBREDDIT} - {TITLE}"
      notification_body: "{URL}"
    
  3. Subreddit configuration with your desired filters for each subreddit you want to monitor, make sure this key appears under the reddit key, with proper indentation, and using single quotes if needed. All filters are optional. Filters are additive so if you include 3 filters they ALL must all match for the post to pass. The following options are supported:

    • title: filters posts to those that DO include ANY of the listed terms in the title (case insensitive)

      subreddits:
        - gamedeals:
            title:
              - "free"
              - "100%"
      
    • not_title: filters posts to those that DO NOT include ANY of the listed terms in the title (case insensitive)

      subreddits:
        - hmm:
            not_title:
              - "hmm"
              - "mmh"
      
    • flair: filters posts to those that DO include ANY of the listed terms in the flair (case insensitive)

      subreddits:
        - Catswhoyell:
            flair:
              - "Scream Team"
              - "Human Conversationalist"
      
    • not_flair: filters posts to those that DO NOT include ANY of the listed terms in the flair (case insensitive)

      subreddits:
        - ATBGE:
            not_flair:
              - "Fashion"
              - "Decor"
      
    • The following example will match posts in r/NotARealSub where all of the following are true:

      1. The title includes any of: Hello, Hi
      2. The title does not include any of Bye, Ciao
      3. The flair is any of Cool Post,Good Post
      4. The flair is not any of Boring Post, Bad Post
      subreddits:
        - NotARealSub:
             title:
               - "Hello"
               - "Hi"
             not_title:
               - "Bye"
               - "Ciao"
             flair:
               - "Cool Post"
               - "Good Post"
             not_flair:
               - "Boring Post"
               - "Bad Post"
      

Optional

  • RPN_CONFIG environment variable or --config argument can be used to change the location of the config file, the default is config.yaml relative to where app.py is, app/config.yaml in the Docker image.
  • RPN_LOGGING environment variable or --logging argument can be set to TRUE to enable logging each matched post to the console as well.

Usage

  • Python: python app.py --config config.yaml
  • Executable: ./rpn --config config.yaml
  • Docker: docker run -v /path/to/your/config.yaml:/app/config.yaml ghcr.io/rafhaanshah/reddit-post-notifier:latest
  • Docker-Compose:
services:
  reddit-post-notifier:
    container_name: reddit-post-notifier
    image: ghcr.io/rafhaanshah/reddit-post-notifier:latest
    restart: unless-stopped
    volumes:
      - ./config.yaml:/app/config.yaml

Troubleshooting

License

MIT

Install reddit-post-notifier on Unraid in a few clicks.

Find reddit-post-notifier in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for reddit-post-notifier Review the template variables and paths Click Install

Categories

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/rafhaanshah/reddit-post-notifier:latest
Last Updated2026-07-17
First Seen2025-04-29

Runtime arguments

Network
bridge
Shell
sh
Privileged
false

Template configuration

Path: /app/config.yamlPathrw
Target
/app/config.yaml
Default
/mnt/user/appdata/reddit-post-notifier/config.yaml
Value
/mnt/user/appdata/reddit-post-notifier/config.yaml
RPN_CONFIGVariable

RPN_CONFIG environment variable can be used to change the location of the config file, the default is config.yaml relative to where app.py is, app/config.yaml in the Docker image.

Default
config.yaml
Value
config.yaml
RPN_LOGGINGVariable

RPN_LOGGING environment variable can be set to TRUE to enable logging each matched post to the console as well.

Default
FALSE
Value
FALSE