Introduction à ODK
Open Data Kit (ODK) permet de créer des formulaires pour collecter de la donnée depuis le terrain.
Ce kit est composé:
- d’un standard XLSForm pour réaliser des formulaires avec un tableur comme LibreOffice, Excel ou Google Spreadsheet,
- de l’application mobile ODK Collect pour collecter les données sur le terrain à partir du formulaire créé,
- et d’un serveur pour agréger les soumissions de formulaires comme ODK Central ou KoboToolBox.
Les avantages sont la facilité de mise en œuvre et d’adapatation à une problématique. Il n’y a pas de base de données à installer et tout le paramétrage du formulaire se fait à l’aide d’un tableur. Le serveur ne sert qu’à agréger et télécharger les données. Rien ne reste sur le serveur une fois l’enquête terminée.
Autre avantage: la saisie sur le terrain en mode déconnecté lorsque la couverture réseau est incertaine. De plus, comme il n’y a pas de grosse base de données, le serveur n’a pas besoin d’être un monstre. Les données collectées avec une composante spatiale (réponses à la question “où?”) peuvent servir à alimenter un Système d’Information Géographique (SIG).
Pour toute information complémentaire, vous pouvez consulter le site getodk, la documentation ou le dépot de code github
Auto-héberger le serveur ODK Central
Vous pouvez choisir d’auto-héberger le serveur ODK Central pour avoir la main sur tout le workflow. Pour ceux qui ne veulent pas s’embêter, vous pouvez utiliser un serveur hébergé par un fournisseur de service, payant ou pas, mais là n’est pas l’objet de mon post. Enfin, à la fin du post je détaille l’utilisation de KoboToolBox quand même.
Installer ODK Central sur un serveur
Ce n’est pas bien compliqué un fois qu’on a son domaine et son serveur VPS. J’ai suivi ce tuto et notamment cette section pour une installation avec Docker sur un VPS OVH.
Louer un VPS
J’ai pris un VPS de base avec 2Go de RAM chez OVH. Les option de snapshot et de backup automatique font grimper la facture. A voir car les données soumises sont téléchargées au fur et à mesure. Le snapshot reste intéressant pour une sauvegarde de l’installation à un instant T. Il est possible de s’en sortir pour 10 à 12€ TTC /mois avec snapshot et backup automatique, et pour 5€ sans les sauvegardes mais c’est sans filet.
J’ai choisi un serveur avec OS (debian 12) et Docker préinstallé mais vous pouvez choisir un serveur Debian nu et faire votre installation de Docker à la mano. Un fois fait, vous recevrez un lien par mail pour définir un mot de passe pour le compte root. La connexion au serveur se fera par SSH. Pour un minimum de sécurité, pensez à changer le port par défaut du SSH, voire mettre en place un fail2ban. Cette doc OVH peut vous aider. Pas besoin d’être parano car le serveur debian est une “coquille vide”, tout se passe dans les containers Docker.
Vous aurez accès à tous les paramètres dans le manager OVH dans la section Bare Metal Cloud correspondant aux VPS.
Pour l’exemple, l’IP du serveur sera 137.24.255.255
.
Configurer son domaine
Prendre un domaine chez un Registrar
Vous avez besoin de prendre un nom de domaine chez un Registrar. Il y en a pour tous les gouts faites vous plaisir. Attention le coût peut varier en fonction de l’extension de premier niveau et de la promo la première année. Un .fr coute environ 7-8€ /an. Cela va permettre de faire pointer un sous domaine vers votre serveur VPS. Dans l’exemple le domaine sera toto.fr
.
Configurer un sous-domaine
Pourquoi configurer un sous-domaine et pas le domaine entier? Parce que votre domaine toto.fr
peut servir à plein d’autres choses. Il suffit de créer un sous domaine okcentral
et de l’affecter à votre VPS sur lequel sera installé ODK Central.
Pour cela, dans votre manager OVH, allez dans l’onglet Web Cloud, puis sur votre domaine et dans la section Zone DNS.
Cliquez sur le bouton “Ajouter un entrée”, choisissez un type de champ DNS “A”, remplissez votre sous domaine comme odkcentral
, laissez la TTL par défaut, et définissez la cible vers l’adresse IP de votre serveur VPS 137.24.255.255
et validez.
Lorsque quelqu’un remplira l’url https://odkcentral.toto.fr
dans son navigateur, il sera redirigé sur le VPS hébergeant ODK Central.
Installer ODK Central
Installation avec Docker
Avec un terminal, connecté en SSH au VPS avec un compte ayant des droits root lancer les commandes indiquées.
Adapté d’après ce tuto.
S’assurer d’avoir les bonnes versions de Docker Engine > v23x et de Docker Compose > v2.16.x
$ docker --version && docker compose version
Télécharger le logiciel à partir de github
$ git clone https://github.com/getodk/central
Aller dans le nouveau dossier central
$ cd central
Obtenir la dernière version du client et du serveur avec git
$ git submodule update -i
Mettre à jour les paramètres en copiant le modèle de fichier des paramètres pour les éditer
$ cp .env.template .env
Editer le fichier .env
avec l’éditeur de texte nano
$ nano .env
Naviger avec les flèches directionnelles à l’intérieur de nano
Changer la ligne DOMAIN=MyOdkCentralServer.com
pour DOMAIN=odkcentral.toto.fr
Changer la ligne SYSADMIN_EMAIL=administrator@email.com
pour SYSADMIN_EMAIL=votre@email.com
. Cette adresse mail est utilisée par le service de certicats let’s encrypt
Enregistrer avec les touches CTRL
+ x
et Entrée
On veut la denière version de la base de donnée postgres (comme quoi il y a quand même une base de données)
$ touch ./files/allow-postgres14-upgrade
Lancer la construction des containers avec Docker compose
$ docker compose build
Attendre. Surveillez le “Successfully built”. Super, ODK Central est installé.
Démarrer le serveur Central
$ docker compose up -d
Regardez si ODK a fini de charger
$ docker compose ps
Sous la colonne status
attendre que central-nginx-1
soit Up
ou Up (healthy)
Vérifier que le site répond en allant sur https://odkcentral.toto.fr
Créez un compte administrateur de ODK Central
Aller dans le dossier central sur le VPS
$ cd central
Créer un nouveau compte avec une adresse email
$ docker compose exec service odk-cmd --email YOUREMAIL@ADDRESSHERE.com user-create
Rentrer un mot de passe
Rendre ce compte administrateur
$ docker compose exec service odk-cmd --email YOUREMAIL@ADDRESSHERE.com user-promote
Si vous perdez votre mot de passe réinitialisez le
$ docker compose exec service odk-cmd --email YOUREMAIL@ADDRESSHERE.com user-set-password
Retournez sur le site https://odkcentral.toto.fr
et connectez vous avec le compte administrateur créé.
Modéliser son formulaire XLSForm
à venir
Installer le client mobile ODK Collect
à venir
Utiliser le formulaire web Enketo
à venir
Télécharger les soumissions de formulaires avec ODK Central
à venir
Utiliser les données dans un SIG avec QGis
à venir
KoboToolBox
à venir
Ressources, tutoriels, vidéos
Vidéos:
- Cette vidéo montre bien l’installation d’ODK Central et la configuration du sous-domaine sur un serveur Linux.
- Celle-ci vous guide pour réaliser votre premier formulaire.
- Celle-là vous explique comment utiliser KoboToolBox pour télécharger les données.
Articles:
Forum:
Docs: