No description
  • Python 42.4%
  • CSS 21.1%
  • HTML 20.1%
  • JavaScript 15.8%
  • Dockerfile 0.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-18 18:45:21 +02:00
backend Initial commit: Application de migration mail Réveil Libertaire (sécurisée OWASP, 1-clic Google OAuth, Stalwart) 2026-09-18 18:45:21 +02:00
docker Initial commit: Application de migration mail Réveil Libertaire (sécurisée OWASP, 1-clic Google OAuth, Stalwart) 2026-09-18 18:45:21 +02:00
frontend Initial commit: Application de migration mail Réveil Libertaire (sécurisée OWASP, 1-clic Google OAuth, Stalwart) 2026-09-18 18:45:21 +02:00
.gitignore Initial commit: Application de migration mail Réveil Libertaire (sécurisée OWASP, 1-clic Google OAuth, Stalwart) 2026-09-18 18:45:21 +02:00
docker-compose.yml Initial commit: Application de migration mail Réveil Libertaire (sécurisée OWASP, 1-clic Google OAuth, Stalwart) 2026-09-18 18:45:21 +02:00
README.md Initial commit: Application de migration mail Réveil Libertaire (sécurisée OWASP, 1-clic Google OAuth, Stalwart) 2026-09-18 18:45:21 +02:00
requirements.txt Initial commit: Application de migration mail Réveil Libertaire (sécurisée OWASP, 1-clic Google OAuth, Stalwart) 2026-09-18 18:45:21 +02:00
revlibertaire.png Initial commit: Application de migration mail Réveil Libertaire (sécurisée OWASP, 1-clic Google OAuth, Stalwart) 2026-09-18 18:45:21 +02:00

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:993 avec validation du domaine @revlibertaire.com.
  • 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 :

  1. Rendez-vous sur la Google Cloud Console.
  2. Créez un nouveau projet (ex. Reveil Libertaire Migration).
  3. 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/.
  4. 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 (ou http://localhost:8080/api/auth/google/callback pour tester en local).
  5. Copiez le Client ID et le Client Secret et collez-les dans docker-compose.yml ou 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

  1. Cloner ou ouvrir le répertoire du projet :

    cd /home/anar/Bureau/Revlibertaire.migration
    
  2. Démarrer le service en arrière-plan :

    docker compose up -d --build
    
  3. L'interface est immédiatement accessible localement sur : http://localhost:38452


Déploiement natif (Python)

  1. Création de l'environnement virtuel :

    python3 -m venv venv
    source venv/bin/activate
    
  2. Installation des dépendances :

    pip install -r requirements.txt
    
  3. 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