Skip to content

The Deploy section documents a retired open-source edition — rewrite it for the commercial runtime #59

Description

@os-zhuang

ObjectOS is commercial-only; there is no open-source edition (as resources/license.mdx already states correctly). The Deploy section has not followed, and still teaches a licence-free, build-it-yourself path that cannot work.

Measured on content/docs/ at d13ba76.

What is wrong

Across all four Deploy pages — index, docker, kubernetes, air-gapped — the word "licence" appears zero times. For a product whose walled postures refuse to boot without one, the entire deployment section documents a path that does not exist.

deploy/docker.mdx specifically:

LineSaysReality
«Build your own image»git clone …/objectos.git then docker build -f docker/DockerfileThis repository contains only the docs site. There is no docker/, no Dockerfile, no runtime source. The instruction cannot succeed.
«We publish the runtime image … on every push to main» + latest / main / sha-<short> tag tablean open-source CI publishing storyNot how the commercial runtime is distributed
Node 20 Alpinethe runtime image is Node 22
(whole page)no licence step at alla reader following it end to end gets no licence, and therefore either a silent Community degrade or a hard boot refusal depending on posture

deploy/air-gapped.mdx is worse than stale — it is reverse-wrong:

# Leave OS_CLOUD_URL unset to run fully offline

An unset OS_CLOUD_URL resolves to the default public control plane, not to "offline". On the composed shape this combination is now refused at startup. The page teaches a configuration that cannot boot. It also frames air-gap as a network property; for this product air-gap is a licence mode.

Decision taken

Previously published images are out of scope — do not document, reference, or preserve compatibility with them. The section is rewritten to the current rules, not reconciled with the old ones.

What the rewrite must carry

  1. The runtime image is pinned by digest, not by a moving tag.
  2. Licence is not optional and belongs in the happy path, including which licence mode each deployment shape requires.
  3. Air-gap is a licence mode, not a firewall configuration.
  4. OS_CLOUD_URL and licence mode are mutually constrained; incompatible combinations are refused at startup rather than degrading silently. The page must state the supported combinations, not a knob to flip.
  5. Multi-node changes what is mandatory (notably a shared secret — replicas generating their own diverge and the runtime refuses to start).
  6. Supply-chain verification (signature, SBOM, provenance) belongs in the production path.

Content boundary — the part that keeps this from rotting again

Do not inline the values a customer copies. The .env templates and compose files ship with the release and are covered by tests there; a prose copy on this site has nothing pinning it and will drift, which is exactly how the current pages got here.

The pages carry the decision shape — why digest pinning, which licence mode for which shape, what multi-node makes mandatory — and point at the release's deploy bundle for anything to be copied verbatim.

Locales

Seven locales (en, zh-Hans, ja, de, es, fr, ko); 4 English pages ⇒ 28 files. Fumadocs falls back to English when a translation is missing, so:

Delete the stale translations of any rewritten page rather than leaving them. A stale translation renders wrong content; a missing one renders correct English. ⛔ Do not leave a translated page asserting the retired story.

Note for whoever picks this up

AGENTS.md's Locale conventions section is itself out of date — it names en + cn with .cn.mdx siblings, while apps/docs/lib/i18n.ts defines the seven tags above and the content tree uses zh-Hans. A file named foo.cn.mdx would never render and would raise no error. Worth correcting in the same pass or as a follow-up.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions