No description
- Python 42.4%
- CSS 21.1%
- HTML 20.1%
- JavaScript 15.8%
- Dockerfile 0.6%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| backend | ||
| docker | ||
| frontend | ||
| .gitignore | ||
| docker-compose.yml | ||
| README.md | ||
| requirements.txt | ||
| revlibertaire.png | ||
Réveil Libertaire — Migration Mail
Application web permettant de migrer les boîtes de messagerie (Gmail, Outlook, Yahoo, Orange, Free ou tout serveur IMAP standard) directement vers le serveur Stalwart Mail (mail.revlibertaire.com).
Fonctionnalités principales
- Connexion en 1 clic avec Google (OAuth 2.0 & XOAUTH2) :
- Même fonctionnement qu'Infomaniak ou Proton Mail : l'utilisateur clique sur « Continuer avec Google », autorise l'accès et revient avec sa boîte connectée sans jamais taper de mot de passe.
- Prise en charge multi-fournisseurs (mode standard) :
- Profils pré-configurés pour Gmail (par mot de passe d'application si OAuth désactivé), Outlook / Office 365, Yahoo, Orange / Wanadoo.
- Prise en charge universelle de tout serveur IMAP standard avec choix du port et chiffrement SSL/TLS.
- Cible Stalwart sécurisée :
- Cible pré-verrouillée sur
mail.revlibertaire.com:993avec validation du domaine@revlibertaire.com.
- Cible pré-verrouillée sur
- Vérification préalable des accès :
- Outil de diagnostic en un clic pour valider l'authentification simultanée sur la source et la cible avant de déclencher le transfert.
- Moteur de synchronisation robuste & idempotent :
- Détection et création automatique de l'arborescence des dossiers.
- Préservation intégrale des métadonnées de réception (
INTERNALDATE) et des statuts (\Seen,\Flagged, etc.). - Déduplication automatique via l'en-tête standard
Message-ID: reprise transparente en cas d'interruption sans générer de doublons. - Filtres automatiques pour ignorer les corbeilles, spams et dossiers redondants (ex:
[Gmail]/Tous les messages).
- Suivi en temps réel (Server-Sent Events) :
- Indicateurs de progression globale et par dossier.
- Journalisation en continu (flux de logs technique dans l'interface).
- Possibilité d'interrompre l'opération à tout moment de manière maîtrisée.
- Confidentialité absolue :
- Aucun mot de passe ni contenu de message n'est écrit sur disque. Le transit s'effectue exclusivement en mémoire vive et par flux chiffrés.
Configuration de la connexion en 1 clic Google (OAuth 2.0)
Pour activer le bouton officiel « Continuer avec Google » sur votre instance :
- Rendez-vous sur la Google Cloud Console.
- Créez un nouveau projet (ex. Reveil Libertaire Migration).
- Dans API & Services > Écran de consentement OAuth :
- Choisissez Externe.
- Remplissez le nom de l'application et vos coordonnées de contact.
- Dans Champs d'application (Scopes), ajoutez
https://mail.google.com/.
- Dans API & Services > Identifiants :
- Cliquez sur Créer des identifiants > ID client OAuth.
- Type d'application : Application Web.
- URI de redirection autorisés : ajoutez l'URL de votre serveur, par exemple :
https://migration.revlibertaire.com/api/auth/google/callback(ouhttp://localhost:8080/api/auth/google/callbackpour tester en local).
- Copiez le Client ID et le Client Secret et collez-les dans
docker-compose.ymlou votre environnement :GOOGLE_CLIENT_ID=votre-client-id.apps.googleusercontent.com GOOGLE_CLIENT_SECRET=GOCSPX-votre-secret
Déploiement
Déploiement recommandé : Docker & Docker Compose
-
Cloner ou ouvrir le répertoire du projet :
cd /home/anar/Bureau/Revlibertaire.migration -
Démarrer le service en arrière-plan :
docker compose up -d --build -
L'interface est immédiatement accessible localement sur :
http://localhost:38452
Déploiement natif (Python)
-
Création de l'environnement virtuel :
python3 -m venv venv source venv/bin/activate -
Installation des dépendances :
pip install -r requirements.txt -
Démarrage du serveur web :
python3 -m uvicorn backend.main:app --host 0.0.0.0 --port 38452
Intégration en production (Reverse Proxy)
Pour exposer l'outil publiquement (ex. https://migration.revlibertaire.com) :
Configuration Caddy
migration.revlibertaire.com {
reverse_proxy 127.0.0.1:38452
}
Configuration Nginx
server {
listen 443 ssl http2;
server_name migration.revlibertaire.com;
ssl_certificate /etc/letsencrypt/live/migration.revlibertaire.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/migration.revlibertaire.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:38452;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Paramètres indispensables pour le streaming Server-Sent Events (SSE) :
proxy_set_header Connection '';
proxy_http_version 1.1;
chunked_transfer_encoding off;
proxy_buffering off;
proxy_cache off;
}
}
Variables d'environnement
| Variable | Valeur par défaut | Description |
|---|---|---|
TARGET_IMAP_HOST |
mail.revlibertaire.com |
Hôte du serveur Stalwart cible |
TARGET_IMAP_PORT |
993 |
Port IMAP SSL |
TARGET_IMAP_SSL |
true |
Activation du protocole sécurisé |
TARGET_DOMAIN |
revlibertaire.com |
Domaine de messagerie |
GOOGLE_CLIENT_ID |
(vide) | Client ID OAuth 2.0 pour la connexion Google en 1 clic |
GOOGLE_CLIENT_SECRET |
(vide) | Client Secret OAuth 2.0 |
GOOGLE_REDIRECT_URI |
(vide/auto) | URL de redirection de rappel OAuth |
ALLOW_CUSTOM_TARGET |
false |
Verrouille la cible sur le serveur officiel |
MAX_CONCURRENT_MIGRATIONS |
5 |
Nombre maximal de synchronisations concurrentes |
IMAP_TIMEOUT_SECONDS |
45 |
Délai maximal de réponse réseau |