Sites
One CMS site per (tenant, org_node) scope — federation, districts and clubs. One site per scope is marked primary. Own domains get automatic TLS via Caddy; platform subdomains are provisioned in DNS automatically.
The site's status machine
Setup → Active → Inactive → Active (again) Activation can mass-publish drafts · deactivation takes the site offline but keeps the content
| Site | Domain | Template | OrgNode scope | Status | TLS/DNS | Brand | Primary | Content | |
|---|---|---|---|---|---|---|---|---|---|
| Svenska Bouleförbundet | petanque.se | Federation | Node 0 (federation) | Active | TLS active | Own brand | ★ Primary | 18 pages | Deactivate |
| Skåne Bouleförbund | skanebf.se | District | Skåne BF (district) | Active | TLS active | Inherits the federation | ★ Primary | 9 pages | Deactivate |
| Nordviks BK | nordvikbk.se | Club | Nordviks BK (club) | Active | TLS active | Inherits the district | ★ Primary | 6 pages | Deactivate |
| Sjöstad BK | sjostad-bk.web.petanque.life | Club | Sjöstad BK (club) | Setup | Awaiting DNS | Inherits the district | — | 4 drafts | Activate |
| Almvik PK | — (not pointed) | Club | Almvik PK (club) | Inactive | — | Own brand | — | 5 pages | Activate |
Tenant-scoped management: the federation admin sees and manages all sites in the tenant; district/club admins only their own (deny-by-default per OrgNode). Public directory: site-directory →
⏳ Loading sites…
🌐 No sites yet — create the first with the wizard.
⚠ Could not load the site list — try again.
All 5 steps are shown expanded so every field is visible. In the app this is a stepper — one step at a time.
1 Template & scope
→ 2 Domain & TLS
→ 3 Theme & brand
→ 4 Default pages
→ 5 Review & create
1 Template & scope The template determines default pages + information density
Federation
Nod-noll · 1280px · flest standardsidor
District
1024px · often inherits the federation's brand
Club
800px · focused, member-oriented
2 Domain & TLS The subdomain is created immediately — an own domain is verified via DNS
3 Theme & brand Overlays the tenant's canonical theme — does not duplicate it
4 Default pages Created as drafts from the template — untick what you don't want
5 Review & create
Site
Sjöstad BK · Club · primary
Scope
Sjöstad BK (club) · under Skåne BF
Domain
sjostad-bk.web.petanque.life · TLS auto
Brand
Inherits the federation's · Club (800px)
Default pages
6 of 8 are created as drafts
Language
Swedish (+ 60 available)
Own domains (custom domains)
| Domain | Site | Verification method | Verification | TLS | |
|---|---|---|---|---|---|
skanebf.se | Skåne Bouleförbund | CNAME → proxy.web.petanque.life | Verified | Active (Let’s Encrypt) | Remove |
nordvikbk.se | Nordviks BK | CNAME → proxy.web.petanque.life | Verified | Active (Let’s Encrypt) | Remove |
petanque-nordvik.se | Nordviks BK | TXT _petanque-verify | Awaiting DNS | — | Verify now |
almvikpk.se | Almvik PK | CNAME → proxy.web.petanque.life | Failed (wrong target) | — | Verify now |
Cert-gate: Caddy asks
/public/domains/cert-allowed?domain=… before a Let’s Encrypt cert is issued — only active sites' hostnames and verified domains are let through (protection against rate-limit abuse). Certificates renew automatically.
Point your domain
Add at your registrar — the platform verifies and provisions TLS automatically:
CNAME www → proxy.web.petanque.life
Alternative (apex/cannot CNAME):
TXT _petanque-verify → pl-verify=8f2c…a91
⏳ Awaiting DNS
Platform subdomains — auto-provisioned A records (Loopia)
| Subdomain | Site | DNS status | Last provisioned / errors | |
|---|---|---|---|---|
skane-bf.web.petanque.life | Skåne Bouleförbund | active | 12 May 2026 09:14 | — |
nordviks-bk.web.petanque.life | Nordviks BK | active | 3 Jun 2026 11:02 | — |
sjostad-bk.web.petanque.life | Sjöstad BK | pending | — | Repair DNS |
almvik-pk.web.petanque.life | Almvik PK | failed | Loopia: zone busy (latest error) | Repair DNS |
Repair DNS is idempotent — old A/AAAA/CNAME records are cleaned before the canonical A record is added. DNS errors never block site creation (status failed/disabled → repair manually).
Child sites can be mounted as a path prefix under the parent's domain — www.petanque.se/skane/ instead of an own domain. 1–3 levels are supported (federation → district → club). The canonical URL points to the path form.
| Child site | Mount path | Parent host | Canonical URL | Status | |
|---|---|---|---|---|---|
| Skåne Bouleförbund (district) | /skane/ | www.petanque.se | https://www.petanque.se/skane/… | Active | ✎ change slug |
| Nordviks BK (club) | /skane/nordviks-bk/ | www.petanque.se | https://www.petanque.se/skane/nordviks-bk/… | Active | ✎ change slug |
| Sjöstad BK (club) | /vast/sjostad-bk/ | www.petanque.se | — | Inactive (site in setup) | ✎ change slug |
Reserved system slugs (cannot be used as a path slug):
apisitesbookaccount_nextproxyrsssitemap
The directory is public and searchable — see the public directory view →. Inactive sites and sites marked "not in the directory" are not listed.