Skip to content
This repository was archived by the owner on Jul 24, 2026. It is now read-only.

build(docs): deploy VitePress docs via platform Dockerfile (Bun -> Caddy) - #166

Merged
shtse8 merged 1 commit into
mainfrom
chore/docs-platform-deploy-dockerfile
Jun 25, 2026
Merged

build(docs): deploy VitePress docs via platform Dockerfile (Bun -> Caddy)#166
shtse8 merged 1 commit into
mainfrom
chore/docs-platform-deploy-dockerfile

Conversation

@shtse8

@shtse8 shtse8 commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

What

flow's docs site (VitePress) is meant to deploy on the Sylphx Platform via sylphx.toml, but the committed manifest used strategy = "auto", which cannot build it as a static site. Verified against the platform's actual buildpack source (SylphxAI/platform packages/core/.../buildpack):

  • flow is a Bun workspace monorepo, and the bun-static path requires globs.length === 0;
  • it has a turbo.json, so detection routes to bun-turbo (a node-server build, not static);
  • the static-frontend detector needs an index.html at the source root — VitePress is markdown, docs/.vitepress/dist/index.html only exists after the build;
  • vitepress isn't in the recognized build-tool set.

So strategy = "auto" would build the monorepo via turbo and try to run a node server that doesn't exist → no served docs.

Change

Match how every first-party Sylphx app deploys (httphole, sylphx-ai, alpha-foundry all use strategy = "dockerfile"):

  • Add Dockerfile mirroring the platform's canonical bun-static buildpack template (ADR-071 v2): Bun builds the VitePress site, Caddy serves the static output on :3000. Base images are digest-pinned to match the platform's base-images.json.
  • sylphx.tomlstrategy = "dockerfile", a web service on port 3000, health path /, and watch_paths scoped to the docs inputs.

No runtime/app code change — deploy config only.

Verification

Built and ran locally:

  • docker build → succeeds (VitePress build + static-output probe pass).
  • GET /HTTP 200, <title>Sylphx Flow</title>, full VitePress homepage (hero, features, nav, real docs content).
  • GET /guide/getting-started (clean URL) → HTTP 200.
  • GET /guide/getting-started.htmlHTTP 200.

Sequencing

This is the enabling change for the single-source docs deploy. The production env tracks main, so this must land first; then the platform deploy is created + verified live; then the duplicate vercel.json is removed in #165.

…ddy)

The committed sylphx.toml used `strategy = "auto"`, which cannot build flow's
docs as a static site: flow is a Bun *workspace* monorepo with a turbo.json, so
the platform's auto buildpack routes it to a node-server build, and the
static-frontend detector additionally requires an index.html at the source root
(VitePress is markdown, the dist is produced only after build). The result would
build the monorepo via turbo and try to run a non-existent node server.

Match how every first-party Sylphx app deploys (httphole, sylphx-ai,
alpha-foundry all use `strategy = "dockerfile"`): add an explicit Dockerfile
that mirrors the platform's canonical bun-static buildpack template — Bun builds
the VitePress site, Caddy serves the static output on :3000 — and switch
sylphx.toml to the dockerfile strategy with a web service + health path.

Verified locally: `docker build` succeeds, the container returns HTTP 200 with
real VitePress content at `/`, `/guide/getting-started`, and the `.html` route.

Enables the single-source docs deploy on the Sylphx Platform; the duplicate
vercel.json is removed separately once the platform deploy is verified live
(#165).
@shtse8
shtse8 added this pull request to the merge queue Jun 25, 2026
Merged via the queue into main with commit bc990a7 Jun 25, 2026
5 checks passed
@shtse8
shtse8 deleted the chore/docs-platform-deploy-dockerfile branch June 25, 2026 23:32
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant