Boîte à outils
Docker Compose — KoboToolbox 19.3
Le modèle directement importable dans un service Docker Compose Coolify pour KoboToolbox 19.3.
- Publication
- septembre 2026
- Langue
- FR
- Thématiques
- Données pour le développement, Technologies pour le développement
Résumé
Cette ressource met en place PostgreSQL/PostGIS, MongoDB, deux Redis, Enketo, KPI, quatre workers, Celery beat et trois passerelles Nginx. Profil retenu : topologie complète kpi, kobocat et enketo. Elle accompagne le guide complet de déploiement.
Architecture
Postgresql/postgis, mongodb, deux redis, enketo, kpi, quatre workers, celery beat et trois passerelles nginx. Le domaine public est attribué au service d’entrée ; les autres composants communiquent sur le réseau interne.
Prérequis
Un serveur compatible avec les besoins de la solution, Docker géré par Coolify, un domaine pointé vers le serveur, un espace de stockage persistant et un accès administrateur à la plateforme. La mémoire, le processeur et le disque doivent être dimensionnés selon les utilisateurs, les données et les tâches de fond. KoboToolbox organise tout le cycle d’une enquête : conception, déploiement, collecte web ou Android, réception, contrôle et export.
Variables, secrets et volumes
Les variables décrivent les domaines et le comportement de l’application. Les secrets sont générés une fois et partagés avec les services qui utilisent la même identité. L’état durable comprend PostgreSQL, MongoDB, médias KPI et KoboCAT, éléments Redis utiles, configuration et secrets.
Installation et validation
Créer un service Docker Compose, importer le fichier, attribuer le domaine, compléter les paramètres puis lancer le déploiement. Attendre les initialisations et exercer le parcours suivant : connexion, création et aperçu d’un formulaire, déploiement, soumission anonyme, réception dans KPI et maintien des workers.
Sauvegarde, restauration et mise à jour
Traiter bases, médias, configuration et secrets comme un groupe cohérent de reprise. Avant une mise à jour, produire un point de reprise, tester la nouvelle version dans un environnement isolé et rejouer le parcours d’acceptation.
Lecture du fichier
Le bloc services décrit les conteneurs et leurs responsabilités. Les ancres réutilisent les variables communes sans dupliquer leur définition. Les volumes nommés identifient les états qui survivent aux redéploiements. Les contrôles de santé et les conditions de dépendance organisent le passage de la base vers l’initialisation, puis vers le service courant. La collecte hors connexion rend possible le travail avec une connectivité intermittente, mais elle impose une préparation des appareils, un versionnement des formulaires, des règles de synchronisation et une procédure pour les soumissions restées en file locale.
Avant toute adaptation, repérer le service exposé, le propriétaire des migrations, les travailleurs, les magasins d’état et les fichiers gérés. Modifier ensuite une responsabilité à la fois et conserver un parcours de validation reproductible. La topologie complète associe PostgreSQL/PostGIS, MongoDB, deux Redis, Enketo, KPI, KoboCAT, plusieurs workers Celery, beat et trois passerelles publiques.
Exploitation
Après installation, suivre le domaine public, les certificats, la santé des services, l’espace disque, les files et la croissance des bases. Les comptes administrateurs nominatifs remplacent les accès partagés. Les changements de configuration sont relus, datés et accompagnés d’un contrôle fonctionnel. Ces domaines ne sont pas interchangeables : ils participent aux liens de formulaires, aux callbacks, aux cookies et aux sessions.
Adapter sans casser le contrat
Une nouvelle version peut modifier les images, variables, migrations ou chemins persistants. Comparer la composition avec la documentation de la version ciblée, mettre à jour dans un environnement isolé et vérifier les fonctions réellement utilisées. Le modèle reste un point de départ opérationnel, pas un substitut à l’administration du service. Les URL publiques et les noms Docker internes sont donc configurés séparément.
Contrôles avant partage
Vérifier que le fichier ne contient aucun mot de passe ni domaine privé, que les images sont versionnées, que tous les volumes utiles sont nommés et que le service public possède un contrôle de santé. Relire ensuite les instructions d’installation avec une personne qui n’a pas participé à la conception. Le parcours décisif a traversé la vraie chaîne de collecte : connexion, création et aperçu d’un formulaire, déploiement, soumission anonyme, réception dans KPI et observation des workers.
Points de contrôle du modèle
Avant l’import, préparer les trois domaines, leurs variables canoniques et les identifiants de chaque magasin. Les volumes PostgreSQL, MongoDB et médias n’ont pas la même fonction mais doivent être inventoriés ensemble. Un changement de domaine exige de relire callbacks, configuration Enketo, cookies et liens OpenRosa, puis de rejouer une soumission complète depuis un appareil ou un navigateur neuf.