GuidesHost these docs on Ferry
Upload the built site
Build the docs on your machine, then send the folder out/ to Ferry with ferry up.
Build. npm run build writes the site to out/ and checks each internal link.
1 / 4
Build the static export
cd docs
npm ci
DOCS_SITE_URL=http://ferry-docs.localhost:8080 npm run buildnpm run build writes the static export to out/, then checks each internal link. See Build variables.
Deploy the export
ferry up ferry-docs --dir out --type static --followout/ has an index.html at its root and no package.json. Thus Ferry does no build and serves the files as they are. The site is live at http://ferry-docs.localhost:8080.
Check it
| Request | Result |
|---|---|
/docs/concepts/deploys/ | The file out/docs/concepts/deploys/index.html. The URL of a page ends with a slash. |
| The same path without the slash | A 301 redirect to the URL with the slash. |
| An unknown path | The 404.html of the site. |
Search, Open Graph images, llms.txt files | Static files too. They work with no server-side runtime. |
Publish an update
Run the same two commands again: npm run build, then ferry up. Each upload is a new deploy.
Thus a rollback brings back an earlier version: ferry rollback ferry-docs DEPLOY_ID. It works if Ferry still has the image of that deploy. By default, Ferry keeps the last 5 images of each service (ferryd --keep-images).