Skip to main content

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​

ModeLocation and commandAddressStop scope
Disposable local static docsArchitecture or motherrepo: bash docsStarter.shPrinted localhost URL and free portCtrl+C removes only its own docs container
Unified MailGen docsMotherrepo ordinary lifecycleConfigured shared-proxy docs host, typically https://docs.INSTANCE.ecas.local:8443/Root stop affects this complete application stack
Older Architecture ComposeArchitecture/docker-compose.ymlHost 5700, internal 3000, MCP separately 3456Separate Compose project
Standalone Coolify docsArchitecture/compose.coolify.yamlOperator's public HTTPS docs domainOnly 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.

  1. Create an Application resource under the intended Project/Environment and select the Architecture repository/branch.
  2. Select Docker Compose, Base Directory /, Compose Location /compose.coolify.yaml, then save.
  3. Under Services → docs → Domains, set your HTTPS domain. Route to internal service port 80.
  4. Point DNS A/AAAA to the intended server and make proxy ports 80/443 reachable.
  5. Set DOCUSAURUS_PUBLIC_URL to 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.

VariableMeaningDefaultWhen needed
DOCUSAURUS_PUBLIC_URLPublic origin for canonical/sitemap URLs, without a pathhttp://localhostSupply 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​

SymptomNext action
Docker unavailableStart Docker and check your user's Docker access, then retry the launcher.
Terminal still buildsWait for the final URL. Serving and build memory limits differ.
Old localhost bookmark failsUse the new printed free port.
Coolify domain offlineCheck DNS, service health, internal port 80 routing, and certificate.
Edited Markdown absentRebuild/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.