4.7 KiB
4.7 KiB
🗳️ Système de Vote Électronique - Déploiement ✅
Status: EN PRODUCTION ✅
Date: 5 novembre 2025
Branche: paul/evoting sur gitea.vidoks.fr
Dernière version: Commit 15a52af
🚀 Démarrage rapide
# Lancer les services Docker
docker-compose up -d
# Arrêter les services
docker-compose down
# Voir les logs du backend
docker logs evoting_backend
# Voir les logs de la BDD
docker logs evoting_db
🌐 Accès
| Service | URL | Port |
|---|---|---|
| Frontend | http://localhost:3000 | 3000 |
| API Backend | http://localhost:8000 | 8000 |
| Docs API | http://localhost:8000/docs | 8000 |
| Base de données | mariadb:3306 | 3306 |
📦 Services Docker
✅ evoting-frontend : Node.js 20 + http-server
✅ evoting-backend : Python 3.12 + FastAPI
✅ evoting_db : MariaDB 11.4
Vérifier le status:
docker ps
🔐 Post-Quantum Cryptography (PQC)
Implémentation Active ✅
- ML-DSA-65 (Dilithium) - Signatures post-quantiques (FIPS 204)
- ML-KEM-768 (Kyber) - Chiffrement post-quantique (FIPS 203)
- RSA-PSS - Signatures classiques (défense en profondeur)
- ElGamal - Chiffrement classique (défense en profondeur)
Code: /src/crypto/pqc_hybrid.py (275 lignes)
Mode d'utilisation
Le code PQC est prêt mais fonctionne en mode dégradé:
- Sans liboqs: Uses classical crypto only (RSA-PSS + ElGamal)
- Avec liboqs: Activate hybrid (RSA + Dilithium + Kyber + ElGamal)
Activer la PQC complète:
# Option 1: Installation locale
pip install liboqs-python
# Option 2: Docker avec support PQC
# Éditer Dockerfile.backend pour ajouter:
# RUN pip install liboqs-python
# Puis: docker-compose up -d --build
📊 API Endpoints
Élections
GET /api/elections/active - Élection active
GET /api/elections/<id>/results - Résultats
Vote
POST /api/votes/submit - Soumettre un vote
GET /api/votes/verify/<id> - Vérifier un vote
Voter
POST /api/voters/register - Enregistrer voter
GET /api/voters/check - Vérifier si voter existe
🧪 Tests
# Lancer tous les tests
pytest
# Tests crypto classiques
pytest tests/test_crypto.py
# Tests PQC (si liboqs disponible)
pytest tests/test_pqc.py
# Avec couverture
pytest --cov=src tests/
🗄️ Base de Données
Tables
voters- Enregistrement des votantselections- Élections avec datescandidates- Candidats par électionvotes- Votes avec signaturesaudit_logs- Journal d'audit
Données initiales
- 1 élection active: "Élection Présidentielle 2025"
- 4 candidats: Alice, Bob, Charlie, Diana
- Dates: 3-10 novembre 2025
📝 Configuration
Fichier .env:
DB_HOST=mariadb
DB_PORT=3306
DB_NAME=evoting_db
DB_USER=evoting_user
DB_PASSWORD=evoting_pass123
SECRET_KEY=dev-secret-key-change-in-production-12345
DEBUG=false
BACKEND_PORT=8000
FRONTEND_PORT=3000
⚠️ Production: Changez tous les secrets !
🔧 Dépannage
Backend ne démarre pas
# Vérifier les logs
docker logs evoting_backend
# Reconstruire l'image
docker-compose down
docker-compose up -d --build
Base de données non disponible
# Vérifier MariaDB
docker logs evoting_db
# Réinitialiser la BD
docker-compose down -v # Attention: supprime les données
docker-compose up -d
CORS ou connexion API
# Vérifier que backend répond
curl http://localhost:8000/api/elections/active
# Vérifier que frontend accède à l'API
# (DevTools > Network)
📂 Structure du projet
.
├── docker/
│ ├── Dockerfile.backend
│ ├── Dockerfile.frontend
│ └── init.sql
├── src/
│ ├── backend/ # FastAPI (11 modules)
│ ├── crypto/ # Crypto classique + PQC (5 modules)
│ └── frontend/ # HTML5 SPA (1 fichier)
├── tests/ # test_crypto.py, test_pqc.py
├── rapport/ # main.typ (Typst)
├── docker-compose.yml # Orchestration
├── pyproject.toml # Dépendances Python
├── .env # Configuration
├── Makefile # Commandes rapides
└── README.md # Guide technique PQC
🎯 Prochain pas
- ✅ Site fonctionnel - COMPLÉTÉ
- ✅ Post-quantum prêt - COMPLÉTÉ
- ⏳ Intégration PQC dans endpoints - À faire (code prêt)
- ⏳ Tests end-to-end PQC - À faire
📞 Support
Voir .claude/POSTQUANTUM_CRYPTO.md pour détails cryptographiques.
Dernière mise à jour: 5 novembre 2025
Statut: Production Ready ✅