Skip to contentSkip to Content
Feedback
DeploymentStatic Hosts

Static Hosts

Static hosts only need the generated _site/ directory. The host can either run folio build --clean itself or serve a prebuilt artifact uploaded by your CI pipeline.

Vercel

Use Vercel as a static-site host:

Configure the project

In Vercel project settings, use:

  • Framework Preset: Other
  • Install Command: npm install -g pnpm@10 && curl -LsSf https://pguijas.github.io/folio/install.sh | sh
  • Build Command: ~/.local/bin/folio build --clean
  • Output Directory: _site

The install command runs the standalone installer from Installation during each build, so there is nothing to add to your repository. The binary lands in ~/.local/bin, which is why the build command calls it by path.

Deploy

Push to your production branch. Vercel runs the build command and publishes _site/.

Vercel already builds automatically on push. If you need required documentation checks before deploy, add a CI workflow that runs folio build --clean as a pull request check, plus folio coverage --min 80 for Python projects (coverage reads Python only in this release; see CI/CD).

Netlify

Create a netlify.toml that publishes the static artifact:

tomlnetlify.toml
[build] command = "npm install -g pnpm@10 && curl -LsSf https://pguijas.github.io/folio/install.sh | sh && ~/.local/bin/folio build --clean" publish = "_site" [build.environment] NODE_VERSION = "20"

Netlify will rebuild the docs on each deploy and serve _site/ directly.

Self-hosted

Any static file server can host the generated site:

folio build --clean python3 -m http.server 8080 --directory _site

For containerized deployments, copy _site/ into a small static web server image such as Nginx, Caddy, or any equivalent platform image. Do not copy .build/; it is a generated workspace cache, not the deployable artifact.

dockerfileDockerfile
FROM nginx:alpine COPY _site/ /usr/share/nginx/html/