Cultivons ! est un logiciel sous forme de site interne visant à aider à la gestion d'une BAD (Base Autonome Durable).
Une BAD est un endroit où une ou plusieurs personnes peuvent (sur)vivre à une catastrophe (naturelle, fléau, guerre, effondrement économique … mettez ici la raison qui vous plaît ou vous fait le plus peur), pendant une période plus ou moins longue, sans avoir besoin de l’extérieur : supermarchés, hôpitaux, et autres services présents dans une société moderne.
Cette définition est un peu large, dans les faits une BAD se matérialisera souvent par un endroit à la campagne où on tentera d’être au maximum autonome sur les aspects les plus importants de la survie :
- la nourriture (potager, verger, animaux … tout ce qui est culture et élevage) ;
- électricité ;
- eau (y compris la potabilisation) ;
- chauffage ;
- premiers soins ;
- stockage de recettes, guides et autres documentations ;
- …
La liste est plus ou moins longue suivant le degré d’autonomie souhaité, sachant que l’autonomie complète est impossible au niveau d’une famille ou d’un très petit cercle. Des communautés sont alors nécessaires pour obtenir tous les produits et services d’une vie confortable. Par exemple un cordonnier peut faire des chaussures en échange de savons faits par un autre membre de la communauté.
Le but de Cultivons ! est de favoriser la gestion d’une telle BAD.
La situation géopolitique actuelle (Ukraine, inflation, pénurie à venir, krack boursier...) génère un désir de devenir plus autonome pour de plus en plus de gens. Le développement de ce logiciel a toutefois été démarré bien longtemps avant ces évènements, et au départ sans l’objectif de le publier en licence libre. Les développements erratiques, une heure par-ci, une demi-heure par là, ayant été motivés par des besoins personnels. C’est toutefois la situation actuelle qui a poussé à partager ces bouts de code, estimant que le nombre de gens intéressés ne fera probablement qu’accroître ces prochains mois. Quand on peut aider… autant le faire.
Il peut paraître fou d’informatiser une gestion aussi critique pour sa survie dans des conditions qu’on estimerait fortement dégradées pouvant provoquer une coupure totale d’électricité.
Ce logiciel a été concu pour être un intranet, donc multi-utilisateurs, pouvant être hébergé sur un mini-PC genre Raspberry PI zero 2W : 512Mo de ram, wifi, consommation électrique de l’ordre de 100mA sous 5V, soit 0.5W de consommation en continue, ce qui est facilement couvert par un petit panneau solaire et une batterie. L’utilisateur peut utiliser quelques minutes par jour un smartphone, une tablette ou un vieux PC portable qui serait également rechargé au solaire.
Il est possible de s’amuser avec le site de démo :
https://cultivons-demo.xulops.net
Bien entendu les informations de la base de données de démo sont fictives et sont automatiquement réinitialisées tous les jours (la nuit).
Pour aider à la gestion d’une BAD, ce logiciel sous licence Apache 2.0 est doté de différents modules qui sont décrits brièvement ci-dessous.
Les différents modules sont accessibles par le menu sur la gauche .
Items
Les items représentent les éléments qui seront gérés par le logiciel, ils sont de deux types :
- les items annuels (légumes, fruits, animaux d’élevage) dont des taches seront affectées tout au long de l’année ;
- les items gérés en stock, qui seront divisés en type (Aliments, médicaments, Habillement...).
Si la définition d’un item géré en stock est assez simple (nom, quantité mini, unité de stock), celle d’un item annuel nécessite la saisie des différentes taches à effectuer. Ces taches peuvent être uniques (récolte d’un légume) ou récurrentes (ouverture du poulailler chaque matin), et elle ne sont à renseigner qu’une seule fois car la bascule d’une année sur l’autre générera automatiquement un nouveau jeu de taches pour cette nouvelle année.
Puisque certaines cultures peuvent s’étaler sur plus d’un an, surtout si le but est de produire des semences car beaucoup de légumes sont bisannuels, un item annuel est toujours suivi de son année de démarrage afin de ne pas les confondre avec le même légume planté l’année suivante.
Les taches
Les taches à faire, qui concernent les items annuels, sont affichées sur l’écran d’accueil, avec la possibilité d’en afficher le détail, de confirmer qu’elle a été effectuée, ou de la décaler à une date ou un moment ultérieur.
L’affichage par défaut est celui des taches en retard (en rouge), des taches à faire ce jour (en vert) et des taches des 3 prochaines jours (en bleu). Un affichage par semaine ou de l’ensemble des taches par zone sont également disponibles.
Météo
Tant que l’internet mondial fonctionne, il n’y a pas de raison de se priver des prévisions météorologiques qui vont aider à planifier les taches en extérieur, c’est par exemple important pour le potager.
Cultivons ! utilise par défaut les prévisions météo d’openmeteo.com (heure par heure sur 7 jours), et peut utiliser celles de piratewheater.net (h/h sur 7j) et visuacrossing.com (h/h sur 15j) si l’utilisateur s’enregistre gratuitement auprès de ces sites et récupère une clé API valide à renseigner dans les paramètres du logiciel (Menu « Admin », puis « Prévisions météo »).
Pour avoir des prévisions de lieu de la BAD, il faut renseigner dans les paramètres les coordonnées GPS de l’emplacement de la BAD.
Stocks
Les stocks sont gérés par zones, chaque zone peut contenir des emplacements. Les zones et emplacements sont à définir dans le module « Admin ».
Chaque entrée d’un item en stock peut s’accompagner d’une date de péremption, permettant de sortir une liste des stocks périmés.
La liste de course affiche la différence entre les quantités mini déclarées pour les items et les quantités en stock.
Dépenses
L’argent reste le nerf de la guerre, il y a donc un module basique qui permet de saisir ses dépenses et de faire quelques statistiques par secteurs (nourriture, assurances, ...).
Documents
Ce module permet de gérer une arborescence et d’y stocker des documents saisis à la main ou téléversés. A l’origine prévu pour stocker des recettes de cuisine, il permet finalement de stocker un peu tous les types de documents.
Technique et installation
Cultivons ! est développé en PHP, et utilise une base de données SQLite.
Il faut donc qu’il tourne sur un serveur web genre Apache ou Nginx. Le PHP peut être installé en module ou CGI (FPM), peu importe. C’est aussi classique que d’installer un wordpress ou n’importe quel autre logiciel web.
Pour un fonctionnement sur un poste en local, le nom du site doit se terminer par .local afin que les navigateurs modernes ne fassent pas de résolution de noms. Cultivons.local est finalement un nom qui rappelle qu’il est bon de cultiver ses propres légumes et de consommer local.
Le module sqlite3 pour PHP n’est pas compilé par défaut dans toutes les distributions linux, il faudra donc penser à installer ce module si besoin (apt-get install php-sqlite3 sous Debian / Ubuntu par exemple).
Si le logiciel est installé sur un serveur accessible par internet, pensez via des .htaccess ou des
à interdire l’accès aux répertoires :
- db , qui contient la base de données et ses sauvegardes ;
- image/document , si vous uploadez des documents sensibles ;
- logs , pour les éventuelles erreurs sql ;
- tmp , pour les fichiers temporaires.
Dans un tel cas, il sera bien entendu indispensable d’activer la gestion des utilisateurs pour limiter l’accès aux utilisateurs avec un login / mot de passe.
Ce logiciel est sous licence Apache License, Version 2.0. Vous ne pouvez utiliser ce logiciel qu'en accord avec la licence. Vous pouvez obtenir une copie de la licence à l'adresse suivante : http://www.apache.org/licenses/LICENSE-2.0
Sauf si requis par loi applicable ou convenu par écrit, le logiciel sous licence est distribué 'TEL QUEL', SANS GARANTIE NI CONDITIONS D'AUCUNE SORTE, expresses ou implicites. Consultez la Licence pour prendre connaissance des conditons spécifiques régissant les autorisations et les limitations en vertu de la Licence.
Vous pouvez utiliser, copier, modifier et redistribuer gratuitement, en accord avec la licence. Si vous voulez remercier le développeur, ou soutenir les développements futurs de ce script, vous pouvez utiliser le bouton ci-dessous pour faire un don.