Se utilizziamo Gotify come sistema di notifiche self-hosted, potremmo voler ricevere gli avvisi direttamente su Telegram tramite un bot personale.

Gotify è uno strumento leggero e potente per la gestione delle notifiche push su server Linux o ambienti Docker. Integrare Gotify con Telegram ci permette di ricevere notifiche in tempo reale su smartphone, desktop o qualsiasi dispositivo su cui utilizziamo Telegram, senza dipendere esclusivamente dall’app ufficiale e, ovviando al problema della mancanza di un app ufficiale su iOS

In questa guida vedremo passo dopo passo come configurare un’integrazione tra Gotify e Telegram, creando un bot personale che inoltri automaticamente tutte le notifiche push.

Requisiti:


Configurazione del Bot Telegram

Per prima cosa, rechiamoci su Telegram e nella barra di ricerca cerchiamo BotFather, successivamente avviamo, se non lo abbiamo mai fatto, il BOT:

Appena il bot si è avviato lanciamo il comando /newbot, successivamente dobbiamo scegliere un nome ed uno username a questo punto verrà creato il BOT e ci verrà dato un API Token, che dobbiamo copiare e conservare (ci servirà tra poco):

Adesso ci servirà conoscere il nostro Telegram ID, per farlo avviamo il BOT CaptainID, a video riceveremo un messaggio contenente il nostro Telegram ID:

Copiamo anche questo codice e chiudiamo Telegram (per il momento non ci servirà).

Creazione del Client Gotify

Una volta creato il bot ed appuntanto API Token e Telegram ID, dobbiamo collegarci al nostro server gotify sul nostro browser ed effettuare il login.

Successivamente dobbiamo cliccare sulla sezione “Clients”, solitamente in alto a destra e successivamente su “Create client”:

Diamo un nome qualsiasi e successivamente clicchiamo su “Create

Adesso dalla lista copiamo il Token generato e salviamolo:

Installazione di Gotify2Telegram

Accediamo al nostro server Gotify e rechiamoci nella directory di gotify-server, nel caso di questo tutorial è stata creata su /data/gotify-server, Il percorso potrebbe variare in base alla modalità di installazione che abbiamo scelto:

cd /data/gotify-server

Per prima cosa, stoppiamo il container docker:

docker compose down

Adesso andiamo a modificare il nostro docker-compose.yml integrando l’applicativo di gotify2telegram, quindi sul terminale digitiamo:

nano docker-compose.yml

E successivamente aggiungiamo (in basso alla configurazione già esistente) la seguente:

# DA AGGIUNGERE DOPO GOTIFY SERVER    
    gotify-2-telegram:
    restart: unless-stopped
    image: rhombusthere/gotify2telegram:latest
    volumes:
      - .env:/app/.env

Ecco un esempio completo:

A questo punto salviamo, cliccando “CTRL”+“X” e confermiamo con “Y”. Adesso andiamo a definire il file di enviroment (.env), quindi creiamolo con nano:

nano .env

Copiamo il seguente codice, inserendo i parametri del nostro bot e del nostro gotify server:

TELEGRAM_BOT_TOKEN=8094563534:AAFOF1jgxsPtlXzS46_dwj27LrPoDDJi8ic # Token generato da @BotFather
TELEGRAM_NOTIFICATION_ID=590277553 # L'ID utente del nostro profilo Telegram
NOTIFICATION_SERVER=127.0.0.1:8000 # Indirizzo IP e porta del nostro server gotify
NOTIFICATION_CLIENT_TOKEN=CP4fvzbdYRXhElm # Client token creato

Salviamo, cliccando “CTRL”+“X” e confermiamo con “Y”.

Compilato il file .env procediamo effettuando il pull dell’immagine ed avviando il container:

docker compose pull && docker compose up -d

Adesso effettuiamo una prova e se tutto funziona correttamente riceveremo il messaggio dal nostro BOT Telegram, quindi nel terminale digitiamo:

curl "https://gotify.dominio.com/message?token=<IL_TOKEN_DEL'APP>" -F "title=Questo è un test" -F "message=Ciao, sei bellissimo. Ti è arrivato su Telegram?" -F "priority=0"

Ecco la risposta del BOT: