Source for the SENAITE website, built with Docusaurus v3.
The site is served by GitHub Pages from
senaite/senaite.github.io
and published with bin/deploy.
- Node.js 20 or later
- npm (bundled with Node.js)
Install dependencies:
npm installStart the development server:
bin/devThe site is available at http://localhost:3001 (port 3001, so it can run
next to other Docusaurus sites on 3000; override with PORT=). Most changes
are reflected immediately without a full page reload. bin/dev --kill stops a
stale dev server left on the port.
Generate the static site:
npm run buildOutput is written to build/. Serve it locally to verify the production
build:
npm run servesenaite.com/
├── bin/
│ ├── dev Local dev server
│ └── deploy Build and publish to GitHub Pages
├── docs/ Documentation pages (Markdown)
│ ├── 01-installation.md Bare-metal installation guide
│ ├── 02-docker.md Docker installation guide
│ └── 03-upgrade.md Upgrade guide
├── src/
│ ├── css/
│ │ └── custom.css Global styles and brand tokens
│ └── pages/
│ ├── index.js Homepage
│ ├── features.js Features overview
│ └── enterprise.js Professional services / providers
├── static/
│ ├── img/ Images and SVG illustrations
│ └── logos/ Customer and partner logos
├── docusaurus.config.js Site configuration
└── sidebars.js Documentation sidebar structure
Merging to main does not publish anything. A deploy is a separate step,
run by hand from an up to date main:
bin/deploy --dry-run # build and list what would change
bin/deploy # build, confirm, publishbin/deploy refuses to run on a dirty tree, off main or when main is not
pushed. It builds the site, replaces the contents of the master branch of
senaite/senaite.github.io
with build/ as one new commit, waits for the GitHub Pages build and checks
that the site answers. It asks for the word deploy before pushing
(DEPLOY_CONFIRM=deploy skips the prompt for unattended runs).
Pushing needs write access to senaite/senaite.github.io over SSH, and the
gh CLI logged in to read the Pages build status. The custom domain comes
from static/CNAME.
Content is published under the Creative Commons Attribution 4.0 licence. Code is MIT licenced.