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

5.0 KiB


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
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é)

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 :

# 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

Pages Liées