mirror of
https://github.com/BreizhHardware/ntfy_alerts.git
synced 2026-01-18 16:37:28 +01:00
Add the bash script for login and update the readme.md
This commit is contained in:
43
README.md
43
README.md
@@ -1,2 +1,45 @@
|
|||||||
# ntfy_alerts
|
# ntfy_alerts
|
||||||
Personal ntfy alerts system
|
Personal ntfy alerts system
|
||||||
|
|
||||||
|
|
||||||
|
# Python ntfy.py
|
||||||
|
## Description:
|
||||||
|
This script is used to watch the github repos and send a notification to the ntfy server when a new release is published.
|
||||||
|
## Utilisation:
|
||||||
|
````python
|
||||||
|
python ntfy.py <auth> <ntfy_url>
|
||||||
|
````
|
||||||
|
auth: can be generataed by the folowing command: echo -n 'username:password' | base64
|
||||||
|
ntfy_url: the url of the ntfy server including the topic
|
||||||
|
|
||||||
|
Acctualy the watched repos list is hardcoded in the ntfy.py file under the name of watched_repos_list.
|
||||||
|
## TODO:
|
||||||
|
- [ ] Add the watched repos list as a parameter
|
||||||
|
- [ ] Add the watched repos list as a file
|
||||||
|
- [ ] Add the watched repos list as a database
|
||||||
|
- [ ] Add the watched repos list as a web interface
|
||||||
|
# Bash setup-notify.sh
|
||||||
|
## Description:
|
||||||
|
This script is used to setup the ntfy notification system on ssh login for a new server.
|
||||||
|
## Utilisation:
|
||||||
|
````bash
|
||||||
|
bash setup-notify.sh <ntfy_url> <username> <password> <topic>
|
||||||
|
````
|
||||||
|
ntfy_url: the url of the ntfy server
|
||||||
|
username: the username of the user
|
||||||
|
password: the password of the user
|
||||||
|
topic: the topic of the notification
|
||||||
|
|
||||||
|
This script will create a send-notify.sh in the root of your disk and add the login-notify.sh to the /etc/profile.d/ folder.
|
||||||
|
# Bash send-notify.sh
|
||||||
|
## Description:
|
||||||
|
This script is used to send a notification to the ntfy server.
|
||||||
|
## Utilisation:
|
||||||
|
````bash
|
||||||
|
bash send-notify.sh <ntfy_url> <basic_auth> <topic> <message>
|
||||||
|
````
|
||||||
|
ntfy_url: the url of the ntfy server
|
||||||
|
basic_auth: the basic auth of the user
|
||||||
|
topic: the topic of the notification
|
||||||
|
message: the message of the notification
|
||||||
|
|
||||||
|
|||||||
63
setup-notify.sh
Normal file
63
setup-notify.sh
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Script pour créer les fichiers login-notify.sh et send-notify.sh dans /etc/profile.d/
|
||||||
|
|
||||||
|
# Contenu du fichier login-notify.sh
|
||||||
|
LOGIN_NOTIFY_CONTENT="#!/bin/bash
|
||||||
|
|
||||||
|
NTFY_URL=\$1
|
||||||
|
username=\$2
|
||||||
|
password=\$3
|
||||||
|
Basic=\$(echo -n \"\$username:\$password\" | base64)
|
||||||
|
TOPIC=\$4
|
||||||
|
|
||||||
|
IP=\"\$(echo \"\${SSH_CONNECTION}\" | awk -F' ' '{print \$1}')\" # ne fonctionne pas pour une connexion locale
|
||||||
|
DATE=\"\$(date)\"
|
||||||
|
NAME=\"\$(whoami)\"
|
||||||
|
NB_USERS=\$(who | wc -l)
|
||||||
|
|
||||||
|
MESSAGE=\"
|
||||||
|
New login to \${HOSTNAME} server!
|
||||||
|
\\\"\${NAME}\\\" from \\\"\${IP}\\\"
|
||||||
|
\${NB_USERS} users connected
|
||||||
|
\${DATE}
|
||||||
|
\"
|
||||||
|
|
||||||
|
/send-notify.sh \"\${NTFY_URL}\" \"\${Basic}\" \"\${TOPIC}\" \"\${MESSAGE}\"
|
||||||
|
"
|
||||||
|
|
||||||
|
# Contenu du fichier send-notify.sh
|
||||||
|
SEND_NOTIFY_CONTENT="#!/bin/bash
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
if [ \"\$#\" -ne 4 ]; then
|
||||||
|
echo \"Usage: \$0 <ntfy_url> <basic_auth> <topic> <text message>\"
|
||||||
|
echo \"Help basic_auth: \\\"echo -n 'testuser:fakepassword' | base64\\\"\"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
NTFY_URL=\$1
|
||||||
|
BASIC_AUTH=\$2
|
||||||
|
TOPIC=\$3
|
||||||
|
TEXT=\$4
|
||||||
|
|
||||||
|
RES=\$(curl -i -s -X POST -H \"Authorization: Basic \${BASIC_AUTH}\" -d \"\${TEXT}\" \"\${NTFY_URL}/\${TOPIC}\")
|
||||||
|
STATUS_CODE=\$(echo \"\$RES\" | head -n 1 | awk -F' ' '{print \$2}')
|
||||||
|
|
||||||
|
if [[ \$STATUS_CODE -ne 200 ]] ; then
|
||||||
|
echo \"error while sending alert\"
|
||||||
|
echo \"\${RES}\"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
"
|
||||||
|
|
||||||
|
# Création des fichiers
|
||||||
|
echo "$LOGIN_NOTIFY_CONTENT" | sudo tee /etc/profile.d/login-notify.sh > /dev/null
|
||||||
|
echo "$SEND_NOTIFY_CONTENT" | sudo tee /send-notify.sh > /dev/null
|
||||||
|
|
||||||
|
# Attribution des permissions
|
||||||
|
sudo chmod +x /etc/profile.d/login-notify.sh /send-notify.sh
|
||||||
|
|
||||||
|
echo "Fichiers créés avec succès dans /etc/profile.d/ et /"
|
||||||
|
|
||||||
Reference in New Issue
Block a user