102 lines
3.3 KiB
Markdown
102 lines
3.3 KiB
Markdown
---
|
|
title: ntfy
|
|
created: 2026-06-08
|
|
updated: 2026-06-08
|
|
type: app
|
|
tags: [catalogue, notifications, go, app-marathon-batch-rattrapage-3]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Notifications, https://ntfy.sh]
|
|
---
|
|
|
|
# 🔔 ntfy
|
|
|
|
> **Notifications push en HTTP POST le plus simple possible** : `curl -d "hello" ntfy.sh/mon_topic`. Self-hosté, sans compte, sans dépendance.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [ntfy.sh](https://ntfy.sh) |
|
|
| **GitHub** | [binwiederhier/ntfy](https://github.com/binwiederhier/ntfy) |
|
|
| **License** | Apache-2.0 (serveur) / GPL-2.0 (app Android) |
|
|
| **Langage** | Go |
|
|
| **Étoiles GitHub** | 24k ⭐ |
|
|
| **Catégorie** | [[cat-notifications|Notifications]] |
|
|
|
|
## 📝 Description
|
|
|
|
**ntfy** (prononcez "*notify*") est un service de notification push **minimaliste** : un simple POST HTTP sur `/topic` envoie un message aux abonnés du topic. Pas d'auth obligatoire (sauf à le vouloir), topics publics ou privés, apps Android/iOS/web, WebSocket, et **upstream vers Gotify/Pushover/Apprise**.
|
|
|
|
**Différence avec Gotify** : ntfy est plus **simple et minimaliste** (un topic = une URL), sans gestion fine d'utilisateurs ; Gotify a un vrai système de comptes, plugins et apps plus riches. ntfy gagne sur la **légèreté** et la **flexibilité** (topics anonymes, intégrations shell one-liner).
|
|
|
|
**Pour qui** : devs, homelabbers, et tous ceux qui veulent un push **en 10 secondes** sans configurer un serveur lourd.
|
|
|
|
## 🚀 Installation
|
|
|
|
### Docker Compose (recommandé)
|
|
|
|
```yaml
|
|
version: '3.8'
|
|
services:
|
|
ntfy:
|
|
image: binwiederhier/ntfy
|
|
container_name: ntfy
|
|
command: serve
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8090:80"
|
|
volumes:
|
|
- /var/cache/ntfy:/var/cache/ntfy
|
|
- /etc/ntfy:/etc/ntfy
|
|
environment:
|
|
- TZ=Europe/Paris
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.ntfy.rule=Host(`ntfy.example.com`)"
|
|
- "traefik.http.routers.ntfy.entrypoints=websecure"
|
|
- "traefik.http.routers.ntfy.tls.certresolver=letsencrypt"
|
|
|
|
volumes:
|
|
ntfy-cache:
|
|
ntfy-config:
|
|
```
|
|
|
|
### Envoi / Abonnement
|
|
|
|
```bash
|
|
# Publier
|
|
curl -d "Disque plein !" ntfy.example.com/backup
|
|
|
|
# S'abonner (CLI)
|
|
ntfy subscribe ntfy.example.com/backup
|
|
```
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
- [[app-gotify]] — Plus complet (users, apps natives)
|
|
- [[app-apprise]] — Envoie *vers* ntfy
|
|
- [[app-argus]] — Agrégateur de releases
|
|
|
|
### Propriétaires
|
|
- **Pushover** (5 USD) — Push mobile éprouvé
|
|
- **Slack/Discord webhooks** — Pour les usages collaboratifs
|
|
|
|
## 🔐 Sécurité
|
|
- **Auth via token** par topic : `Authorization: Bearer tk_xxxxx` pour les topics privés.
|
|
- **HTTPS obligatoire** derrière Traefik (les topics publics sont en clair sur Internet sinon).
|
|
- **Rate limiting** configurable (`visitor-message-daily-limit`) pour limiter l'abus.
|
|
- **E2E** : ntfy supporte le chiffrement côté client (XChaCha20) entre publisher et abonné.
|
|
|
|
## 📚 Ressources
|
|
- [Documentation](https://ntfy.sh/docs/)
|
|
- [Installation Docker](https://ntfy.sh/docs/install/)
|
|
- [API](https://ntfy.sh/docs/publish/)
|
|
|
|
## Pages Liées
|
|
- [[cat-notifications]] — Catégorie Notifications
|
|
- [[app-gotify]] — Concurrent
|
|
- [[app-apprise]] — Multi-services
|
|
- [[recettes-docker-compose]] — Templates Docker
|