Heaven's Gate is the live PHP web application used to publish and maintain the Heaven's Gate RPG setting: characters, chronicles, seasons, chapters, timeline events, organizations, groups, rules, systems, maps, documents, soundtrack and tools.
The project is intentionally database-driven. Public URLs use readable slugs while the editorial backend under /talim maintains the relational data behind them.
- PHP application with a single public front controller:
index.php. - Friendly routing in
app/bootstrap/request_router.php. - Controller dispatch in
app/bootstrap/body_work.php. - MySQL/MariaDB through
mysqli. - Production snapshot reviewed on 2026-09-02: MariaDB 10.5.29.
- 119 production tables, 4 views and 1 stored procedure in the 2026-09-01 snapshot.
- Desktop and mobile presentation layers share the same underlying content.
- Administrative maintenance lives under
/talim.
| Path | Purpose |
|---|---|
app/bootstrap/ |
Request bootstrapping, routing handoff and page dispatch. |
app/controllers/ |
Public, admin and tool controllers. |
app/helpers/ |
Shared database, security, routing and domain helpers. |
app/modules/ |
Larger domain-specific modules. |
app/mobile/ |
Mobile routing and presentation layer. |
app/partials/ |
Shared layout fragments. |
api/ |
JSON endpoints. |
assets/ |
CSS, JavaScript and vendored frontend assets. |
public/ |
Public images and sounds. |
tools/ |
Repository-level CLI/developer tools. |
sql/ |
Focused SQL audits; not a schema installer. |
reports/ |
Dated editorial reports. |
admin_docs/ |
Maintained technical documentation and historical migration notes. |
The current runtime expects:
- PHP 8.x;
mysqli;- MariaDB/MySQL compatible with the production schema;
- a web server serving the repository root;
config.envwith:MYSQL_HOSTMYSQL_USERMYSQL_PWDMYSQL_BDD
app/helpers/db_connection.php searches config.env outside the project root first, then in the root, then in the legacy app/ location.
There is no current full-schema installer in this repository. Old documentation that referred to install_schema_from_dump.php or schema_definition.php is obsolete. The current production structure is documented from the continuity snapshot instead.
A normal request flows through:
.htaccess → index.php → request_router.php → body_work.php → controller.
Do not expose PHP files under app/ directly. .htaccess deliberately blocks /app and /admin_docs.
For a new simple public section, use:
python tools/scaffold_section.py --route-key example --slug example --title "Example" --dry-runThe authoritative reference used for this documentation refresh is the production snapshot:
starkvind/heavens-gate-continuity/snapshots/web/database/production-2026-09-01.sql
The snapshot contains:
- 43
dim_*tables; - 36
fact_*tables; - 39
bridge_*tables; - 1 admin/migration backup table;
- 4 views;
- 1 stored procedure.
See DATABASE_SCHEMA.md for the maintained map.
Do not use admin_docs/bdd_structure.txt as the current schema. It is a retained historical snapshot because migration manifests still reference it.
Start here:
- Technical architecture
- Database schema
- Scripts and maintenance
- Admin module guide
- Public section guide
- Documentation index
Historical migration manifests under admin_docs/migration_manifest_* remain useful as dated records, but they are not runtime documentation.
The application includes an authenticated editorial backend for maintaining campaign content. Operational details, privileged routes and production procedures are intentionally not documented in the public README.
Personal / non-commercial project codebase and campaign content.
Third-party universe references remain property of their respective owners.