Converted from mdbook src/ in input/ to Grav pages/ format:
- Added YAML frontmatter to all pages
- Created numbered folder structure (01.home, 02.Bylaws.*, etc.)
- Preserved all content from Bylaws, Handbook, OperatingAgreements,
Policies, and JointVenture sections
super ultra big merge completed. scope of work clearly defined. let's go build!
Assisted-by: GLM-5 via Crush <crush@charm.land>
- Use minimal setup.php that only overrides 'page' stream
- Override only page stream to avoid conflicts with Grav core streams
- Environment-specific pages now load correctly per hostname
- Remove unused add-streams.sh script
Root cause: Grav's core streams (data, config, etc.) cannot be
overridden in setup.php without causing initialization errors.
The solution is to only override the 'page' stream, which allows
each environment to have its own pages while sharing plugins,
themes, and data with the main installation.
Testing confirmed:
- charters.turnsys.com → "TSYS Group Charters"
- plan.knownelement.com → "Known Element Business Plan"
- plan.startinglineproductions.com → "Starting Line Productions Plan"
🤖 Generated with [Crush](https://crush.cbhops.com)
Assisted-by: GLM-5 via Crush <crush@charm.land>
- Fix setup.php to use Grav's native environment-based multi-site
- Set GRAV_ENVIRONMENT constant instead of overriding streams
- Return empty array to let Grav handle stream configuration
- Rename governance.turnsys.com to charters.turnsys.com
- Update setup.php hostname mapping
- Update configure-sites.sh site title
- Update etc-hosts-entries.txt
- Rename mdbook source directory
- Rename container environment directory
- Update site title from "TSYS Group Governance" to "TSYS Group Charters"
The stream initialization error was caused by setup.php returning
stream configurations that conflicted with Grav's core streams.
Grav's native environment handling properly manages stream prefixes
when GRAV_ENVIRONMENT is set.
Container is now healthy and responding with 302 redirects.
🤖 Generated with [Crush](https://crush.cbhops.com)
Assisted-by: GLM-5 via Crush <crush@charm.land>
- Create configure-sites.sh to generate per-site Grav configs
- Generates system.yaml, site.yaml, and default home page
- Configures all 22 sites with appropriate titles
- Script executed in container to configure all environments
Each site now has:
- config/system.yaml: Grav system settings (quark theme, caching)
- config/site.yaml: Site metadata (title, author, description)
- pages/01.home/default.md: Placeholder home page
🤖 Generated with [Crush](https://crush.cbhops.com)
Assisted-by: GLM-5 via Crush <crush@charm.land>
- Add AGENTS.md with project requirements and site inventory
- Add JOURNAL.md for project tracking
- Add etc-hosts-entries.txt for local testing (22 domains)
- Add setup.php for Grav multi-site routing configuration
This project migrates 21 mdbook sites to a single Grav multi-site
installation. Each site will have its own environment directory under
user/env/{fqdn}/ with independent config, pages, and themes.
Development runs in Docker on port 12000 (container: tsysstatic-dev-grav).
Production target: Cloudron Grav app at staticsites.turnsys.com.
🤖 Generated with [Crush](https://crush.cbhops.com)
Assisted-by: GLM-5 via Crush <crush@charm.land>