release-bot

release-bot

Docker app from grtgbln's Repository

Overview

A Telegram bot that monitors the releases of given repos, sending messages upon a new release.

Telegram Chat Python 3.12 GitHub license Latest build Maintainability

release-bot - a Telegram bot that notifies you of new GitHub releases

This is a Telegram bot that monitors the releases of given repos, sending messages upon a new release.

If you don't need a local installation you can use public bot, avalaible at https://t.me/janisreleasebot.

Screenshot

Alternatives

This bot is inspired by new(releases), Github releases notify bot and release-bot.

Other similar tools:

  • Dockcheck - CLI tool to automate docker image updates;
  • Renovate - Automated dependency updates

Features

  • Easy subscription to repo by owner/name, GitHub/PyPI/npm URL or uploading requirements.txt or package.json file
  • Rich markdown formatting for release note
  • Auto subscription to starred repos
  • Ready for self-hosting, has docker image
  • Work locally, without white IP and domain name
  • Only Telegram token required

Commands

/start - show welcome message
/about - information about this bot
/help - brief usage info
/list - show your subscriptions
/editlist - show and edit your subscriptions
/starred username - subscribe to user's starred repos
/starred - unsubscribe from user's starred repos
/settings - change output format
/stats - basic server statistics
/test URL - show specified release message

Stack

  • Python 3.12
  • Flask
  • telegramify_markdown
  • sulguk
  • python-telegram-bot
  • PyGithub
  • APScheduler via Flask-APScheduler
  • SQLAlchemy via Flask-SQLAlchemy
  • Alembic via Flask-Migrate - SQLAlchemy database migrations

Running it yourself

With docker

Using docker compose:

services:
  release-bot:
    container_name: release-bot
    image: ghcr.io/janisv/release-bot:latest
    restart: unless-stopped
    environment:
      - TELEGRAM_BOT_TOKEN=<telegram_token>
      #- GITHUB_TOKEN=<github_token> # optional
      #- SITE_URL=https://<your_domain_name> # optional
    ports:
      - 5000:5000
    volumes:
      - /path/to/data:/app/data

or docker run:

docker run -p 5000:5000 -e TELEGRAM_BOT_TOKEN="<telegram_token>" -v /path/to/data:/app/data -d --name release-bot ghcr.io/janisv/release-bot:latest

From source

Look at Development section

Set the necessary env vars

TELEGRAM_BOT_TOKEN - get this from BotFather. You'll need to create a bot.

GITHUB_TOKEN - (optional) GitHub personal access token (classic) or fine-grained personal access token. When not specified working well for about 20 repos. More info at Rate limits for the REST API.

SITE_URL - (optional) URL used for listening for incoming requests from the Telegram servers. When not specified uses polling instead webhooks. More info at Marvin's Marvellous Guide to All Things Webhook.

CHAT_ID - (optional) Only messages from the specified chat ID are accepted. Can be a comma separated list. You can get your chat ID with @getmyid_bot. If not specified, all messages are accepted.

DATABASE_URI - (optional) When not specified local SQLite uses.

MAX_REPOS_PER_CHAT - (optional) Limit number of repos per user. Default 0 - unlimited.

LOG_LEVEL - (optional) Default INFO.

GITHUB_POLL_INTERVAL - (optional) How often to poll GitHub, minutes. Default 60.

Development

Setup env vars and run:

pip3 install -r requirements.txt
flask db upgrade
python3 -m flask run -h 0.0.0.0

For use webhooks locally, you may want to use localhost.run.

Install release-bot on Unraid in a few clicks.

Find release-bot 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 release-bot Review the template variables and paths Click Install

Requirements


        Requires creating a Telegram bot and obtaining the token. See documentation: https://github.com/JanisV/release-bot?tab=readme-ov-file#set-the-necessary-env-vars
    

Related apps

Details

Repository
ghcr.io/janisv/release-bot:latest
Last Updated2026-07-17
First Seen2024-10-26

Runtime arguments

Web UI
http://[IP]:[PORT:5000]
Network
bridge
Privileged
false

Template configuration

Web UI PortPorttcp

Container Port: 5000

Target
5000
Default
5000
Value
5000
Telegram Bot TokenVariable

Token for the Telegram bot

Target
TELEGRAM_BOT_TOKEN
Maximum repositories per chatVariable

Maximum number of repositories a chat can monitor. 0 for unlimited

Target
MAX_REPOS_PER_CHAT
Default
0
Value
0
GitHub TokenVariable

Token for the GitHub API. If not provided, restricted by rate limiting

Target
GITHUB_TOKEN
Site URLVariable

URL of the site to listen for incoming requests from Telegram. If not provided, will use polling instead of webhooks

Target
SITE_URL
Database URIVariable

URI for the database. If not provided, will use SQLite database

Target
DATABASE_URI
Data PathPathrw

Path to data (SQLite) storage

Target
/app/data
Default
/mnt/user/appdata/release_bot/data
Value
/mnt/user/appdata/release_bot/data