-
Notifications
You must be signed in to change notification settings - Fork 4
Frameworks
Govard detects supported frameworks and applies runtime defaults plus version-aware overrides.
| Framework | Auto-Detection | Version-Aware Profile | Default Web Root |
|---|---|---|---|
| Magento 2 | β | β | /pub |
| Magento 1 / OpenMage | β | framework defaults | project root |
| Laravel | β | β | /public |
| Next.js | β | framework defaults | project root |
| Emdash | β | framework defaults | project root |
| Drupal | β | β | /web |
| Symfony | β | β | /public |
| Shopware | β | framework defaults | /public |
| CakePHP | β | framework defaults | /webroot |
| WordPress | β | β | / |
| Custom | manual | manual | project root |
| Framework | PHP | Node | DB | Cache | Search | Queue |
|---|---|---|---|---|---|---|
| Magento 2 | 8.4 | 24 | mariadb 11.4 | valkey 8.0.0 | opensearch 2.19.0 | none |
| Magento 1 / OpenMage | 8.1 | β | mariadb 10.11 | none | none | none |
| Laravel | 8.4 | β | mariadb 11.4 | none | none | none |
| Next.js | β | 24 | none | none | none | none |
| Emdash | β | 22 | none | none | none | none |
| Drupal | 8.4 | β | mariadb 11.4 | none | none | none |
| Symfony | 8.4 | β | mariadb 11.4 | none | none | none |
| Shopware | 8.4 | β | mariadb 11.4 | none | none | none |
| CakePHP | 8.4 | β | mariadb 11.4 | none | none | none |
| WordPress | 8.3 | β | mariadb 11.4 | none | none | none |
| Custom | 8.4 | β | mariadb 11.4 | none | none | none |
β means Govard does not force a default for that stack component.
| Framework | Version | PHP Override | Other |
|---|---|---|---|
| Laravel | 10 | 8.2 | |
| Laravel | 11 | 8.3 | |
| Laravel | 12 | 8.4 | |
| Symfony | 6 | 8.2 | |
| Symfony | 7 | 8.3 | |
| Drupal | 10 | 8.3 | |
| Drupal | 11 | 8.4 | |
| WordPress | 6 | 8.3 | |
| Magento 2 | 2.4.9+ | 8.4 | MariaDB 11.4, Redis 7.2, OpenSearch 3.0.0, RabbitMQ 4.1.0 |
| Magento 2 | 2.4.8 | 8.4 | MariaDB 11.4, Redis 7.2, OpenSearch 2.19.0 or 3.0.0 |
| Magento 2 | 2.4.7 | 8.3 | MariaDB 10.6 or 10.11, Redis 7.2, OpenSearch 2.12.0-2.19.0 |
| Magento 2 | 2.4.6 | 8.2 | MariaDB 10.6 or 10.11, Redis 7.0-7.2, OpenSearch 2.5.0-2.19.0 |
# Inspect the resolved profile
govard config profile --json
govard config profile --framework laravel --framework-version 11 --jsonMagento 2 is the deepest supported workflow in Govard.
-
govard config autoinjects DB, cache, search, Varnish, and base URLs intoapp/etc/env.php -
govard tool magento [command]runs Magento CLI (bin/magento) inside the PHP container -
govard tool magerun [command](Shortcut:mr) runsn98-magerun2inside the PHP container -
govard tool magento cron:installinstalls crontabs inside the container - Optional Selenium/MFTF support (
mftf: truein features) - Optional LiveReload for Grunt/Vite workflows (
livereload: truein features) - Dedicated
php-debugrouting when Xdebug is enabled
govard env up
govard config auto
govard tool magento cache:clean
govard test phpunitGovard supports the standard Magento 2 Grunt-based LiveReload workflow.
-
Enable the feature in
.govard.yml:stack: features: livereload: true
-
Apply changes: Run
govard env up. This exposes port35729to your host machine. -
Start the watcher:
govard shell # Inside the shell: grunt watch -
Verify Configuration: This is set up automatically if you run
govard config auto. It injects the following snippet into yourapp/etc/env.php:<script src="http://localhost:35729/livereload.js?snipver=1"></script>
- Browser Setup: Simply install the LiveReload Browser Extension or rely on the automated script injection above.
[TIP] TIP Manual injection via
default.xmlis no longer needed. Everything is handled by Govard's auto-configuration engine viaenv.php.
[NOTE] NOTE Since port
35729is mapped directly to your host, you can only runlivereload: truefor one project at a time. If you have multiple projects, ensure only the active one has this feature enabled.
# Test upgrade in an isolated profile
cp .govard.yml .govard.upgrade-test.yml
GOVARD_ENV=upgrade-test govard upgrade --version 2.4.8-p4 --dry-run
GOVARD_ENV=upgrade-test govard upgrade --version 2.4.8-p4What govard upgrade does for Magento 2:
- Resolves correct PHP/MariaDB/Search versions for the target
- Smart Composer merge (preserves your modules and custom repos)
- Automatically relaxes version constraints for dev tools (
phpunit,phpmd) - Handles
composer update,setup:upgrade, and static content compilation
framework: "magento2"
domain: "primary.test"
store_domains:
store-a.test:
code: base
type: website
store-b.test:
code: store_b
type: storegovard domain add store-a.test
govard domain add store-b.test
govard config auto
govard tool magento cache:flushWhat Govard handles automatically:
- Routes all domains through the shared proxy with HTTPS
- Sets global base URL from
domain - Runs scoped
bin/magento config:setfor eachstore_domainsentry - Emits
MAGE_RUN_CODE/MAGE_RUN_TYPEhost mappings (object form with explicittype)
What you still need to do:
- Create websites, stores, and store views in Magento admin
- Clear config/cache after changing store mappings
govard tool magerun [command]Default runtime: PHP 8.1 + MariaDB 10.11. No optional cache/search/queue services forced.
govard upgrade --version <version>Handles: Composer sync, cache purge (var/cache, var/session, etc.), compiler maintenance, and DB migration via n98-magerun.
framework: "magento1"
domain: "primary.test"
store_domains:
store-a.test:
code: base
type: website
store-b.test:
code: store_b
type: store
store-c.test: store_c # scalar = legacy behavior (try both website + store code)Object form with explicit type causes Govard to inject host-based MAGE_RUN_CODE / MAGE_RUN_TYPE into nginx/Apache automatically β no manual .htaccess SetEnvIf rules needed.
govard tool artisan [command]Defaults: web root /public, MariaDB 11.4, version-aware PHP.
govard upgrade --version 12- Updates
composer.jsonframework constraint - Runs full
composer update - Runs
php artisan migrate --force
govard tool drush [command]Defaults: web root /web, MariaDB 11.4, version-aware PHP.
govard tool symfony [command]Defaults: web root /public, MariaDB 11.4, version-aware PHP.
govard upgrade --version 7- Updates
symfony/framework-bundleconstraints - Runs
composer update - Runs
doctrine:migrations:migrate - Runs
cache:clear
govard tool shopware [command]Defaults: web root /public, MariaDB 11.4, PHP 8.4.
govard tool cake [command]Defaults: web root /webroot, MariaDB 11.4.
govard tool wp [command]Defaults: web root /, MariaDB 11.4, PHP 8.3.
WordPress fresh bootstrap downloads core from wordpress.org and installs via PHP bootstrap scripts β wp-cli is not required for initial setup.
govard bootstrap --framework wordpress --freshgovard upgrade --version 6.7wp core update --version=<version>wp core update-dbwp cache flush
govard shell # opens web container at /app
govard tool npm [command]
govard tool npx [command]Defaults: Node 24, no DB forced. Project-root web serving.
Node-first local runtime: Node 22, no managed PHP/DB/cache/search/queue.
govard shell # web container at /app
govard tool pnpm [command]
govard open admin # opens /_emdash/adminFresh install:
govard bootstrap --framework emdash --fresh
govard env upPackage manager auto-detection: Govard reads package.json (packageManager field), pnpm-workspace.yaml, and lockfiles.
Current scope is local Node + SQLite + local uploads. Govard does not yet automate Cloudflare D1/R2 flows.
govard init --framework customInteractive picker for:
- Web server (
nginx,apache,hybrid) - Database engine and version
- Cache service
- Search engine
- Queue service
- Optional Varnish
Govard β Go-based Versatile Runtime & Development GitHub Β· Releases Β· Issues Β· MIT License