ntfy

Auteur:Esadax
Mise à jour:19 sept. 2026

Guide d'installation du serveur ntfy

Ce guide fournit des instructions pour l'installation du serveur ntfy sur diverses distributions Linux, ainsi que d'autres systèmes d'exploitation. ntfy est un simple service de notification pub-sub basé sur HTTP.

Prérequis

  • Un système Linux (ou un autre OS pris en charge)
  • Accès root ou privilèges sudo
  • Une connexion internet pour télécharger les binaires et les paquets

1. Développement durable Installation manuelle à partir des sources (tarballs binaires)

Cette méthode fonctionne sur toutes les distributions Linux qui prennent en charge l'architecture spécifique de votre système.

Étape 1 : Identifiez votre architecture

Exécutez uname -m pour vérifier votre architecture:

  • x86_64 ou amd64
  • armv7 ou armhf
  • arm64 (armel)
  • armv6

Étape 2: Télécharger et extraire le binaire

Exemple pour x86_64/amd64:

wget https://github.com/binwiederhier/ntfy/releases/download/v2.28.0/ntfy_2.28.0_linux_amd64.tar.gz
tar zxvf ntfy_2.28.0_linux_amd64.tar.gz

Exemple pour armv7/armhf:

wget https://github.com/binwiederhier/ntfy/releases/download/v2.28.0/ntfy_2.28.0_linux_armv7.tar.gz
tar zxvf ntfy_2.28.0_linux_armv7.tar.gz

Exemple pour arm64:

wget https://github.com/binwiederhier/ntfy/releases/download/v2.28.0/ntfy_2.28.0_linux_arm64.tar.gz
tar zxvf ntfy_2.28.0_linux_arm64.tar.gz

Étape 3: Installez les fichiers binaires et de configuration

# Copy the binary to /usr/bin
sudo cp -a <architecture>/ntfy /usr/bin/ntfy

# Create config directory and copy files
sudo mkdir -p /etc/ntfy
sudo cp <architecture>/client/client.yml /etc/ntfy/
sudo cp <architecture>/server/server.yml /etc/ntfy/

Étape 4: Démarrer le serveur

sudo ntfy serve

2. Installation en tant que service système (Systemd)

Si vous voulez que le serveur démarre automatiquement au démarrage, utilisez systemd.

Prérequis

  • Assurez-vous que votre système d'exploitation utilise systemd (systemctl --version).
  • Vous devez avoir installé les fichiers binaires et de configuration à l'étape 1 ci-dessus.

Étapes

  1. Copier le fichier de l'unité de service:

    # Replace <architecture> with your system's architecture (e.g., amd64, armv7)
    sudo mv <architecture>/server/ntfy.service /etc/systemd/system/
    sudo chmod 644 /etc/systemd/system/ntfy.service
    
  2. Rechargez Systemd et démarrez le service:

    sudo systemctl daemon-reload
    sudo systemctl enable ntfy
    sudo systemctl start ntfy
    
  3. Vérifier le statut:

    sudo systemctl status ntfy
    

3. Développement Installer en tant que service système (OpenRC)

Pour les systèmes utilisant OpenRC (par exemple, Alpine Linux, Gentoo).

Étapes

  1. Copiez le script de service:

    # Replace <architecture> with your system's architecture
    sudo mv <architecture>/server/ntfy.openrc /etc/init.d/ntfy
    sudo chmod 755 /etc/init.d/ntfy
    
  2. Démarrer le service:

    sudo rc-service ntfy start
    
  3. Ajouter au niveau d'exécution par défaut (pour démarrer au démarrage) :

    sudo rc-update add ntfy default
    

4. Développement Installation via les dépôts de paquets

Debian/Ubuntu

Remarque: À partir de la fin de 2025, le dépôt officiel a déménagé à archive.ntfy.sh. L'ancien (heckel.io) est obsolète.

Utiliser APT (recommandé)

# Add keyring
sudo mkdir -p /etc/apt/keyrings
sudo curl -L -o /etc/apt/keyrings/ntfy.gpg https://archive.ntfy.sh/apt/keyring.gpg
sudo apt install apt-transport-https

# Add repository
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/ntfy.gpg] https://archive.ntfy.sh/apt stable main" | sudo tee /etc/apt/sources.list.d/ntfy.list

# Update and Install
sudo apt update
sudo apt install ntfy

Installation manuelle.deb

wget https://github.com/binwiederhier/ntfy/releases/download/v2.28.0/ntfy_2.28.0_linux_amd64.deb
sudo dpkg -i ntfy_*.deb
sudo systemctl enable ntfy
sudo systemctl start ntfy

Fedora/RHEL/CentOS

# Install RPM
sudo rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v2.28.0/ntfy_2.28.0_linux_amd64.rpm

# Enable and Start
sudo systemctl enable ntfy
sudo systemctl start ntfy

Arch Linux (en anglais)

Utiliser AUR Helper (Recommandé)

paru -S ntfysh-bin

Installation manuelle

curl https://aur.archlinux.org/cgit/aur.git/snapshot/ntfysh-bin.tar.gz | tar xzv
cd ntfysh-bin
makepkg -si

NixOS / Nix

  • Configuration NixOS: Ajoutez services.ntfy-sh.enable = true; à votre /etc/nixos/configuration.nix et lancez nixos-rebuild switch.
  • Environnement utilisateur: nix-env -iA ntfy-sh

FreeBSD

pkg install go-ntfy

5. Développement durable Installation de macOS

macOS prend en charge la CLI (ntfy publish, ntfy subscribe) mais ne prend pas en charge le serveur via des packages officiels.

Installation manuelle de CLI

curl -L https://github.com/binwiederhier/ntfy/releases/download/v2.28.0/ntfy_2.28.0_darwin_all.tar.gz > ntfy.tar.gz
tar zxvf ntfy.tar.gz
sudo cp -a ntfy_2.28.0_darwin_all/ntfy /usr/local/bin/ntfy
mkdir ~/Library/Application\ Support/ntfy
cp ntfy_2.28.0_darwin_all/client/client.yml ~/Library/Application\ Support/ntfy/client.yml

Remarque : Pour exécuter le serveur sur macOS, vous devez le compiler manuellement à l'aide de Go (voir Instructions de compilation).


Article 6. Installation de Homebrew

brew install ntfy

Cela installe uniquement la CLI. L'installation du serveur nécessite des étapes manuelles.


Chapitre 7. Installation de Windows

En tant que programme utilisateur

  1. Téléchargez le fichier ZIP depuis GitHub Releases.
  2. Extrayez et placez ntfy.exe dans votre %Path% (par exemple, C:\Program Files\).
  3. Exécutez des commandes comme:
    ntfy.exe -h
    

En tant que service Windows

  1. Ouvrez une Invite de commandes élevée.
  2. Créer le service:
    sc create ntfy binPath="C:\path\to\ntfy.exe serve" start=auto
    
  3. Démarrer le service:
    sc start ntfy
    

Chapitre 8. Installation de Docker

Utilisation de base (aucun cache persistant)

docker run -p 80:80 -it binwiederhier/ntfy serve

Avec cache persistant

docker run \
  -v /var/cache/ntfy:/var/cache/ntfy \
  -p 80:80 \
  -it \
  binwiederhier/ntfy \
  serve \
  --cache-file /var/cache/ntfy/cache.db

Avec une configuration personnalisée (utilisateur non root)

docker run \
  -v /etc/ntfy:/etc/ntfy \
  -e TZ=UTC \
  -p 80:80 \
  -u UID:GID \
  -it \
  binwiederhier/ntfy \
  serve

Exemple de Docker Compose

version: '3'
services:
  ntfy:
    image: binwiederhier/ntfy
    container_name: ntfy
    command: ["serve"]
    environment:
      - TZ=UTC
    user: "1000:1000" # Replace with your UID/GID
    volumes:
      - /var/cache/ntfy:/var/cache/ntfy
      - /etc/ntfy:/etc/ntfy
    ports:
      - "80:80"
    healthcheck:
      test: ["CMD-SHELL", "wget -q --tries=1 http://localhost:80/v1/health -O - | grep -Eo '\"healthy\"\\s*:\\s*true' || exit 1"]
      interval: 60s
      timeout: 10s
      retries: 3
      start_period: 40s
    restart: unless-stopped
    init: true

Chapitre 9. Déploiement de Kubernetes (K8s)

StatefulSet avec cache persistant

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: ntfy
spec:
  serviceName: ntfy
  replicas: 1
  selector:
    matchLabels:
      app: ntfy
  template:
    metadata:
      labels:
        app: ntfy
    spec:
      containers:
        - name: ntfy
          image: binwiederhier/ntfy
          args: ["serve", "--cache-file", "/var/cache/ntfy/cache.db"]
          ports:
            - containerPort: 80
              name: http
          volumeMounts:
            - name: config
              mountPath: /etc/ntfy
              readOnly: true
            - name: cache
              mountPath: /var/cache/ntfy
      volumes:
        - name: config
          configMap:
            name: ntfy
        - name: cache
          persistentVolumeClaim:
            claimName: ntfy-cache
---
apiVersion: v1
kind: Service
metadata:
  name: ntfy
spec:
  selector:
    app: ntfy
  ports:
    - port: 80
      targetPort: 80
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: ntfy-cache
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

Troubleshooting

  • Service non démarré: Vérifiez les journaux avec sudo journalctl -u ntfy (systemd) ou sudo rc-service ntfy status (OpenRC).
  • Permission Denied: Assurez-vous que les fichiers binaires et de configuration sont détenus par root ou un utilisateur spécifique si exécuté en tant que non-root.
  • Port déjà utilisé: Changez le port dans server.yml ou la commande d'exécution de Docker (-p 8080:80).

Fichiers de configuration

  • Configuration du client: /etc/ntfy/client.yml (ou ~/.config/ntfy/client.yml pour les non-root).
  • Configuration du serveur: /etc/ntfy/server.yml.

Modifiez ces fichiers pour personnaliser les paramètres tels que le fuseau horaire, la taille maximale des messages ou la politique de rétention.


Notes de sécurité

  • Exécutez toujours ntfy en tant qu'utilisateur non root en production si possible (configurez via le drapeau user dans Docker ou le service systemd).
  • Assurez-vous que l'interface utilisateur Web est accessible uniquement via des réseaux de confiance s'il est exposé publiquement.
  • Mettez régulièrement à jour votre installation pour corriger les vulnérabilités de sécurité.

Pour plus de détails, consultez le ntfy GitHub Repository.

Paramètres de configuration

Après avoir acheté cette application sur Esadax, vous serez invité à fournir les paramètres de configuration ci-dessous. Esadax ajoute les variables fournies au déploiement afin que l'application puisse être lancée avec la configuration requise.

Paramètre Description :
ADMIN_USERNAME Valeur fournie au déploiement pour ADMIN_USERNAME.
ADMIN_PASSWORD Valeur fournie au déploiement pour ADMIN_PASSWORD.

Une fois les valeurs configurées, cliquez sur Déployer pour lancer l'application. L'application achetée utilisera les valeurs de configuration fournies, y compris les informations d'identification telles que les noms d'utilisateur et les mots de passe lorsque ces paramètres sont fournis.