From e8c6733b4087ee0080a3f8337355744beaa2f977 Mon Sep 17 00:00:00 2001 From: Sam DEPARDIEU Date: Tue, 7 Jul 2026 19:44:55 +0200 Subject: [PATCH] deploy: permissions storage compatibles avec git MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le chown -R www-data cassait les futurs git pull/reset (les .gitignore suivis passaient à www-data, inaccessibles à l'utilisateur SSH). Désormais : propriétaire = utilisateur de déploiement, groupe = www-data + écriture de groupe + setgid, pour que git ET php-fpm puissent écrire. Co-Authored-By: Claude Opus 4.8 --- .gitea/workflows/deploy.yml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 5ab7c54..9eb14dc 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -44,6 +44,15 @@ jobs: docker exec laravel_php php artisan route:cache docker exec laravel_php php artisan view:cache - # Correction des permissions sur les dossiers écrits par Laravel - docker exec -u 0 laravel_php chown -R www-data:www-data \ - /var/www/storage /var/www/bootstrap/cache + # Correction des permissions sur les dossiers écrits par Laravel. + # Laravel (www-data) doit pouvoir écrire dans storage/ et + # bootstrap/cache, MAIS l'utilisateur SSH doit rester propriétaire + # pour que les futurs "git pull/reset" ne soient pas bloqués (sinon + # les .gitignore suivis passent à www-data et git échoue). + # => propriétaire = utilisateur de déploiement, groupe = www-data, + # avec écriture de groupe + setgid (héritage du groupe www-data). + DEPLOY_UID=$(id -u) + docker exec -u 0 laravel_php sh -c "\ + chown -R ${DEPLOY_UID}:www-data /var/www/storage /var/www/bootstrap/cache && \ + chmod -R ug+rwX /var/www/storage /var/www/bootstrap/cache && \ + find /var/www/storage /var/www/bootstrap/cache -type d -exec chmod g+s {} +"