Source: https://roots.io/sage/docs/deployment/
PHP on the build runner must be 8.3 (see composer.json). Production Hostinger PHP should be 8.3+.
npm run buildcomposer install --no-dev --optimize-autoloader- Put
vendor/andpublic/build/on the server (never uploadnode_modules)
Optional on the server after install: wp acorn view:clear.
GitHub Actions (.github/workflows/deploy.yml) on every push to main:
- Builds Sage (Composer + Vite)
- Zips the theme as
matthummel.zip(foldermatthummel/at the zip root) - Publishes it to the GitHub Release
theme-latest
Production WordPress is matthummel.com on Hostinger.
On matthummel.com wp-admin:
- Fine-grained PAT scoped to
matthummel-themewith Contents: Read - Appearance → Update Theme → paste token → Save
- Install latest zip from GitHub
WordPress downloads the zip and overwrites wp-content/themes/matthummel/. Database, posts, and uploads stay put.
WP-CLI: wp mh theme-update (install zip). Rebuild only: wp mh theme-build.
Optional constant: MH_GITHUB_TOKEN in wp-config.php.
After install, purge LiteSpeed cache in hPanel (or Hostinger MCP) so HTML is not stuck on old Vite hashes.
If the updater PHP is not on the server yet:
- Open the theme-latest release
- Download
matthummel.zip - hPanel → File Manager →
wp-content/themes/ - Upload and extract so
matthummel/style.csssits in that folder (replace the old theme files)
PHP 8.3+ is required. Sage 11 / Acorn 6 fatals on 8.2.
A second in-progress deploy is cancelled (concurrency: hostinger-theme-release).