Logiciel / Application web libre et auto-hébergeable pour la gestion complète des refuges et associations de protection animale, pensé sur le terrain par un refuge animalier. https://globinours.fr
  • PHP 99.2%
  • CSS 0.6%
  • JavaScript 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-10 00:35:23 +02:00
app Améliore l'édition du site public 2026-09-10 00:35:23 +02:00
deploy Publier Globinours 1.0.0-rc.3 2026-09-03 21:58:00 +02:00
docs Adapte le canal aux versions candidates 2026-09-08 20:15:08 +02:00
migrations Configure les tarifs d'adoption par espèce 2026-09-08 00:44:40 +02:00
public Fiabilise les médias et la navigation mobile 2026-09-08 22:28:01 +02:00
resources Améliore l'édition du site public 2026-09-10 00:35:23 +02:00
scripts Ajoute les mises à jour autonomes 2026-09-08 20:13:55 +02:00
tests Permet de modifier et supprimer les tarifs 2026-09-08 00:57:43 +02:00
.editorconfig Publier Globinours 1.0.0-rc.3 2026-09-03 21:58:00 +02:00
.gitignore Publier Globinours 1.0.0-rc.3 2026-09-03 21:58:00 +02:00
CHANGELOG.md Améliore l'édition du site public 2026-09-10 00:35:23 +02:00
HISTORIQUE.md Améliore l'édition du site public 2026-09-10 00:35:23 +02:00
LICENSE.md Publier Globinours 1.0.0-rc.3 2026-09-03 21:58:00 +02:00
README.md Améliore l'édition du site public 2026-09-10 00:35:23 +02:00
VERSION Améliore l'édition du site public 2026-09-10 00:35:23 +02:00

Logo Globinours

Globinours

La gestion quotidienne d’un refuge, pensée pour rester humaine, rapide et lisible.
Né de l’histoire de Twix, conçu pour protéger les suivants.

PHP 8.1+ SQLite Licence AGPL-3.0-or-later

Le projet

Globinours est une application web libre de gestion de refuge animalier. Elle réunit les animaux, le suivi médical, les contacts, les familles d’accueil, les tournées, les documents et les tâches administratives dans une interface adaptée aux ordinateurs et aux tablettes.

L’application est développée à partir de besoins rencontrés sur le terrain. Elle privilégie des parcours courts, une installation légère et la maîtrise locale des données. Son histoire est racontée dans HISTORIQUE.md ; les changements publiés sont consignés dans CHANGELOG.md.

Fonctions principales

  • fiches animales multi-espèces, historique, lieux de vie, parentés et groupes inséparables ;
  • traitements, vaccinations, vermifuges, poids, analyses biologiques et documents médicaux ;
  • tournées de soins sur tablette avec salles et box configurables ;
  • annuaire des bénévoles, familles d’accueil, adoptants et partenaires ;
  • placements, adoptions, retours, décès, archives et corbeille ;
  • agenda partagé, rappels médicaux et abonnement iCalendar privé ;
  • pharmacie, lots, péremptions et mouvements de stock ;
  • factures vétérinaires, règlements, justificatifs et statistiques de coûts ;
  • registre des entrées et sorties, exports CSV et dossiers de subvention ;
  • recherche globale avec contrôle des résultats selon le rôle ;
  • site public facultatif pour les animaux proposés à l’adoption ;
  • import progressif depuis Animal Shelter Manager 3 (ASM3) ;
  • sauvegarde et restauration depuis l’interface d’administration ;
  • interface française et anglaise.

Le manuel utilisateur décrit chaque module en détail.

Architecture

Globinours est rendu côté serveur en PHP et ne nécessite ni framework serveur ni dépendance Composer.

Globinours/
├── app/
│   ├── Controllers/       # Actions HTTP
│   ├── Routes/            # Table de routage
│   ├── Services/          # Logique métier et infrastructure
│   └── Views/             # Interface HTML/PHP
├── migrations/            # Évolution versionnée de SQLite
├── public/                # Racine à exposer au serveur web
├── resources/             # Traductions, identité et ressources livrées
├── scripts/               # Maintenance et imports en ligne de commande
├── deploy/                # Exemples de déploiement
├── docs/                  # Manuel et documentation technique
└── tests/                 # Tests sur une base temporaire

Les données d’une installation ne font pas partie du dépôt :

  • data/refuge.sqlite : base SQLite ;
  • data/association/ : identité et logo de l’association ;
  • public/media/ : médias publics ;
  • data/private-media/ et data/medical-documents/ : fichiers privés ;
  • storage/ : sauvegardes et journaux.

Les fichiers SQL de migrations/ sont indispensables. Ils créent une nouvelle base et font évoluer les installations existantes sans rejouer les migrations déjà enregistrées.

Prérequis

  • PHP 8.1 ou supérieur ;
  • PDO SQLite et SQLite 3 ;
  • extensions PHP pdo_sqlite, mbstring, json, fileinfo et session ;
  • extensions zip, curl, gd ou imagick recommandées selon les fonctions utilisées ;
  • droits d’écriture sur data/, storage/ et public/media/ ;
  • racine web configurée sur public/ en production.

LibreOffice est facultatif et sert uniquement à convertir certains modèles ODT en PDF.

Installation locale

Depuis la racine du projet :

Un fichier .env est facultatif. Il sert uniquement aux intégrations et aux réglages d’environnement, par exemple :

ICAD_LOGIN=
ICAD_PASSWORD=
GEOCODER_EMAIL=contact@example.org
APP_ENV=development

Lancez ensuite le serveur local :

php -d upload_max_filesize=250M -d post_max_size=260M \
  -S 127.0.0.1:8000 -t public public/router.php

Le dernier argument, public/router.php, est indispensable : sans lui, les routes telles que la recherche universelle (/search.json) renvoient une page introuvable avec le serveur PHP intégré.

Ouvrez ensuite http://127.0.0.1:8000/setup. L’assistant vérifie l’environnement, recueille l’identité de l’association et crée le premier compte administrateur.

Le serveur PHP intégré ne prend pas en charge HTTPS. Si le navigateur utilise un mode « HTTPS uniquement », autorisez HTTP pour l’adresse locale ; une tentative en https://127.0.0.1:8000 apparaît dans le terminal comme une requête SSL non prise en charge.

Les migrations sont appliquées automatiquement. Elles peuvent aussi être exécutées explicitement :

php scripts/migrate.php

Pour charger le jeu de démonstration fictif, utilisez Paramètres → Données et démonstration. Cette opération est réservée aux installations de test.

Déploiement

En production, seul le dossier public/ doit être accessible depuis le Web. Des exemples pour Nginx, PHP-FPM et systemd sont fournis dans deploy/.

Un paquet YunoHost distinct automatise l’installation, les permissions, la persistance des données, les sauvegardes et les mises à jour. Il est maintenu dans le dépôt globinours_ynh.

Après un déploiement manuel :

php scripts/migrate.php
php scripts/maintenance.php

La première commande applique les évolutions de la base. La seconde vérifie notamment son intégrité et ses relations.

Mise à jour et sauvegardes

Une sauvegarde complète doit précéder toute mise à jour. Depuis l’application, ouvrez Paramètres → Sauvegardes. En ligne de commande :

php scripts/backup.php avant-mise-a-jour

Le script de déploiement contrôlé conserve la version précédente du code, active la maintenance, applique les migrations puis vérifie SQLite. Son utilisation est documentée dans deploy/README.md.

Une restauration remplace les données courantes. Elle doit être testée régulièrement sur une installation séparée.

Sécurité et confidentialité

Globinours comprend notamment :

  • mots de passe hachés avec les fonctions natives de PHP ;
  • renouvellement de session et protection CSRF ;
  • rôles et permissions contrôlés côté serveur ;
  • journal d’audit des actions sensibles ;
  • validation des fichiers téléversés et suppression des métadonnées des images ;
  • stockage privé des documents médicaux, justificatifs et sauvegardes ;
  • neutralisation des formules dans les exports CSV ;
  • en-têtes HTTP de sécurité appliqués par l’application.

La sécurité dépend aussi du déploiement : HTTPS, permissions Unix, sauvegardes hors serveur et exposition exclusive de public/ restent nécessaires.

Ne publiez jamais .env, les bases SQLite, les médias d’une association, les sauvegardes ou les documents privés. Le fichier .gitignore fourni couvre les emplacements habituels, mais doit être vérifié avant chaque publication.

Le fonctionnement des accès, appareils de confiance et outils RGPD est détaillé dans docs/09-utilisateurs-et-rgpd.md.

Vérifications

La suite de tests utilise une base temporaire et ne touche pas aux données de l’installation :

php tests/run.php

Elle contrôle notamment les migrations, l’intégrité SQLite, l’authentification, les permissions, les parcours médicaux et administratifs ainsi que les sauvegardes.

Contrôles complémentaires :

php scripts/check_translations.php
find app public scripts tests -name '*.php' -print0 | xargs -0 -n1 php -l

Import ASM3

L’assistant Paramètres → Migration ASM3 analyse un export .sql ou .pgsql avant toute écriture. Deux stratégies sont disponibles : fusionner avec les données existantes ou remplacer uniquement les données métier. Une sauvegarde est créée avant l’import réel.

Les outils en ligne de commande sont destinés aux migrations avancées et commencent par une simulation :

php scripts/asm3-analyze.php chemin/vers/dump.sql
php scripts/asm3-plan.php chemin/vers/dump.sql
php scripts/asm3-import.php chemin/vers/dump.sql

L’option --apply ne doit être utilisée qu’après lecture des rapports. Le manuel de maintenance fournit le parcours complet : docs/11-sauvegardes-et-maintenance.md.

Documentation

État du projet

La candidate actuelle est 1.0.0-rc.18. La branche 1.0 est gelée fonctionnellement : seuls les défauts bloquants découverts pendant les validations terrain sont corrigés avant 1.0.0.

Le contrôle de stabilisation est disponible dans docs/AUDIT-1.0.md.

Licence

Globinours est distribué sous licence GNU AGPLv3 ou ultérieure.

Les données, photographies, documents privés et modèles appartenant à une installation ne sont pas couverts par la licence du code simplement parce qu’ils sont utilisés avec Globinours.


Globinours
Un outil léger, construit autour des animaux et des personnes qui prennent soin d’eux.