Sign inSign up

dossantosd/private_ntfy_server

By dossantosd

•Updated about 2 years ago

Serveur de notifications Push(NTFY)

Image
Web servers
0

299

dossantosd/private_ntfy_server repository overview

⁠Private_NTFY_server

Image basé sur alpine:latest permettant le déploiement d'un serveur de notifications Push(NTFY).

Voir le projet sur GitHub⁠

Capture d'écran

⁠Fonctionnalités implémentées

  • Configuration en HTTPS (Certificat autosigné) par défaut.
  • Mise en place de webpush.
  • Permet l'utilisation de variables d'environnement pour configurer le serveur.
  • Création d'un utilisateur administrateur par défaut(admin).
  • Sécurisation et interdiction des connexions anonymes.
  • Possibilité de fournir un certificat SSL en créant un volume sur le dossier /etc/ntfy/user_cert du conteneur, alors le certificat sera détecté et intégré à la configuration du serveur.

⁠Les différentes variables d'environnement utilisables

VariableDescription
DOMAIN_NAMEURL pour accéder à l'interface web, https://localhost⁠ par défaut.
EMAIL_ADDRESSAdresse email pour la configuration de webpush (optionnel).
DEFAULT_ACCESSDéfinit les droits d’accès par défaut, Configuration par défaut avec "deny-all" ce qui permet d’avoir une instance complètement privée, valeurs possibles: read-write, read-only, write-only et deny-all.
CACHE_DURATIONDurée de stockage des messages en cache, par défaut c’est 24h.
ATTACHMENT_TOTAL_SIZE_LIMITTaille limite du cache concernant les pièces jointes, par défaut 10G.
ATTACHMENT_FILE_SIZE_LIMITTaille limite des pièces jointes par fichier, par défaut 1 Go.
ATTACHMENT_EXPIRY_DURATIONDurée après laquelle les pièces jointes téléchargées seront supprimées, par défaut 72h.
KEEPALIVE_INTERVALIntervalle pendant lequel les messages keepalive sont envoyés au client, dans le but d’empêcher les intermédiaires de fermer la connexion pour cause d’inactivité,par défaut c'est 55 secondes.
LOG_LEVELNiveau de journalisation(logs), par défaut "warn", valeurs possibles: panic, fatal, error, warn, info et debug/trace.

⁠Usage

⁠Création de conteneurs avec docker run
⁠Valeurs par défaut

docker run -d -p 443:443 dossantosd/private_ntfy_server:latest

⁠Avec variables d'environnement modifié

docker run -d -p 443:443 -e DOMAIN_NAME='noti.exemple.ex' -e EMAIL_ADDRESS='[email protected]' dossantosd/private_ntfy_server:latest

⁠Avec un certificat SSL personnel

docker run -d -p 80:80 -p 443:443 -v /home/user/cert/:/etc/ntfy/user_cert/ dossantosd/private_ntfy_server:latest

  • Le nouveau certificat sera détecté et intégré à la configuration automatiquement.
⁠Utilisation de NTFY
⁠Connexion à l'interface web

Si on est sur l'ordinateur où docker est installé alors aller à l'adresse https://localhost⁠ ou https://127.0.1.1⁠.

Si vous êtes sur un autre ordinateur sur le réseau local, alors utilisez l'adresse IP du système où docker est installé, exemple https://192.168.1.35⁠.

⁠Utilisation de curl pour envoyer les messages

curl -k -u admin:admin -d "Hi" https://192.168.1.35/test01

  • 192.168.1.35 est l'adresse IP du système gérant le conteneur.
  • -k ou --insecure : Ignore les erreurs liées au certificat SSL, à utiliser seulement pour les certificats autosigné.
  • test01 est l'adresse du topic(sujet).
  • admin:admin, nom et mot de passe de l'utilisateur admin, ne pas oublié de changer le mot de passe par défaut sur l'interface web.
  • -d, c'est le corps du message.
⁠Identifiants

L'utilisateur administrateur "admin" est créé par défaut, son mot de passe est admin.

⁠Les différents volumes

Chemin dans le conteneurDescription
/etc/ntfy/user_certDossier contenant le certificat SSL donné par l'utilisateur.
/var/cache/ntfyDossier contenant le cache des messages.
/etc/ntfyDossier où se trouve le fichier de configuration du serveur server.yml.
/var/lib/ntfy/attachmentsDossier abritant le cache des pièces jointes.

⁠Le dépannage

Cette image contient un script qui se lance à chaque création ou démarrage d'un conteneur, ce script permet de configurer le serveur via les variables d'environment et autre.

Si vous avez démarré un conteneur et que celui-ci s'éteint directement c'est probablement une erreur engendré par une mauvaise saisie d'une variable d'environment, pour avoir les messages de log du conteneur il faut qu'au démarrage du conteneur monter le dossier /var/log du conteneur, exemple avec une erreur sur la variable EMAIL_ADDRESS :

docker run -v $(pwd)/logs_myntfy/:/var/log/ -e EMAIL_ADDRESS="ex@[email protected]" -p 443:443 -itd dossantosd/private_ntfy_server:latest && cat logs_myntfy/ntfy.log

2024-07-13__21:08:56 EMAIL_ADDRESS=ex@[email protected] : Adresse e-mail invalide

Tag summary

Content type

Image

Digest

sha256:c9920eec5…

Size

32.2 MB

Last updated

about 2 years ago

docker pull dossantosd/private_ntfy_server