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 okcentralet 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: