Documentation site for Pandora FMS plugins, integrations, and Discovery modules, built with MkDocs and the Material theme.
| Need | Solution | Package |
|---|---|---|
| Theme / UI | Material for MkDocs | mkdocs-material |
| Multilingual content | docs/en/, docs/es/ folder structure, with automatic fallback to the default language for untranslated files |
mkdocs-static-i18n |
| Images | Regular files in the repo + zoom/lightbox on the published site | mkdocs-glightbox |
| Sidebar menu | Multi-level tree generated purely from the folder structure | mkdocs-awesome-pages-plugin |
| Versioning | Version selector, always published as latest |
mike |
git clone <repo>
cd plugin-docs
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/mkdocs serveOr with Docker, no local Python needed:
UID=$(id -u) GID=$(id -g) docker compose upBoth open http://localhost:8000 with live reload, serving / (en) and
/es/.
Everything about content standards, adding pages/images, organizing the
sidebar, and translations lives in
docs/en/extras/how-to-document.md —
it's published on the site itself (Extras section) so it's always
one click away for anyone writing docs.
The site is versioned with mike, always
published as latest — there's no parallel numbered versions here. This
repo only generates the static site into the gh-pages branch; serving
it in production is the responsibility of a separate prod repo/server that
consumes that branch.
scripts/deploy-version.sh latest "Pandora FMS Guides"
git push origin gh-pages # only from the authorized pipeline/checkoutRedeploying with the same command overwrites /latest/, nothing to clean up
by hand between deployments. To export gh-pages as static files locally:
scripts/build-versioned-site.sh site (the site/ directory is ignored by
Git).
To check the site behaves the way a prod server would serve it — correct
/latest/ redirect, language paths, no broken relative links — before
pushing gh-pages, serve the local export through an Apache container:
scripts/preview-gh-pages.sh # serves at http://localhost:8080
scripts/preview-gh-pages.sh 9000 # or any other portIt exports the current local gh-pages branch (same as
build-versioned-site.sh) and runs it in httpd:2.4-alpine. Ctrl+C stops
and removes the container. Testing only — this isn't part of the production
setup.