Overview
Bundle OKF 0.2 · 28 conceitos · ndx-au/sentinel-docs
Open source Repository Open in the app JSON README (API)
About
# Overview
* [Sentinel Documentation](../sn.docs/ct/index.md) - Sentinel is a git-native orchestration harness -- a single Go binary that discovers, manages, and executes Lua-based workflows from a plain folder of files.
# Guide
* [Getting Started with Sentinel](../sn.docs/ct/getting-started.md) - Welcome to Sentinel. This guide is your starting point -- whether you are a developer who wants to automate workflows, an operations engineer evaluating orchestration tools, or an AI agent consuming this documentation programmatically.
* [Configuration Guide](../sn.docs/ct/configuration-guide.md) - Comprehensive guide to Sentinel configuration, security, deployment, and performance tuning.
* [Kit Development Guide](../sn.docs/ct/kit-development.md) - Complete guide to building kits -- the fundamental unit of organization in Sentinel -- with flows, connectors, modules, forms, pages, databases, CMS content, and templates.
* [Workflows and Patterns Guide](../sn.docs/ct/workflows-and-patterns.
Details
- Kind
- OKF bundles
- Topic
- Cloud & DevOps
- Publisher
- ndx-au
- Origin
- okf_github
- Category
- dados
- Version
- 0.2
- Last push
- 2026-09-03T03:04:49Z
- Repository state
- ativo
- Language
- HTML
- License
- Apache-2.0
- Added
- 2026-09-09 19:04:11
- Updated
- 2026-09-09 19:04:11
- Origin id
ndx-au/sentinel-docs:notebooklm/index.md
README
# sentinel-docs
Public documentation for Sentinel, implemented as a Sentinel SRE served through
the **fcms** plane (file CMS). Staging: **https://sn-docs.dwp.solutions**.
Production: **https://docs.ndx-sentinel.com** (dedicated VM).
## Layout
```
sentinel.yaml SRE root config (port 8290, default_kit: sn.docs)
sn.docs/
kit.yaml fcms kit (public, cms_full_html, 600s render cache)
ct/ Markdown source of truth — one .md per doc, frontmatter:
title, description, type, tags, status.
index.md is the public landing page (do not overwrite).
ct/README.md old-filename → slug mapping (MAP block, used by relink)
tp/ Go templates (docs.gohtml = render, home.gohtml = landing)
pb/ static assets (style.css, favicon.ico)
pg/home.yaml default-kit catch-all page at /
fl/ smoke tests (validated by `sentinel sre validate`)
tools/relink.py rewrites old relative doc links → /slug links
tools/bundle_docs.py OKF / NotebookLM sidecar (writes notebooklm/ only)
notebooklm/ generated index.md + sentinel-docs.md — not fcms content
```
## Run locally
```bash
sentinel harness start -p . -d --port 8290
curl http://127.0.0.1:8290/hl
# JSON: /fcms , /fcms/sn/docs/<slug>
# HTML: /fcms/render/sn/docs/docs/<slug>
# assets: /kt/sn/docs/pb/*
```
## Adding a doc
Add `sn.docs/ct/<slug>.md` with `title`, `description`, and a required OKF
`type` (`Overview`, `Guide`, `Reference`, or `Playbook`), plus `tags` and
`status`. Add the slug to the sidebar nav in `sn.docs/tp/docs.gohtml`, and
link it from `index.md`. Then regenerate the NotebookLM sidecar:
```bash
python3 tools/bundle_docs.py
```
That writes `notebooklm/index.md` and `notebooklm/sentinel-docs.md` only.
Never put generated output in `ct/` — `ct/index.md` is the public homepage.
`ct/` changes are picked up by the harness file watcher — no reload needed.
Changes to `kit.yaml`, `tp/`, or `pg/` require `POST /hl/kt/sn/docs/rl` (kit
reload) or a harness restart.
## Deployment (production VM)
The prod VM runs the same SRE repo. Required setup:
1. **Checkout**: clone `github.com/ndx-au/sentinel-docs` to the VM (polling
target: `main` branch).
2. **Harness**: `sentinel harness start -p <repo> -d --port 8290`. The harness
binds `0.0.0.0` — firewall the port so only the host reverse proxy can reach
it (for example, allow the proxy container’s bridge network to the host
process).
3. **public_url**: production overrides `public_url` in `sentinel.yaml` to
`https://docs.ndx-sentinel.com` (or use an env/config override if the
harness supports one — staging keeps the sn-docs value; do not commit the
prod override to `main` if it would break staging, prefer per-host config).
4. **Reverse proxy** (Caddy or equivalent) on the VM:
```
docs.ndx-sentinel.com {
encode gzip
handle /kt/sn/docs/pb/* {
reverse_proxy 127.0.0.1:8290
}
handle {
rewrite * /fcms/render/sn/docs/docs{path}
reverse_proxy 127.0.0.1:8290
}
}
```
Public URLs are clean slugs: `/getting-started` →
`/fcms/render/sn/docs/docs/getting-started`. The JSON API (`/fcms/...`,
`/cm/...`) is intentionally NOT routed publicly.
5. **Deploy model**: harness-native polling of `main` (a Sentinel trigger/flow
inside this SRE, not crontab). On new `main`: pull, and the file watcher
picks up `ct/` changes automatically; `kit.yaml`/`tp/`/`pg/` changes need a
kit reload (`POST /hl/kt/sn/docs/rl`) or harness restart. Later: a CI
workflow can replace polling and conditionally issue the kit reload.
6. **main protection**: enable branch protection + PR workflow once prod is
operational.
## Staging wiring
- Point the staging DNS name (`sn-docs.dwp.solutions`) at the staging host
behind a private reverse proxy, with TLS appropriate for that zone.
- Reverse-proxy to the local harness (`127.0.0.1:8290` or the Docker host
gateway equivalent) using the same rewrite rules as the prod block above.