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

148 lines
6.6 KiB
Markdown

---
title: GoToSocial
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, activitypub-fediverse, gotosocial, microblog, mastodon, go, single-binary, fediverse, lger]
confidence: high
contested: false
sources: [https://selfh.st/apps?tag=activitypub-fediverse, https://gotosocial.org/, https://github.com/superseriousbusiness/gotosocial, https://docs.gotosocial.org/en/latest/]
---
# 🦥 GoToSocial
> Serveur de microblogging fediverse écrit en Go, distribué en binaire unique, pensé comme une alternative légère à Mastodon pour les instances petites ou mono-utilisateur.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | [gotosocial.org](https://gotosocial.org/) |
| **GitHub** | [superseriousbusiness/gotosocial](https://github.com/superseriousbusiness/gotosocial) |
| **License** | AGPL-3.0 |
| **Langage principal** | Go |
| **Étoiles GitHub** | 71 ⭐ (comptage agrégé selfh.st) |
| **Dernière MAJ** | 2026-06-07 |
| **Catégorie** | [[cat-activitypub-fediverse]] |
## Description
**GoToSocial** est né d'un constat simple : Mastodon, bien qu'étant le serveur fediverse de référence, est **lourd à auto-héberger** (Ruby, Sidekiq, Postgres, Redis, streaming, multiple workers). Pour des cas d'usage personnels ou de petites instances, c'est souvent disproportionné. GoToSocial propose un **binaire Go unique** qui couvre presque tout ce qu'on attend d'un serveur ActivityPub moderne, avec un coût mémoire largement inférieur.
L'application vise explicitement **trois profils d'utilisateurs** : les **particuliers** qui veulent un compte fediverse à eux tout seuls (Twitter-like), les **petites communautés** qui veulent un serveur à taille humaine, et les **familles / collectifs** qui veulent un coin privé du Fediverse. C'est aujourd'hui l'un des meilleurs choix pour « avoir son propre Mastodon » sans la complexité d'infrastructure.
Côté fonctionnalités, GoToSocial propose un flux local et fédéré, la gestion des listes, des médias, des filtres de contenu, la **modération de qualité** (rapports, blocages, mots interdits), la **timeline des follows uniquement**, le multilinguisme, OAuth pour clients Mastodon compatibles (Tusky, Ivory, Mona, Phanpy…), et un mode **instance mono-utilisateur** particulièrement économe. Les **faiblesses** notables : pas d'application mobile officielle, pas de recherche full-text fédérée, certaines API Mastodon encore en cours d'implémentation.
GoToSocial est un projet communautaire (Codeberg) qui s'est imposé comme la **référence du « Mastodon léger en Go »**, aux côtés de plus petits projets comme Mitra ou Hometown.
## Installation
### Via Docker (recommandé)
L'image officielle est publiée sur Docker Hub par l'équipe du projet :
```yaml
# docker-compose.yml
services:
gotosocial:
image: superseriousbusiness/gotosocial:latest
container_name: gotosocial
restart: unless-stopped
ports:
- "8080:8080"
environment:
GTS_HOST: gts.example.org
GTS_DB_TYPE: postgres
GTS_DB_ADDRESS: db
GTS_DB_USER: gts
GTS_DB_PASSWORD: change-me
GTS_DB_DATABASE: gotosocial
GTS_STORAGE_BACKEND: s3
GTS_S3_ENDPOINT: minio:9000
GTS_S3_ACCESS_KEY: gts
GTS_S3_SECRET_KEY: change-me
GTS_S3_BUCKET: gts
GTS_S3_PROXY: "true"
volumes:
- gts_data:/gotosocial/storage
depends_on:
- db
db:
image: postgres:16-alpine
container_name: gts-db
restart: unless-stopped
environment:
POSTGRES_USER: gts
POSTGRES_PASSWORD: change-me
POSTGRES_DB: gotosocial
volumes:
- db_data:/var/lib/postgresql/data
minio:
image: minio/minio:latest
container_name: gts-minio
restart: unless-stopped
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: gts
MINIO_ROOT_PASSWORD: change-me
volumes:
- minio_data:/data
volumes:
gts_data:
db_data:
minio_data:
```
### Installation manuelle
Télécharger le binaire depuis la page **Releases** sur Codeberg/GitHub, créer un utilisateur système `gotosocial`, configurer le fichier YAML, exécuter le binaire avec un reverse proxy (Caddy, Nginx). Documentation : [docs.gotosocial.org](https://docs.gotosocial.org/en/latest/).
## Configuration
1. Démarrer la stack, puis créer le **premier utilisateur** via la CLI : `gotosocial admin account create --username admin`.
2. Renseigner le **domaine public** dans `GTS_HOST` (utilisé pour la fédération).
3. Configurer le **reverse proxy** (Caddy/Traefik) avec HTTPS et le routing WebSocket.
4. Choisir le **stockage** : local (volume) ou **S3-compatible** (Minio, Backblaze, Scaleway).
5. Activer la **politique d'instance** : ouvert, fermé, approbation manuelle, mono-utilisateur.
6. Tester la **fédération** en suivant un compte distant et en publiant un premier post.
7. Configurer les **sauvegardes** de Postgres et du stockage média.
## Alternatives
### Open source
- [[app-mastodon]] — Référence, plus complet mais plus lourd (Ruby)
- [[app-akkoma]] — Microblog fediverse léger basé sur Pleroma, en Elixir
- [[app-essena]] — fork ancien, non maintenu
- **Pleroma** — microblog fediverse mature, plus complet qu'Akkoma
### Propriétaires
- **Twitter / X** — microblogging centralisé, algorithme opaque
- **Threads (Meta)** — récemment fédéré mais politique floue
- **Bluesky** — concurrent décentralisé mais basé sur ATProto, pas ActivityPub
## Sécurité
- ✅ Authentification par mot de passe fort + support **2FA (TOTP)**.
- ✅ Stockage des médias en local ou S3 avec URLs signées.
- ✅ Mises à jour Go régulières (binaire statique, surface d'attaque réduite).
- ⚠️ Configurer un **reverse proxy durci** : HSTS, TLS 1.3, blocage des chemins non utilisés.
- ⚠️ Modérer la **fédération** : listes de blocage d'instances, validation des comptes en masse.
- ⚠️ Limiter le **taille max de post** et la **rétention média** pour éviter les abus.
- ⚠️ Sauvegarder Postgres et le bucket média — la perte d'un compte est irréversible.
## Ressources
- [Site officiel GoToSocial](https://gotosocial.org/)
- [Documentation complète](https://docs.gotosocial.org/en/latest/)
- [Dépôt GitHub du projet](https://github.com/superseriousbusiness/gotosocial)
- [Image Docker Hub](https://hub.docker.com/r/superseriousbusiness/gotosocial)
## Pages Liées
- [[cat-activitypub-fediverse]] — Catégorie parente
- [[app-mastodon]] — Référence du microblog fediverse, plus lourde
- [[app-akkoma]] — Alternative légère en Elixir
- [[app-hollo]] — Microblog mono-utilisateur en Rust, cousin minimaliste
- [[recettes-docker-compose]] — Templates Docker