Files
Bohdan Triapitsyn 6f4e0068c1 docs: add localized documentation pages
Adds translated docs for Spanish, Korean, Polish, Portuguese, Ukrainian, and Chinese
Covers install, quickstart, themes, troubleshooting, tunnels, and reverse proxy guides
Updates docs workflow, sidebar, and contributor documentation
2026-05-23 00:33:39 +03:00

55 lines
1.8 KiB
Markdown

# Docs Source Deployment
This repo publishes docs **source artifacts**.
Rendering and hosting still happen in `openchamber-website` (`apps/docs`).
## Workflow
Use `.github/workflows/docs-source.yml`.
Triggers:
- push to `main` when docs source changes
- release published
- manual `workflow_dispatch`
Outputs:
- validates docs (`bun run docs:validate`)
- creates `openchamber-docs-source-<sha>.tar.gz`
- uploads archive as workflow artifact
- on release/manual with tag, uploads archive to release assets
## Cross-repo sync trigger
After validating and packaging, the workflow sends a `repository_dispatch` event
to `openchamber-website` so it re-syncs and redeploys the docs. This fires on
**every** trigger above — push to `main` (docs changes), release, and manual
`workflow_dispatch` — so a normal commit to docs auto-updates the live site.
Required secret in this repo:
- `OPENCHAMBER_WEBSITE_REPO_TOKEN` — a token with `contents: write` (classic
`repo` scope, or fine-grained with Contents: read & write) on
`openchamber/openchamber-website`. **Without it the dispatch step is skipped**
(it logs "not set" and exits cleanly), so the site will never auto-update.
This is the most common reason the pipeline silently does nothing.
Event sent:
- `event_type: docs_source_updated`
Payload includes:
- `source_repo`
- `source_ref` — the ref the website checks out from `openchamber` (`main` on a
push, the tag on a release)
- `archive_name`
`openchamber-website`'s `deploy-docs.yml` listens for this event
(`repository_dispatch: types: [docs_source_updated]`), checks out
`openchamber` at `source_ref`, runs `docs:sync`, builds `apps/docs`, and deploys
to Cloudflare Pages. That repo needs its own secrets: `OPENCHAMBER_REPO_TOKEN`
(read access to this repo), `CLOUDFLARE_API_TOKEN`, and `CLOUDFLARE_ACCOUNT_ID`.