Files
wiki/Catalogue-Self-Hosted/apps/app-snikket.md
T
2026-06-09 18:40:21 +02:00

5.2 KiB


title: Snikket created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, messaging, xmpp, famille, jami-friendly, foss, docker] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Messaging, https://github.com/snikket-im/snikket-server, https://snikket.org/]

💬 Snikket

XMPP rendu simple pour les familles et les groupes : Snikket est une distribution XMPP clé-en-main, avec un serveur Dockerisé facile à installer, des clients mobiles (Android/iOS) et de bureau conviviaux, et un assistant d'onboarding qui guide les non-techniciens. Le but : faire de XMPP la messagerie de Monsieur Tout-le-monde.

📋 Informations Générales

Champ Valeur
Site web snikket.org
GitHub snikket-im/snikket-server
Licence MIT (serveur), Apache-2.0 (clients)
Langage Python, Shell
Étoiles GitHub 425
Catégorie Messaging

📝 Description

Snikket est un projet de l'équipe derrière Conversations.im (le client Android de référence pour XMPP). Le constat : XMPP est un protocole puissant, mature et fédéré, mais sa mise en œuvre reste un cauchemar pour les non-spécialistes. Snikket emballe donc tout — serveur Prosody préconfiguré, clients dédiés (Snikket pour Android/iOS, web, desktop), DNS auto-hébergé, certificats Let's Encrypt automatisés — dans une expérience packagée.

Le résultat : en une heure, on peut déployer un serveur XMPP familial sur un petit VPS, créer des comptes pour les grands-parents et les enfants via un lien d'invitation, et leur envoyer un QR code à scanner pour installer l'app mobile. Aucune configuration réseau à connaître, aucune ligne de commande.

Fonctionnalités XMPP classiques : 1:1 et salons de groupe (MUC), chiffrement E2E (OMEMO + OTR), partage de fichiers, appels audio/vidéo (Jingle), multi-appareils, fédération XMPP (votre instance peut parler à n'importe quel serveur XMPP), archivage local (MAM). Le tout sans compte central ni téléphone requis.

🚀 Installation

Pré-requis

Un VPS Linux (Debian/Ubuntu recommandé) avec Docker installé, et un domaine (ex: snikket.example.com) dont vous contrôlez le DNS.

Script d'installation officiel (le plus simple)

curl -sLO https://snikket-im.github.io/snikket-installer/bootstrap.sh
chmod +x bootstrap.sh
./bootstrap.sh
# Le script interactif demande : domaine, e-mail admin, génère le .env

docker-compose.yml (manuellement)

services:
  snikket:
    image: snikketim/snikket-server:latest
    container_name: snikket
    restart: unless-stopped
    volumes:
      - snikket_data:/snikket
    environment:
      SNIKKET_DOMAIN: snikket.example.com
      SNIKKET_ADMIN_EMAIL: admin@example.com
    ports:
      - "80:80"      # Let's Encrypt HTTP-01 challenge
      - "443:443"    # XMPP c2s + BOSH + WebSocket + HTTPS web
      - "5000:5000"  # XMPP s2s (fédération)
    sysctls:
      net.core.rmem_max: 26214400
      net.core.wmem_max: 26214400

volumes:
  snikket_data:

⚙️ Configuration Initiale

  1. Configurer le DNS : snikket.example.com (A/AAAA), groups.snikket.example.com (CNAME), _acme-challenge (TXT) — le script le fait si vous utilisez un provider compatible.
  2. Lancer le script d'installation : il crée le .env, démarre les conteneurs, génère les certificats.
  3. Créer le premier compte admin via l'interface web https://snikket.example.com.
  4. Générer des liens d'invitation depuis l'admin : + Inviter un contact, partagez le lien par e-mail/SMS.
  5. Tester la fédération : depuis un compte Snikket, ajoutez un contact sur jabber.org ou disroot.org.

🔄 Alternatives

  • Prosody / ejabberd — Serveurs XMPP bruts, configuration manuelle avancée
  • Element / Synapse — Matrix, plus moderne mais plus lourd
  • Conversations / Monal — Clients XMPP natifs (utilisables contre tout serveur XMPP)
  • Movim — Réseau social sur XMPP, plus orienté publication
  • Mattermost — Pas XMPP, mais alternative chat famille/équipe

🔐 Sécurité

  • Chiffrement E2E OMEMO sur les conversations 1:1 et de groupe
  • Chiffrement TLS sur toutes les connexions (c2s, s2s, BOSH, WebSocket)
  • Certificats Let's Encrypt auto-renouvelés
  • ⚠️ Le serveur reste une autorité : il connaît les métadonnées (qui parle à qui, quand) — choisir un hébergeur de confiance
  • ⚠️ Anti-spam : configurer fail2ban + mod_spam sur Prosody

📚 Ressources

Pages Liées