webhook:subscribe is idempotent — MAX refreshes the endpoint on repeat calls. Skipped automatically when WEBHOOK_URL is empty or still default.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
php-fpm runs workers as www-data, so master stays root and drops to a UID matching host files. storage bind-mount is writable without runtime chmod hacks.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Fixes Monolog 'Failed to open stream: Permission denied' on storage/logs when host files are owned by pkirillw but php-fpm runs as www-data.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>