Initial vault setup
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user