Skip to content

Deploy these docs

The docs are hosted with the repository’s docker-compose.yml. No custom Pinchana image is built or published: an official Bun service performs the static Astro build, then an official Nginx service serves the resulting named volume. Search is generated by Starlight/Pagefind and runs entirely from those static assets.

Terminal window
git clone https://github.com/Pinchana/pinchana-docs.git
cd pinchana-docs
docker compose up -d
docker compose ps
docker compose logs docs-build

docs-build uses oven/bun:1.3.14-debian, mounts only the required source/configuration paths read-only into a writable /app, installs the frozen lockfile, and runs bun run build once. The docs service waits for a successful build and serves the shared docs-dist volume through nginx:1.29-alpine.

  • Compose service: docs
  • Loopback target: 127.0.0.1:4321
  • Optional overrides: DOCS_BIND_ADDRESS and DOCS_HOST_PORT
  • Canonical site: https://docs.pinchana.cc
  • Required runtime variables: none
  • Required API/Web connectivity at runtime: none

Configure docs.pinchana.cc DNS and proxy HTTPS to the loopback target. Keep Nginx private behind the reverse proxy. The generated directory routes work with Nginx’s standard index-file handling.

Re-run the one-shot builder after pulling a revision; Nginx sees the updated named volume immediately:

Terminal window
git pull --ff-only
docker compose run --rm docs-build
docker compose up -d docs

Roll back by checking out the previous revision and running the builder again. The dependency, Astro cache, and output volumes are disposable; remove and recreate them when troubleshooting a stale or corrupt build.

After deployment, verify the splash page, all five sidebar groups, the final Deployment group, search results from each section, canonical tags, code-copy controls, edit links, last-updated data, mobile navigation, keyboard focus, wide tables, container health, and a direct deep-link refresh. The built output must not contain private keys, real API/Turnstile/VPN/Spotify credentials, cookies, or instance envelopes.