Publier Globinours 1.0.0-rc.3

This commit is contained in:
Alexandre NOEL 2026-09-03 12:39:15 +02:00
commit 9a2b4068da
325 changed files with 38230 additions and 20 deletions

42
deploy/README.md Normal file
View file

@ -0,0 +1,42 @@
# Déployer Globinours
La racine web doit toujours être `public/`. La base SQLite, les sauvegardes et les documents privés ne doivent jamais être servis par Nginx.
## Serveur Nginx + PHP-FPM
1. Installer PHP 8.2+ et les extensions `pdo_sqlite`, `sqlite3`, `mbstring`, `xml`, `zip`, `gd`, `curl` et `fileinfo`, ainsi que `rsync`.
2. Copier le projet dans `/var/www/globinours` et donner lécriture à lutilisateur PHP sur `data/`, `storage/` et `public/media/`.
3. Adapter puis installer `deploy/php-fpm/globinours.conf` et `deploy/nginx/globinours.conf`.
4. Recharger PHP-FPM et Nginx, ouvrir le domaine puis suivre `/setup`.
Le service systemd fourni est réservé à une démonstration derrière un reverse proxy. Le serveur PHP intégré nest pas recommandé en production.
## Mise à niveau et retour arrière
Créer une archive de version contenant `VERSION`, puis lancer :
```bash
sudo -u www-data ./scripts/update.sh /tmp/globinours-1.0.0.tar.gz
```
Le script valide larchive, crée une sauvegarde fonctionnelle, conserve un snapshot du code, active la maintenance, déploie avec `rsync`, applique les migrations et vérifie SQLite. Pour restaurer le code :
```bash
sudo -u www-data ./scripts/rollback.sh storage/releases/code-1.0.0-YYYYmmdd-HHMMSS.tar.gz
```
Une migration de base nest volontairement jamais annulée automatiquement. Si nécessaire, restaurez ensuite le ZIP créé avant la mise à niveau depuis Paramètres > Sauvegardes.
## Maintenance planifiée
Activez la fréquence dans **Paramètres > Sauvegardes**, puis faites exécuter la commande suivante toutes les heures par cron ou un timer systemd :
```bash
sudo -u www-data php /var/www/globinours/scripts/maintenance.php run
```
La commande ne recrée une sauvegarde que lorsquelle est arrivée à échéance. Elle relit ensuite le ZIP, vérifie toutes les empreintes du manifeste et exécute le contrôle dintégrité SQLite. Elle purge également les anciennes lignes du registre daccès privé selon la politique RGPD et tente lenvoi du résumé de notifications lorsquil est activé. Son résultat JSON et son code de sortie peuvent être supervisés.
## YunoHost
Le paquet YunoHost est maintenu séparément dans le dépôt voisin `yunohost/`. Il téléchargera une archive officielle de Globinours avec contrôle SHA-256 après la création du premier tag stable.

View file

@ -0,0 +1,16 @@
server {
listen 80;
server_name refuge.example.org;
root /var/www/globinours/public;
index index.php;
client_max_body_size 250M;
location / { try_files $uri $uri/ /index.php?$query_string; }
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTP_PROXY "";
fastcgi_pass unix:/run/php/php8.2-fpm-globinours.sock;
}
location ~ /\. { deny all; }
}

View file

@ -0,0 +1,15 @@
[globinours]
user = www-data
group = www-data
listen = /run/php/php8.2-fpm-globinours.sock
listen.owner = www-data
listen.group = www-data
pm = ondemand
pm.max_children = 8
pm.process_idle_timeout = 10s
php_admin_value[upload_max_filesize] = 250M
php_admin_value[post_max_size] = 260M
php_admin_value[max_execution_time] = 600
php_admin_value[session.cookie_httponly] = 1
php_admin_value[session.cookie_samesite] = Lax
php_admin_value[open_basedir] = /var/www/globinours:/tmp

View file

@ -0,0 +1,16 @@
[Unit]
Description=Globinours demonstration server
After=network.target
[Service]
Type=simple
User=www-data
Group=www-data
WorkingDirectory=/var/www/globinours
ExecStart=/usr/bin/php -S 127.0.0.1:8091 -t public public/router.php
Restart=on-failure
PrivateTmp=true
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target