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