-
Notifications
You must be signed in to change notification settings - Fork 0
Operational Architecture
Sardine is where the site is managed; the public site is served elsewhere. Publication is a cycle, never a one-off export: edit in the panel → build → publish to the configured destination → the destination serves the public site → further changes republish to the same destination.
flowchart LR
A[Admin panel<br/>editors, workflow, preview] --> B[(Editorial storage<br/>SQLite / PostgreSQL / MySQL / MSSQL)]
B --> C[Deterministic build<br/>same content, same bytes]
C --> D[Deployment target / provider<br/>host extras + transport]
D --> E[Public hosting<br/>SWA, Nginx, S3, Pages, Netlify, …]
E -.->|readers| F((Public site))
A -->|republish after every change| C
| Piece | Role | Notes |
|---|---|---|
| Admin panel | Where content is created, edited, reviewed and published | Never needs to serve the public site; can live on a laptop or private network |
| Editorial storage | The working store behind the panel | Four engines, one conformance-tested contract; the portable JSON/Markdown export stays the source of truth |
| Build | Editorial state → static artifact | Deterministic: same content + same clock → identical bytes; validation gates publication |
| Deployment target / provider | Shapes and (with #152) transports the artifact |
swa, nginx, generic bundled; extensions add destinations (sardine-target-<name>) |
| Public hosting | Serves the site | Azure Static Web Apps, your own Nginx, S3/CloudFront, GitHub Pages, Netlify, any static host |
All five phases ship (#156) for two reference providers behind one contract: filesystem/Nginx (immutable releases, atomic symlink activation, health check with automatic rollback) and Azure Static Web Apps (authenticated upload, deployment tracking, health verification, rollback by re-sending a kept release; the token lives only in the environment). Publish, unpublish and scheduled windows deploy automatically; every operation is audited. Further destinations (S3, GitHub Pages, Netlify, SSH) ride the same contract next. Details and host-specific examples: the repository's docs/DEPLOYMENT.md.
Sardine CMS — multilingual, static-first CMS framework · Repository · Live demo · Apache-2.0