MageSail documentation
MageSail (MageSail_Magesail) integrates Holesail with Magento 2 Admin: Website tunnels (store views, optional NGINX map, storefront routing) and Service tunnels (TCP to backends discovered from app/etc/env.php), plus lifecycle, cron, and logs.
Development tests (repository root)
PHPUnit, PHPStan (tests + scanned Model/), and PHPCS run from the repo root after composer install — see the root composer.json, phpunit.xml.dist, and .github/workflows/ci.yml.
Guides
| Document | Description |
|---|---|
| overview.md | Purpose, stack, high-level request flow |
| installation.md | Composer vs app/code, enablement, Node/npm, legacy file migration |
| configuration.md | All Admin config paths (tunnel + NGINX) |
| admin-ui.md | MageSail sidebar menu and tunnel screens |
| tunnel-store-and-multistore.md | Website vs Service, registry schema, per-tunnel store views, base URLs, stop vs remove |
| request-routing-and-plugins.md | DI plugins, headers, and base-URL behavior |
| nginx-global-map.md | Map file edits, nginx -t, reload, permissions |
| cron-and-monitoring.md | Daily cron, auto-restart, DB logs |
| php-classes-reference.md | PHP classes by layer (quick index) |
| scripts.md | Node scripts, nginx helpers, probes |
| troubleshooting.md | Common failures and fixes |
| gitea-act-runner-labels.md | Add ubuntu-latest (Docker) labels to an existing Gitea act_runner |
| phpunit-tier4-deferred.md | Classes not covered by off-Magento PHPUnit (integration / Magento app) |
Deeper dives (in the module tree)
- Tunnel, base URL redirect, and NGINX — redirect bypass, map integration, website vs service scope (links to split guides).
- NGINX reload from PHP — PHP user vs master process, sudoers, wrapper script.
Root entry point
The repository README.md is the quick start; this directory is the full split-by-topic reference.