119 lines
5.9 KiB
Markdown
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
|