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

5.2 KiB


title: Stoat created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, messaging, chat, discord-alternative, revolt-fork, typescript, foss] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Messaging, https://github.com/stoatchat/stoat, https://stoat.chat/]

💬 Stoat

Le fork moderne de Revolt : une alternative open-source à Discord, légère, rapide et respectueuse de la vie privée. Stoat reprend l'API et l'UX de Revolt tout en relançant activement le développement communautaire.

📋 Informations Générales

Champ Valeur
Site web stoat.chat
GitHub stoatchat/stoat
Licence AGPL-3.0
Langage TypeScript, Rust
Étoiles GitHub 3.1k
Catégorie Messaging

📝 Description

Stoat est né en 2024 comme un fork communautaire de Revolt, après que le projet original a ralenti son développement. L'objectif est clair : proposer une plateforme de chat type Discord (serveurs, salons textuels et vocaux, MD, bots, émojis personnalisés, rôles) mais 100% open-source, auto-hébergeable et respectueuse de la vie privée (pas de télémétrie, pas de pistage publicitaire).

L'écosystème est composé d'un backend en Rust (performances, faible empreinte mémoire), d'un client web React, et d'apps natives en cours de finalisation pour iOS, Android, macOS, Windows, Linux. Stoat expose une API REST + WebSocket compatible avec l'écosystème de bots Revolt existant, ce qui permet de réutiliser une grande partie des intégrations déjà écrites.

Côté fédération, Stoat vise à terme un modèle ActivityPub pour interoperer avec Mastodon et le fediverse, bien que cette roadmap soit encore en cours. Pour un usage en équipe ou en communauté de taille moyenne (jusqu'à quelques milliers d'utilisateurs), c'est aujourd'hui l'une des alternatives les plus accessibles et ergonomiques à Discord.

🚀 Installation

Via Docker (recommandé)

services:
  stoat-backend:
    image: ghcr.io/stoatchat/stoat-backend:latest
    container_name: stoat-backend
    restart: unless-stopped
    environment:
      DATABASE_URL: postgres://stoat:stoat@db:5432/stoat
      REDIS_URL: redis://redis:6379
      JANET_URL: http://janet:8080
      SUMMEROFLOVE_URL: http://summer:4000
      ROCKET_API_URL: http://localhost:14702
      ROCKET_PROXY_URL: http://localhost:14701
      HOST_URL: https://stoat.example.com
      SUMMEROFLOVE_HOST_URL: wss://voice.example.com
    depends_on: [db, redis, janet, summer]
    ports: ["14702:14702"]

  stoat-web:
    image: ghcr.io/stoatchat/stoat-web:latest
    container_name: stoat-web
    restart: unless-stopped
    ports: ["5173:5173"]

  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: stoat
      POSTGRES_PASSWORD: stoat
      POSTGRES_DB: stoat
    volumes: [stoat_db:/var/lib/postgresql/data]

  redis:
    image: redis:7-alpine

  janet:
    image: ghcr.io/stoatchat/janet:latest
    ports: ["8080:8080"]

  summer:
    image: ghcr.io/stoatchat/summeroflove:latest
    ports: ["4000:4000"]

volumes:
  stoat_db:

Binaire natif

Des releases pré-compilées pour Linux (x86_64, ARM64) sont disponibles sur la page Releases GitHub. L'installation manuelle reste réservée aux utilisateurs avancés.

⚙️ Configuration Initiale

  1. Déployer le backend derrière un reverse proxy HTTPS (Traefik, Caddy, Nginx).
  2. Créer le compte administrateur via l'API ou le formulaire d'inscription (premier compte = admin).
  3. Configurer SMTP (variable d'environnement) pour les e-mails de vérification et de réinitialisation.
  4. Brancher le service vocal (Summer-of-Love) sur un sous-domaine dédié pour la voix.
  5. Personnaliser thème, NSFW, et quotas via le fichier de configuration.

🔄 Alternatives

  • Revolt — Projet originel, développement plus lent
  • Spacebar — Implémentation compatible Discord en TypeScript
  • Rocket.Chat — Solution plus orientée entreprise/teams
  • Element / Matrix — Plus décentralisé, UX moins "Discord-like"
  • Zulip — Organisation par topics, pas de salons vocaux persistants

🔐 Sécurité

  • Chiffrement E2E optionnel pour les messages privés (en cours de généralisation)
  • Stockage des données utilisateur en PostgreSQL, hébergement sous votre contrôle
  • ⚠️ Le backend fait confiance aux clients (comme Discord) : l'admin serveur peut techniquement lire les messages
  • ⚠️ Prévoir rate-limiting agressif sur l'API et modération (bots anti-spam recommandés)

📚 Ressources

Pages Liées