Command Palette
Search for a command to run...

Configuration

All configuration is done with environment variables, read at build time and baked into the site. Set them on the docker run command, in a .env file, or in your shell. Nothing here requires editing source.

Site chrome

VariableDefaultEffect
PUBLIC_BRAND_NAMEopen-docsBrand text in the top bar.
PUBLIC_BRAND_TAGLINEdocsSmall subtitle next to the brand. Empty hides it.
PUBLIC_LOGO_SRC/favicon.svgLogo path under static/.
PUBLIC_SITE_TITLEopen-docsBrowser tab title and og:title.
PUBLIC_SITE_DESCRIPTIONgeneric blurbMeta + og:description.
PUBLIC_REPO_URL(empty)If set, shows a GitHub link in the nav and footer.
PUBLIC_THEME_COLOR#6366F1<meta name="theme-color">.
docker run --rm -p 3000:3000 \
  -v ./content:/content:ro \
  -e PUBLIC_BRAND_NAME="Acme" \
  -e PUBLIC_BRAND_TAGLINE="handbook" \
  -e PUBLIC_SITE_TITLE="Acme Handbook" \
  -e PUBLIC_REPO_URL="https://github.com/acme/handbook" \
  ghcr.io/manchtools/open-docs:latest

For the full list, including deploy-time variables, see Environment variables.

Static assets

Favicons, social-card images, and screenshots live under static/:

  • static/
    • favicon.svg — used as the default logo
    • favicon-16.png
    • favicon-32.png
    • apple-touch-icon.png
    • og.png — social-card image
    • screenshots/
      • dashboard.png

Only favicon.svg is required; the PNG fallbacks and og.png are optional and skipped if absent. In Docker, mount your static/ directory at /static. It is merged into the image's defaults rather than replacing them, so overriding one file keeps the rest working.

Theming and tokens

  • To restyle the site, drop in a theme.css — see Theming.
  • To inject build-time values into prose, use content tokens — see Content tokens.