Skip to main content

A simple telegram bot for dirvish

Project description

# Dirvish Telegram Bot
This is a simple telegram-bot for the backupsoftware [dirvish]( that will notify you if a backup has failed.

## Features
- Register with the bot
- add user to the bot (unregistered users are not able to do anything)
- subscribe/unsubscribe to failed backup notification
- show the current backup status

## Installation
To install this bot you have to run one of the following commands:
pip install dirvishbot
git clone && cd dirvishbot && pip install .

## Update
To update simply run
pip install --upgrade dirvishbot
git clone && cd dirvishbot && pip install --upgrade .

## Configuration
### 1. Create a new telegram bot
- Start conversation with `@botfather`
- Send `/newbot` and follow the instructions of `@botfather` until you got your bot token.

Further informations about how to create a new bot:
### 2. Create `config.json`
You have to create a config.json with the telegram bot token in it. To do this you could copy the `config.example.json` to `/etc/dirvishbot/config.json` and replace the example `api_token` with yours:
cp /etc/dirvishbot/config.json.example /etc/dirvishbot/config.json
The `config.json` should look like the following:

### 3. Trigger dirvishbot after the backup-process
The dirvishbot listens to the signal `SIGUSR1` to check the state of all backups and informs all subscribers if one of the backups has failed.

With the following line the dirvishbot will be notified:
bash -c 'kill -s SIGUSR1 $(< /var/run/'
You can put this line just before `exit $rc` in `/etc/dirvish/dirvish-cronjob` to start the backup-check after dirvish has finished.

## Run
If you have systemd installed the `dirvishbot.service` file will be placed to `/etc/systemd/system/dirvishbot.service` and you can start it with:
systemctl start dirvishbot
To check the status run
systemctl status dirvishbot

If you do not use `systemd` you can start this bot by running
dirvishbot &

## Usage
### First start
If you start the dirvishbot for the first time you have to register your telegram-user as admin.
To do this you need a token that will be saved in `/etc/dirvishbit/register`:

cat /etc/dirvishbot/register
This is your first start of the Bot.
Please register your admin-user within the next hour by sending the following to this Bot:
/register <TOKEN>

After the first start you have one hour to register an admin-user with this bot until the token invalidates and you have to restart the bot to get a new token.

**Note that the first user that will send the `/register <TOKEN>` to your bot will become the administrator.**

To reset the bot simple stop it, delete every line but `"api_token": ...` from the `config.json`-file and restart the bot.

### Commands
To run a command, send one of the following messages to your telegram-bot from your telegram-client:
- `/start`: Sends you a welcome message with an introduction (every user)
- `/register <TOKEN>`: registers the sender with this bot if `<TOKEN>` is valid. (every user)
- `/adduser`: generates a token for your contact that will be able to run the `/register`-command. The token invalidates after 24 hours. (only admins)
- `/subscribe`: enable notification of failed backups (every registered user)
- `/unsubscribe`: disable notification of failed backups (every registered user)
- `/status <AMOUNT>`: show the current status of the <AMOUNT> (DEFAULT=1) of last backups. (every registered user).

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for dirvishbot, version 0.0.8
Filename, size File type Python version Upload date Hashes
Filename, size dirvishbot-0.0.8.tar.gz (20.1 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page