Auto-hébergement
Ce guide couvre le déploiement en production de Gäld sur votre propre serveur. Pour le développement local, consultez Démarrage rapide.
Cette procédure installe la Community Edition publique complète sous AGPL-3.0-or-later. Elle ne nécessite ni abonnement hébergé, ni identifiants de registry privé, ni plugin EE commercial. La facturation hébergée, les quotas et les opérations SaaS appartiennent au déploiement commercial séparé.
Configuration requise
| Composant | Version minimale |
|---|---|
| PHP | 8.2 |
| PostgreSQL | 15 |
| Redis | 7 |
| Nginx (ou Caddy) | — |
| Node.js (compilation uniquement) | 20 |
Un VPS avec 2 vCPU, 2 Go de RAM et 20 Go de SSD est suffisant pour la plupart des petites organisations.
Installation
git clone https://github.com/Scanix/Gaeld.git /var/www/gaeld
cd /var/www/gaeld
composer install --no-dev --optimize-autoloader
npm install && npm run build
cp .env.example .env
php artisan key:generate
Modifiez .env avec vos valeurs de production (voir Variables d'environnement ci-dessous).
php artisan gaeld:install
Configuration Nginx
server {
listen 80;
server_name app.example.com;
root /var/www/gaeld/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
Ajoutez un certificat SSL (p. ex. via Certbot) et redirigez le port 80 vers 443 avant de passer en production.
Pool PHP-FPM
Créez ou modifiez /etc/php/8.2/fpm/pool.d/gaeld.conf :
[gaeld]
user = www-data
group = www-data
listen = /run/php/php8.2-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
Redémarrez : systemctl restart php8.2-fpm
Worker de file d'attente (systemd)
Gäld utilise les queues Laravel pour les tâches en arrière-plan (imports bancaires, notifications). Démarrez un worker persistant :
# /etc/systemd/system/gaeld-worker.service
[Unit]
Description=Gäld Queue Worker
After=network.target
[Service]
User=www-data
WorkingDirectory=/var/www/gaeld
ExecStart=/usr/bin/php artisan queue:work --sleep=3 --tries=3 --max-time=3600
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
Activez et démarrez :
systemctl enable gaeld-worker
systemctl start gaeld-worker
Tâches planifiées (Cron)
Ajoutez au crontab de www-data :
* * * * * /usr/bin/php /var/www/gaeld/artisan schedule:run >> /dev/null 2>&1
Stockage et permissions
chown -R www-data:www-data /var/www/gaeld/storage /var/www/gaeld/bootstrap/cache
chmod -R 775 /var/www/gaeld/storage /var/www/gaeld/bootstrap/cache
Les fichiers générés (PDFs de factures, imports bancaires) sont stockés dans storage/app/. Montez ce répertoire sur un volume persistant lors d'un déploiement en conteneur.