Files
2026-06-09 18:40:21 +02:00

119 lines
5.9 KiB
Markdown

---
title: Touitomamout
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, activitypub-fediverse, bridge, twitter, mastodon, bluesky, cross-posting, sync, nodejs]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=activitypub-fediverse, https://github.com/louisgrasset/touitomamout]
---
# 🌉 Touitomamout
> **Le pont Twitter → Mastodon (et Bluesky) auto-hébergeable** — synchronisez vos tweets sur votre instance Mastodon et inversement, sans cloud tiers.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | [louisgrasset.github.io/touitomamout](https://louisgrasset.github.io/touitomamout/docs/discover) |
| **GitHub** | [louisgrasset/touitomamout](https://github.com/louisgrasset/touitomamout) |
| **Licence** | AGPL-3.0 |
| **Langage** | TypeScript, Node.js |
| **Étoiles GitHub** | 26 ⭐ |
| **Dernière MAJ** | 2026-04 |
| **Catégorie** | [[cat-activitypub-fediverse\|ActivityPub / Fediverse]] |
## 📝 Description
**Touitomamout** est un **bridge Twitter ↔ Mastodon bidirectionnel** que l'on self-host soi-même. Le nom est un clin d'œil : "touito" = "twitter" en verlan, "mamout" = Mastodon, et l'ensemble évoque la fusion des deux écosystèmes. L'idée est née de la frustration de voir sa communauté éclatée entre Twitter/X et le Fediverse : on ne peut pas forcer tout le monde à migrer, mais on peut **répliquer ses propres tweets vers Mastodon** et **rapatrier les réponses Mastodon vers Twitter**.
Le cas d'usage principal est le **départ progressif de Twitter** : on garde son compte Twitter en lecture seule (ou en miroir), on continue à tweeter via l'API, et Touitomamout pousse automatiquement chaque tweet sur notre compte Mastodon. Les **réponses, boosts et favoris** reçus sur Mastodon sont **réinjectés comme des réponses sous le tweet original** sur Twitter, ce qui maintient une continuité pour les followers restants sur X.
L'outil supporte aussi **Bluesky** (publication vers AT Protocol) et gère les **métadonnées** : avatar, bannière, nom d'affichage sont synchronisés. Il sait traiter les **threads Twitter** (récupère la conversation complète), les **media** (images, vidéos, GIFs), et **filtre les replies** selon des règles configurables (ex : ne pas republier les replies commençant par `@`).
Forces : 100% self-hosted, pas de cloud intermédiaire, configuration fine, gestion des threads. Faiblesses : **l'API Twitter/X devient de plus en plus restrictive et payante** (le plan Basic à 100$/mois est désormais requis pour l'écriture), le projet est mono-utilisateur (un compte Twitter ↔ un compte Mastodon), pas de GUI web (config via fichier YAML + CLI).
## 🚀 Installation
### Option recommandée : Docker
```yaml
# docker-compose.yml
services:
touitomamout:
image: louisgrasset/touitomamout:latest
container_name: touitomamout
restart: unless-stopped
environment:
- TZ=Europe/Paris
- DRY_RUN=false
volumes:
- ./config.yaml:/app/config.yaml:ro
- ./cache:/app/cache
```
### Fichier `config.yaml` minimal
```yaml
twitter:
username: votre_pseudo_x
api_key: VOTRE_CLE_API_X
api_secret: VOTRE_SECRET_API_X
access_token: VOS_TOKENS_OAUTH1
access_token_secret: ...
mastodon:
instance: mastodon.social
access_token: VOTRE_TOKEN_MASTODON
bluesky:
enabled: true
handle: vous.bsky.social
app_password: ...
sync_interval: 300 # secondes
```
## ⚙️ Configuration Initiale
1. **Créer une app Twitter/X** sur le portail développeur X et récupérer les clés OAuth 1.0a. **Attention** : depuis 2023, X facture l'accès API (plan payant requis pour poster).
2. **Créer un token Mastodon** depuis les paramètres de votre instance → Développement → Nouvelle application (scope : `read write push`).
3. **Configurer Bluesky** : générer un mot de passe d'application sur bsky.social.
4. **Premier run** : démarrer en `DRY_RUN=true` pour vérifier que la synchro fonctionne sans publier.
5. **Lancer en production** : repasser `DRY_RUN=false` et superviser les logs.
## 🔄 Alternatives
### Open Source
- [[app-bridgy-fed]] — Bridge Mastodon ↔ réseaux ActivityPub variés (par Darius Kazemi).
- **moa.party** — Bridge multi-réseau (Mastodon, Tumblr, Pleroma, Twitter) en ligne, non self-hostable.
- **Ecko** (ex-Mastodon modifié) — Client Mastodon enrichi mais pas un bridge.
- **rss-to-mastodon** — Beaucoup plus simple, sans Twitter.
### Propriétaires (ce que cette app remplace)
- **Buffer / Hootsuite** — Cross-poster cloud, payant et centralisé.
- **Zapier/Make.com** — Workflows cloud bridant Twitter/Mastodon, mais pas bidirectionnels.
- **IFTTT** — Limité, ne gère pas les threads Twitter.
- **dlvr.it** — Service payant de cross-posting.
## 🔐 Sécurité
- **Secrets sensibles** : le `config.yaml` contient les tokens OAuth des trois plateformes. **Monter en read-only** et **chiffrer au repos** (LUKS, age, SOPS).
- **Compte Twitter/X** : l'API actuelle impose un plan **Basic ($100/mois)** pour poster. Surveillez la facturation X Developer.
- **Rate limits** : Touitomamout implémente du backoff exponentiel ; en cas de blocage, les messages sont mis en cache et réessayés.
- **DRY_RUN** : utilisez-le systématiquement lors de la configuration initiale pour éviter de poster 10 ans d'archives par accident.
- **Modération** : aucun mécanisme intégré ; vous publiez sous votre propre identité, les filtres se gèrent côté Twitter et Mastodon.
## 📚 Ressources
- [GitHub louisgrasset/touitomamout](https://github.com/louisgrasset/touitomamout)
- [Documentation officielle](https://louisgrasset.github.io/touitomamout/docs/discover)
- [Reddit r/Mastodon — Présentation](https://www.reddit.com/r/Mastodon/comments/175ozyq/touitomamout_an_open_source_twitter_crossposter/)
## Pages Liées
- [[cat-activitypub-fediverse]] — Catégorie parente
- [[app-mastodon]] — Cible de synchro principale
- [[recettes-docker-compose]] — Templates Docker