Run documentation without MailGen
Use an Architecture checkout and running Docker to read setup without the full application. You do not need a root .env, host Node.js/Python, Kafka, database, shared proxy, or application setup. Use Bash on Linux/macOS. Start Docker Desktop on macOS or obtain Docker Engine access on Linux.
Choose the documentation mode
| Mode | Location and command | Address | Stop scope |
|---|---|---|---|
| Disposable local static docs | Architecture or motherrepo: bash docsStarter.sh | Printed localhost URL and free port | Ctrl+C removes only its own docs container |
| Unified MailGen docs | Motherrepo ordinary lifecycle | Configured shared-proxy docs host, typically https://docs.INSTANCE.ecas.local:8443/ | Root stop affects this complete application stack |
| Older Architecture Compose | Architecture/docker-compose.yml | Host 5700, internal 3000, MCP separately 3456 | Separate Compose project |
| Standalone Coolify docs | Architecture/compose.coolify.yaml | Operator's public HTTPS docs domain | Only the separate docs resource |
A documentation address is not Account login, BFF, or a provider callback. Use first installation for the application.
Disposable local docs
bash docsStarter.sh
The motherrepo wrapper calls the Architecture script. An absolute script path also works. It checks Docker/source availability, builds a static site, and prints a readable setup URL.
If Architecture is missing, obtain repository access and initialize only that submodule from the motherrepo root:
git submodule update --init -- Architecture
bash docsStarter.sh
No root .env or 0daysetup.sh is needed just to read documentation. GitHub download instructions explain repository access.
Docker allocates a free host port directly, bound only to 127.0.0.1. Nginx serves the static output with limits of 64 MiB, 0.5 CPU, and 64 processes. No Node development server runs in this serving container. It has no persistent volume.
The first build needs internet access and several GiB of free memory/disk. The Node heap cap is 2 GiB. Total build memory can exceed that heap. The 64 MiB serving limit does not describe build capacity. Unchanged source can reuse build cache.
Ctrl+C removes this container without changing MailGen data, networks, volumes, or secrets. Image/build cache remains. Host shutdown or kill -9 cannot run the script's cleanup trap. A remaining disposable container can be stopped separately and removes itself through --rm.
This mode is static. After Markdown changes, rebuild it. It does not watch source files. The launcher currently prints the legacy setup route, and the website home action can also open the original-language tree. For English, keep the printed origin and port, then open /docs/en/Installation/first-install/. For example, with printed origin http://127.0.0.1:49152, open http://127.0.0.1:49152/docs/en/Installation/first-install/.
The English documentation home is /docs/en/intro, for example http://127.0.0.1:49152/docs/en/intro. Replace the example port with the actual printed port. Choose English in the documentation navigation and Start here for the newcomer sequence. The site's default entry can remain Hungarian. These direct English routes select the language explicitly; the current launcher does not choose them automatically.
Deploy only docs in Coolify
Use only the Architecture repository. Give Coolify a read-only Git source for the private repository.
- Create an Application resource under the intended Project/Environment and select the Architecture repository/branch.
- Select Docker Compose, Base Directory
/, Compose Location/compose.coolify.yaml, then save. - Under Services → docs → Domains, set your HTTPS domain. Route to internal service port
80. - Point DNS A/AAAA to the intended server and make proxy ports 80/443 reachable.
- Set
DOCUSAURUS_PUBLIC_URLto the public origin, then deploy.
If Coolify requests the target port in domain notation, its :80 suffix selects the internal target. The browser still uses public HTTPS. Do not include that routing suffix or /docs in DOCUSAURUS_PUBLIC_URL.
Dockerfile.docs builds the static site and serves it with Nginx. The separate Compose file publishes no host port and fixes no container name, external network, or proxy labels. Coolify owns its routing. It does not need MailGen's NPM proxy.
| Variable | Meaning | Default | When needed |
|---|---|---|---|
DOCUSAURUS_PUBLIC_URL | Public origin for canonical/sitemap URLs, without a path | http://localhost | Supply for a public domain. Build argument, not a runtime secret. |
Use Environment Variables → Developer view and the docs-only .env.coolify.example as a template. It is not the MailGen root configuration. Changing this URL needs a new build/deploy.
Open the public domain and check the docs healthcheck. Domain failure needs DNS, service readiness, target-port routing, and certificate checks. It does not require a MailGen data reset.
Custom environment file
From the Architecture directory, a manual build can explicitly select a docs-only file:
docker compose --env-file /YOUR/PATH/docs.env -f compose.coolify.yaml build docs
Only the public docs URL is needed. A differently named env file does not load automatically. This is a build argument rather than an env_file: runtime mount. The disposable launcher intentionally reads no env file.
An environment-free static configuration check is:
docker compose --env-file /dev/null -f compose.coolify.yaml config
Keep application placement separate
Root ECS_DEPLOYMENT_MODE / ECS_REMOTE_SIMULATION select application infrastructure placement. They do not change docsStarter or provision Kafka, ClamAV, Collabora, Tika, or Qdrant through the docs resource.
A healthy remote documentation site does not prove Office callback access, Kafka identity/state transfer, or scanner readiness. Use partial remote deployment for those prerequisites.
If the page does not open
| Symptom | Next action |
|---|---|
| Docker unavailable | Start Docker and check your user's Docker access, then retry the launcher. |
| Terminal still builds | Wait for the final URL. Serving and build memory limits differ. |
| Old localhost bookmark fails | Use the new printed free port. |
| Coolify domain offline | Check DNS, service health, internal port 80 routing, and certificate. |
| Edited Markdown absent | Rebuild/redeploy the standalone static image. Unified production docs also need a production docs build. Unified development npm start watches source. |
The docs-only resource requirement does not describe full MailGen capacity.