A generated, checked system map of the whole Slingslop stack: the public request path (Traefik → webcache → Sling → Oak JCR), CI/CD (GitHub Actions → GHCR → Ansible deploy), and observability (Prometheus/Loki → Grafana). Pan, zoom, and switch light/dark theme below — this is a static, read-only embed, not an editable component.
Interactive system map
Slingslop — Hypermedia Apps on Apache Sling
HTMX + Sling OOTB endpoints, single-VPS deployment
Explore this system
Step through curated paths without changing the source diagram.
Beat
Diagram guide
Explore this system
Inspecting compiled semantics
E ExportT ThemeS Style0 Reset+ Zoom in- Zoom outEsc Close
Find a node
/
No matching nodes
Route probe
Choose a start node
Pick two semantic nodes on the diagram
Semantic lens
Compare system roles
Choose up to two semantic kinds. One reveals its real traffic; two compare only direct authored relationships.
Choose a kind to inspect its nodes and touching relationships.
Semantic radar
Building overview
Semantic radar needs more MAP space.
Edge & caching
- • Traefik: TLS (Let's Encrypt), basicAuth gate for the editor host, rate-limiting
- • 3 interchangeable webcache engines (apache default, nginx, varnish) from ONE tenant config
- • URL shortening + Sling-aware request filtering (selector/extension allow-lists)
- • Gated/author apps route Traefik → Sling directly, bypassing the webcache
Application
- • Apache Sling 14 on Felix OSGi, HTL (Sightly) server-side rendering
- • HTMX drives component-level GET/POST swaps — minimal client JS
- • Sample apps: zengarden (CSS Zen Garden demo), sling-matrix, digitalmedia
Config as code
- • CONGA generates Traefik routers, webcache vhosts, and Sling URL mappings
- • One per-app 'tenant' block drives all 3 webcache engines identically
- • Adding an app = one tenant entry, no hand-written per-app config
CI/CD & ops
- • GitHub Actions builds + pushes images to GHCR, then runs Ansible playbooks
- • Secrets in Ansible Vault, path-selective deploys, immutable sha-tagged images
- • Composite NodeStore option bakes /apps + /libs read-only into the image