--- title: Sharkord created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, messaging, discord-compat, api, backend, foss, golang] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Messaging, https://github.com/sharkord/sharkord] --- # 💬 Sharkord > **Un backend Discord-compatible** : Sharkord réimplémente l'API et le protocole de Discord pour vous permettre d'héberger un "Discord maison" tout en gardant la **compatibilité avec les clients Discord officiels** (bureau, web, mobile) et l'écosystème de bots. ## 📋 Informations Générales | Champ | Valeur | | :--- | :--- | | **Site web** | sharkord (GitHub) | | **GitHub** | [sharkord/sharkord](https://github.com/sharkord/sharkord) | | **Licence** | MIT | | **Langage** | Go, TypeScript | | **Étoiles GitHub** | 1.4k ⭐ | | **Catégorie** | Messaging | ## 📝 Description **Sharkord** est un projet ambitieux : **réimplémenter le backend de Discord** de manière open-source, en respectant au maximum la **compatibilité avec l'API Gateway et REST** de Discord. L'objectif est de permettre à n'importe qui de **déployer un serveur type Discord** (serveurs, salons, rôles, émojis, MD, bots) sans dépendre de l'infrastructure propriétaire de Discord. Pour les utilisateurs finaux, **rien ne change** : ils continuent d'utiliser le **client Discord officiel** (qu'ils ont déjà installé), ils se connectent à votre instance Sharkord à la place de `discord.com`, et toutes les fonctionnalités de base du client fonctionnent normalement. Côté bots, la compatibilité API permet de **réutiliser l'immense écosystème de bots Discord existants** (MEE6, Dyno, custom bots en discord.js/Discord.py, etc.). L'avantage de cette approche par rapport à un Rocket.Chat ou un Matrix : **pas de nouveau client à apprendre**, pas d'app mobile à installer, et une **familiarité immédiate** pour les utilisateurs. C'est particulièrement pertinent pour les communautés qui migrent loin de Discord pour des raisons de souveraineté ou de coût. ## 🚀 Installation ### Via Docker (recommandé) ```yaml services: sharkord: image: ghcr.io/sharkord/sharkord:latest container_name: sharkord restart: unless-stopped ports: - "3001:3001" # API REST - "3002:3002" # Gateway WebSocket volumes: - sharkord_data:/data environment: SHARKORD_PUBLIC_URL: https://shark.example.com SHARKORD_JWT_SECRET: $(openssl rand -hex 32) SHARKORD_ADMIN_EMAIL: admin@example.com SHARKORD_ADMIN_PASSWORD: CHANGE_ME DATABASE_URL: postgres://sharkord:***@db:5432/sharkord db: image: postgres:16-alpine environment: POSTGRES_USER: sharkord POSTGRES_PASSWORD: CHANGE_ME POSTGRES_DB: sharkord volumes: [sharkord_db:/var/lib/postgresql/data] volumes: sharkord_data: sharkord_db: ``` ### Connexion depuis le client Discord Pour pointer le client Discord officiel vers votre instance, il faut utiliser la variable d'environnement : ```bash # Linux/macOS discord --remote-debugging-port=9222 # Puis dans les DevTools, configurer l'API endpoint ``` Ou utiliser un **proxy DNS** qui résout `discord.com` vers votre instance (avancé, attention aux implications légales selon les pays). ## ⚙️ Configuration Initiale 1. **Déployer le backend** derrière HTTPS (Traefik/Caddy). 2. **Créer le compte admin** au premier démarrage. 3. **Configurer les certificats TLS valides** : Discord client **refuse les certs auto-signés**. 4. **Tester la connexion** depuis le client Discord modifié. 5. **Restaurer/créer des salons, rôles, émojis** via l'API ou l'interface web admin. ## 🔄 Alternatives - **Spacebar** — Approche similaire, plus mature - **Stoat** — Client séparé, plus simple à héberger - **Revolt** — UX très proche de Discord, mais client dédié obligatoire - **Rocket.Chat** — Pas Discord-compatible, plus orienté équipe - **Mattermost** — Plus orienté ops, UX différente de Discord ## 🔐 Sécurité - ✅ **Code source auditable** (MIT, open-source complet) - ✅ **Aucun compte requis chez Discord** : les identités vivent dans votre instance - ⚠️ **Compatibilité API** = surface d'attaque = à surveiller de près (les vulnérabilités qui touchent Discord peuvent vous concerner) - ⚠️ **Stockage des messages** : en clair côté serveur par défaut (comme Discord original) - ⚠️ Toujours exécuter derrière un **reverse proxy durci** et appliquer les mises à jour rapidement ## 📚 Ressources - [GitHub sharkord/sharkord](https://github.com/sharkord/sharkord) - [Documentation (README)](https://github.com/sharkord/sharkord#readme) - [Discord API documentation](https://discord.com/developers/docs) — référence pour la compat - [Tutoriels d'auto-hébergement](https://github.com/sharkord/sharkord/wiki) ## Pages Liées - [[cat-messaging]] — Catégorie Messaging - [[app-spacebar]] — Alternative Discord-compatible - [[app-traefik]] — Reverse proxy HTTPS - [[securisation-home-lab]] — Hardening - [[recettes-docker-compose]] — Patterns Compose