Skip to content

About

Telegram bot for emergency notifications via Pushover — wakes you up with a siren even on silent

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Pushover Bot

Pushover Bot

Telegram Bot Python aiogram License

Telegram bot for emergency notifications via Pushover. Wakes you up with a siren even when your phone is on silent. Add the bot to a group — any member can send an emergency alert to everyone or a specific person.

Note: Group Privacy Mode must be disabled in BotFather. Otherwise the bot won't receive messages in groups (except commands and replies). If it was enabled, remove and re-add the bot to the group.

Features

  • Emergency alerts — Pushover Priority 2, bypasses quiet hours, repeats every 30s until acknowledged
  • Group chats — /gm sends a siren to all subscribed members
  • Targeted notifications — /pgm (reply or @username), /gm @username, /gm user_id
  • Custom text — /gm hello or /pgm @username wake up
  • Inline mode — type @bot name text in a group; works even where the bot misses commands
  • Cancel repeats — the sender can stop the siren with a button under the result
  • Quiet hours — /quiet: alerts from others arrive silently, without repeats
  • Blocks — /block a person, or refuse all personal alerts with /personalgms off
  • Message archiving — saves all group messages to DB with media files
  • HTML export — searchable archive with media thumbnails
  • Broadcast — mass messaging for admins
  • Rate limiting and multi-language support (EN, RU, UK)

Quick Start

git clone https://github.com/DefaultPerson/pushover-bot.git
cd pushover-bot
cp .env.example .env
nano .env  # fill in BOT_TOKEN, PUSHOVER_APP_TOKEN, DB_PASSWORD
docker compose -f docker-compose.full.yml up -d

docker-compose.full.yml runs PostgreSQL, Redis, and the bot together.

For a fresh VPS, deploy with a single command:

curl -fsSL https://raw.githubusercontent.com/DefaultPerson/pushover-bot/main/scripts/deploy.sh | bash

Commands

Private chat

Command Description
/key Set up Pushover User Key
/list Groups with active notifications
/test_alarm Send a test siren to yourself
/quiet 23:00-07:00 Europe/Kyiv Daily quiet hours; also /quiet once 23:00-07:00, /quiet 8h, /quiet off
/block @username / /block user_id Stop alerts from a person; /unblock, /blocks
/personalgms on|off Accept or refuse personal alerts
/language Change language
/id Your Telegram id

Group chat

Command Description
/gm Alert everyone
/gm text Alert everyone with custom text
/gm @username Alert a specific member
/gm @username text Specific member with custom text
/gm user_id Alert by user ID
/pgm [text] (reply) / /pgm @username [text] Personal alert; never wakes the whole group
@bot [name] [text] Inline: pick everyone or a person from the list
/enable / /disable Toggle notifications
/block (reply) Stop alerts from this person
/id Ids of you, the chat, the topic and the replied person
/only_admin Restrict /gm to admins only
/confirm_gm Ask "Wake N people?" before a group alert (admins)

Inline mode

Enable it once in BotFather: /setinline → choose the bot → set a placeholder such as name and text…. Telegram delivers messages posted through inline mode even to a non-admin bot in privacy mode.

Configuration

See .env.example for all available environment variables.

Variable Description Default
BOT_TOKEN Telegram Bot Token required
PUSHOVER_APP_TOKEN Pushover App Token required
DB_PASSWORD PostgreSQL password required
ADMIN_IDS Admin Telegram IDs (comma-separated)
DEFAULT_TIMEZONE Timezone for /quiet when the user gives none UTC
ARCHIVE_ENABLED Archive group messages false

Development

uv pip install -e libs/aiogram-broadcast
uv pip install -e .
make run

License

This project is licensed under the MIT License.

About

Telegram bot for emergency notifications via Pushover — wakes you up with a siren even on silent

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages