Le logiciel de gestion de copropriété simple, moderne et 10x moins cher.
CoproPilot est une plateforme open-source de gestion de copropriété pour les syndics bénévoles et professionnels. Elle centralise la gestion des immeubles, des copropriétaires, de la comptabilité, des assemblées générales et de l'ensemble de la vie de la copropriété.
Gratuit pour démarrer · Sans engagement · Données hébergées en France
- À quoi sert ce produit ?
- Fonctionnalités principales
- Sécurité, conformité & opérations
- Comment ça fonctionne
- Environnements
- Déploiement
- Stack technique
- Démarrage rapide
- Variables d'environnement
- Contribuer
- Licence
- Documentation complémentaire
| Document | Description |
|---|---|
| Architecture | Vue d'ensemble des couches backend et frontend, déploiement Docker |
| Modules fonctionnels | Guide des 5 modules métier avec diagrammes de flux |
| Schéma des données | Tables de la base de données et relations entre entités |
| Référence API | Liste complète des 58+ points d'accès de l'API REST |
| Authentification | Connexion email/mot de passe, rôles et sécurité |
| Cycle annuel | 13 tâches réglementaires obligatoires et suivi de conformité |
| Convocations AG | Processus de convocation en 4 étapes avec délai légal 21 jours |
| Notifications | Système de notifications temps réel via SSE |
| Exports | Génération de 5 documents PDF et fichiers Excel |
| Extranet copropriétaires | Espace en lecture seule pour les copropriétaires |
| Gestion des utilisateurs | Création de comptes en masse et parcours de première connexion |
| Conformité RGPD | Audit de conformité au Règlement Général sur la Protection des Données |
| Stratégie open-core | Modèle AGPL-3.0, grille tarifaire et stratégie d'acquisition |
| Roadmap disruptive | Roadmap 2026 : 4 piliers, 16 fonctionnalités, 10 sprints |
| Base POWIMO | Analyse de l'application legacy POWIMO (Square Habitat) |
| Analyse fondations P1 | Décisions architecture event-driven et priorités sprint 1 |
| Intégration Stripe | Abonnements, facturation à l'usage et contrôle des quotas |
| Événements de domaine | EventBus, SSE temps réel et timeline des entités |
| Système d'emails | Emails transactionnels, templates et configuration SMTP |
| Intégration Stripe | Abonnements, facturation à l'usage et contrôle des quotas |
| Événements de domaine | EventBus, SSE temps réel et timeline des entités |
| Système d'emails | Emails transactionnels, templates et configuration SMTP |
- Centraliser la gestion de vos copropriétés dans un seul outil
- Administrer l'annuaire des copropriétaires, locataires et mutations
- Suivre la comptabilité : budgets, appels de fonds et comptabilité réglementaire (loi ALUR)
- Organiser vos assemblées générales avec résolutions, votes et feuilles de présence
- Déclarer et suivre les incidents, interventions et contrats de prestataires
- Gérer les documents, assurances, contentieux et obligations réglementaires
- Offrir un espace extranet aux copropriétaires pour consulter leurs documents
- Visualiser l'activité de votre parc immobilier via un tableau de bord
- Exporter vos données en PDF et Excel
- Gestion des copropriétés — Fiche complète de chaque immeuble avec lots, parties communes et clés de répartition
- Annuaire copropriétaires — Coordonnées, historique des mutations et lots associés
- Gestion des locataires — Suivi des occupants par lot avec dates d'entrée et de sortie
- Comptabilité & charges — Budgets prévisionnels, appels de fonds, suivi des paiements et fonds de travaux
- Comptabilité réglementaire — Journal, grand livre, balance et annexes conformes à la loi ALUR
- Comptes bancaires — Suivi des comptes et mouvements bancaires de chaque copropriété
- Assemblées générales — Planification, convocations, résolutions, votes et feuilles de présence
- Conseil syndical — Gestion des membres du conseil syndical
- Travaux & incidents — Déclaration d'incidents, suivi des interventions et carnet d'entretien
- Contrats & prestataires — Gestion des contrats fournisseurs et suivi des prestataires
- Employés du syndicat — Gestion du personnel du syndicat de copropriétaires
- Assurances & sinistres — Suivi des polices d'assurance et déclaration de sinistres
- Contentieux & recouvrement — Relances et procédures pour les impayés
- Documents (GED) — Gestion électronique des documents avec téléversement et téléchargement
- Extranet copropriétaires — Espace dédié en lecture seule avec accès selon le rôle
- Règlement de copropriété — Consultation et gestion du règlement
- Immatriculation — Déclarations au registre national des copropriétés
- Contrat de syndic — Gestion du mandat et mise en concurrence
- Fiche synthétique — Vue consolidée des informations clés de chaque copropriété
- Cycle annuel — Suivi des 13 tâches réglementaires obligatoires avec indicateur de conformité
- Notifications temps réel — Alertes via Server-Sent Events (SSE)
- Exports — Génération de documents PDF (PDFKit) et fichiers Excel (ExcelJS)
- Tableau de bord — Indicateurs clés, incidents récents et prochaines assemblées
- Authentification sécurisée — Connexion par email ou via Microsoft Azure AD (SSO)
- Abonnements Stripe — Gestion des plans tarifaires avec facturation à l'usage
- Mode sombre — Interface adaptable selon vos préférences visuelles
- Messagerie & tickets — Système de tickets complet avec fils de discussion (
/api/tickets, frontend/#/tickets) - Annexes comptables AG — Génération des 5 annexes obligatoires du décret 2005-240 (
/api/ag-reports/:coproprieteId/annexe/:numero, pack complet PDF) - Vote électronique — Votes et procurations en ligne (
/api/votes,/api/procurations) avec règles de majorité (articles 24/25/26/unanimité) et limite légale de 3 procurations - Paiement en ligne copropriétaires — Stripe Checkout (carte + SEPA) via
/api/extranet/payments/checkout - Signature électronique — Intégration Yousign (stub) via
/api/signaturesavec webhook - Workflow d'auto-relance —
POST /api/coproprietes/:id/auto-relancesgénère relances amiables et mises en demeure - Tableau de bord enrichi — Nouveaux KPIs (
taux_recouvrement,impayes_evolution,incidents_par_statut,prochaines_echeances) visualisés avec Recharts - Conformité loi ALUR —
GET /api/coproprietes/:id/complianceretourne le rapport de conformité
- PWA — Manifeste et service worker avec cache API hors-ligne, invite d'installation, indicateur offline
- Composants réutilisables —
DataTable,ConfirmDialog,ErrorAlert,ErrorBoundary,Breadcrumbs,TabBar,NoCoproprieteSelected - Code splitting — Toutes les routes de pages utilisent
React.lazy - Accessibilité —
aria-labelsur tous les boutons d'action à icône seule
- Protection CSRF — Middleware double-submit cookie (
apps/backend/src/middleware/csrf.js) - Verrouillage de compte — 5 tentatives de connexion échouées déclenchent un verrouillage de 15 minutes (
apps/backend/src/middleware/accountLockout.js) - Corrélation des requêtes — En-tête
X-Request-Idinjecté parapps/backend/src/middleware/correlationId.js - Validation d'entrée Zod — Toutes les routes POST/PUT valident les corps de requête via
apps/backend/src/schemas/index.js - Pagination standardisée — Tous les endpoints de liste supportent
?page=1&limit=20&sortBy=created_at&sortOrder=desc(apps/backend/src/utils/pagination.js) - API versionnée — Routes disponibles à la fois sous
/apiet/api/v1 - Health check enrichi —
/api/healthrenvoie l'état de connectivité et la latence de la base de données - Métriques Prometheus — Endpoint
/metrics(hors préfixe/api), protection optionnelle par bearer token viaMETRICS_AUTH_TOKEN
- Journal d'audit infalsifiable — Chaîne de hachage SHA-256 ; vérification via
GET /api/audit/verify-chain(admin uniquement) - Chiffrement PII — Chiffrement AES-256-GCM opt-in des champs IBAN via
PII_ENCRYPTION_KEY(générer une clé avecnode scripts/generate-encryption-key.js) - RGPD — Exports complets (Art. 20) et droit à l'effacement (Art. 17) via
GdprExportServiceetGdprErasureService
- Sauvegardes automatisées —
scripts/backup.sh(pg_dump compressé + rotation) et sidecar quotidien à 3 h du matin (compose.backup.yml) - Logs JSON structurés — Winston diffuse en stdout au format JSON en production ; helper de log sampling dans
apps/backend/src/utils/logSampling.js - Runbook —
docs/operations.mddétaille backup/restore, logs, metrics et incident response
graph LR
A[Utilisateur] --> B[Application Web]
B -->|Requêtes API| C[Serveur Backend]
B -->|Temps réel| G[SSE]
C --> D[Base de données PostgreSQL]
C --> E[Microsoft Azure AD]
C --> F[Génération PDF & Excel]
C --> H[Stripe]
C --> G
L'utilisateur accède à l'application web depuis son navigateur. L'application communique avec le serveur backend via une API REST. Le backend gère la logique métier, stocke les données dans PostgreSQL et délègue l'authentification à Better Auth (email/mot de passe ou Microsoft Azure AD). Il génère des documents PDF et Excel à la demande. Les mises à jour en temps réel sont transmises via SSE (Server-Sent Events). Stripe gère les abonnements et la facturation à l'usage.
En production, le backend sert aussi les fichiers statiques de l'application web.
| Environnement | URL | Description |
|---|---|---|
| Développement (frontend) | http://localhost:3000 |
Serveur Vite local (proxy /api vers le backend) |
| Développement (backend) | http://localhost:3001 |
API Express locale |
| Production (Docker) | http://localhost:3000 |
Application complète conteneurisée |
graph LR
A[Développeur] -->|Push sur main| B[GitHub Actions]
B -->|Lint + Tests + Build| C{CI OK ?}
C -->|Oui| D[Semantic Release]
C -->|Non| E[Notification erreur]
D -->|Nouvelle version| F[Build Docker]
F -->|Push| G[GitHub Container Registry]
Le pipeline CI/CD (Intégration et Déploiement Continus) s'exécute via GitHub Actions à chaque push sur la branche principale. Il lance le lint, les tests et le build du frontend. Si tout réussit, Semantic Release détermine le numéro de version. Une image Docker multi-étapes est alors construite et publiée sur GitHub Container Registry (GHCR). Docker Compose orchestre l'application et la base de données PostgreSQL en production.
- Frontend : React 19, TypeScript 5.7, TailwindCSS v4, Radix UI (shadcn/ui), React Query 5, Zustand 5, Recharts, Motion
- Backend : Node.js 24, Express 5, Knex.js 3 (query builder), Better Auth 1.4, Stripe, PDFKit, ExcelJS, Nodemailer
- Base de données : PostgreSQL 18 (33 migrations, 23 fichiers de seed)
- Infrastructure : Docker, Docker Compose, GitHub Actions, Semantic Release, GHCR
Créez un compte gratuitement sur la plateforme hébergée — opérationnel en 5 minutes, sans installation.
git clone https://github.com/Wifsimster/copro-pilot.git
cd copro-pilot
docker compose -f compose.local.yml up -dL'application est disponible sur http://localhost:3000. Voir CONTRIBUTING.md pour le setup de développement complet.
Les variables principales sont documentées dans apps/backend/.env.example. Les plus courantes :
| Variable | Description | Requis |
|---|---|---|
POSTGRES_URI / POSTGRES_* |
Connexion PostgreSQL | Oui |
BETTER_AUTH_SECRET |
Secret Better Auth | Oui |
BASE_URL |
URL du frontend (CORS + auth) | Oui |
Variables optionnelles liées aux nouvelles fonctionnalités :
| Variable | Description | Défaut |
|---|---|---|
PII_ENCRYPTION_KEY |
Clé AES-256-GCM pour chiffrer les IBAN (générer via node scripts/generate-encryption-key.js) |
— (chiffrement désactivé) |
METRICS_AUTH_TOKEN |
Bearer token requis pour accéder à l'endpoint /metrics |
— (endpoint public) |
YOUSIGN_API_KEY |
Clé API Yousign pour la signature électronique | — |
YOUSIGN_WEBHOOK_SECRET |
Secret de validation du webhook Yousign | — |
Les contributions sont les bienvenues ! Consultez le guide CONTRIBUTING.md pour :
- Installer l'environnement de développement
- Comprendre les conventions de code et de commit
- Soumettre une Pull Request
CoproPilot est distribué sous licence AGPL-3.0. Vous êtes libre d'utiliser, modifier et distribuer ce logiciel, à condition que toute version modifiée hébergée publiquement soit également publiée sous AGPL-3.0.
Une documentation technique détaillée est disponible dans le répertoire docs/ (19 documents).
| Document | Description |
|---|---|
| Architecture | Vue d'ensemble des couches backend et frontend, déploiement Docker |
| Modules fonctionnels | Guide des 5 modules métier avec diagrammes de flux |
| Schéma des données | Tables de la base de données et relations entre entités |
| Référence API | Liste complète des 58+ points d'accès de l'API REST |
| Authentification | Connexion email/mot de passe, rôles et sécurité |
| Cycle annuel | 13 tâches réglementaires obligatoires et suivi de conformité |
| Convocations AG | Processus de convocation en 4 étapes avec délai légal 21 jours |
| Notifications | Système de notifications temps réel via SSE |
| Exports | Génération de 5 documents PDF et fichiers Excel |
| Extranet copropriétaires | Espace en lecture seule pour les copropriétaires |
| Gestion des utilisateurs | Création de comptes en masse et parcours de première connexion |
| Conformité RGPD | Audit de conformité au Règlement Général sur la Protection des Données |
| Stratégie open-core | Modèle AGPL-3.0, grille tarifaire et stratégie d'acquisition |
| Roadmap disruptive | Roadmap 2026 : 4 piliers, 16 fonctionnalités, 10 sprints |
| Base POWIMO | Analyse de l'application legacy POWIMO (Square Habitat) |
| Analyse fondations P1 | Décisions architecture event-driven et priorités sprint 1 |
| Intégration Stripe | Abonnements, facturation à l'usage et contrôle des quotas |
| Événements de domaine | EventBus, SSE temps réel et timeline des entités |
| Système d'emails | Emails transactionnels, templates et configuration SMTP |