Este projeto é um serviço web que monitora eventos e envia notificações para diferentes canais (Slack, Telegram e e-mail), além de reiniciar containers Docker quando necessário.
webhook.py
: Arquivo principal contendo a lógica do Flask para receber webhooks, enviar notificações e reiniciar containers.config.json
: Arquivo de configuração contendo as informações dos canais (Slack, Telegram e e-mail).
- Python 3.8+
- Docker
- Flask
- Requests
- smtplib (para envio de e-mails)
-
Clone o repositório:
git clone https://github.com/oMaestro174/webhook-notify.git cd webhook-notify
-
Crie um ambiente virtual e instale as dependências:
python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows pip install -r requirements.txt
-
Configure o
config.json
com suas informações de Slack, Telegram e e-mail.
{
"telegram": {
"alertasCetif": {
"token": "SEU_TELEGRAM_BOT_TOKEN",
"chat_id": "SEU_CHAT_ID"
},
"outroCanal": {
"token": "SEU_OUTRO_TOKEN",
"chat_id": "SEU_OUTRO_CHAT_ID"
}
},
"slack": {
"alertas": "https://hooks.slack.com/services/SEU/WEBHOOK/URL",
"outroCanal": "https://hooks.slack.com/services/OUTRO/CANAL/WEBHOOK"
},
"email": {
"smtp_server": "smtp.seudominio.com",
"smtp_port": 587,
"smtp_user": "[email protected]",
"smtp_password": "sua_senha",
"recipients": [
"[email protected]",
"[email protected]"
]
}
}
- Inicie o servidor Flask:
python webhook.py
- O servidor estará disponível em http://0.0.0.0:5000.
- Slack: /webhook/slack/
- Telegram: /webhook/telegram/
- Email: /webhook/email
Exemplko de payload
{
"monitor": {
"name": "Nome do Monitor"
},
"heartbeat": {
"status": 1,
"localDateTime": "2023-05-26T12:34:56",
"timezone": "America/Sao_Paulo"
},
"msg": "Mensagem de teste"
}
- Faça um fork do projeto.
- Crie uma branch para sua feature (git checkout -b feature/fooBar).
- Faça commit das suas alterações (git commit -am 'Add some fooBar').
- Faça push para a branch (git push origin feature/fooBar).
- Crie um novo Pull Request.
Distribuído sob a licença MIT. Veja LICENSE para mais informações.