
Ein CMS für einen kleinen Server. Kein JavaScript, nichts von Dritten, beliebig viele Websites in einem Programm.

Kein JavaScript
Weder die Websites noch die Verwaltung brauchen es.
Nichts von anderswo
Keine CDNs, keine Web-Fonts, kein Tracking, darum kein Cookie-Banner.
KI über MCP
Claude oder ChatGPT pflegen Inhalte, mit rund 140 Werkzeugen.
Ein Programm
Ein Go-Binary, eine SQLite-Datei, beliebig viele Websites.
Beta 0.1.0: holzcloud-CMS lässt sich mit Sicherungen betreiben, der Funktionsumfang ist aber noch nicht eingefroren. Funktionen, Einstellungen und der Vorlagen-Vertrag können sich mit jedem Release ändern oder entfallen, Schema und Migrationen sind nicht als stabil zugesagt. Vor einem Update sichern und die Release-Notes lesen.
holzcloud-CMS besteht aus einem Go-Programm und einer SQLite-Datei. Es braucht kein PHP, keinen Datenbankserver und kein Node. Eine Installation trägt beliebig viele Websites, jede mit mehreren Domains, eigenem Design und eigenen Redakteuren.
Kein JavaScript, nichts von anderswo
- Die Websites liefern kein JavaScript aus. Auch hochgeladene Themes nicht: Ein Archiv mit Skript,
onclickoderjavascript:-Link wird abgewiesen. - Die Verwaltung geht auch ohne JavaScript. Jede Aktion ist ein normales Formular. htmx macht sie nur schneller.
- Zur Laufzeit wird nichts von Dritten geladen. Schriften sind einkompiliert, jede Antwort trägt die Content-Security-Policy
default-src 'self'. Verbindungen nach aussen gibt es nur, wo man sie selbst einrichtet: zum eigenen Mailserver und, im Shop, zu Payrexx.
Eine solche Website ist auf jedem Telefon schnell, läuft weiter, wenn ein fremder Dienst ausfällt, und braucht keinen Cookie-Banner.
KI über MCP
Unter /ai spricht holzcloud-CMS das Model Context Protocol. Claude, ChatGPT oder ein Editor können damit Seiten schreiben, Bilder hochladen, Menüs ordnen und übersetzen, ohne sich in der Weboberfläche anzumelden. In Claude oder ChatGPT genügt die Adresse und eine Zustimmung (OAuth). Schlüssel gibt es in drei Stufen (read, content, admin), beschränkbar auf einzelne Websites und eine Laufzeit. Neue Seiten sind immer Entwürfe, jede Änderung bleibt als Version erhalten. Der Server ruft selbst nie eine KI auf. Mehr in der Doku zum KI-Zugang. Diese Website wird so gepflegt.
Version 0.1.0 — Release auf GitHub. Läuft im Cluster und trägt drei Auftritte: diese Seite und zwei Kundenseiten, eine Installation, verschiedene Domains.
Funktionen

Seiten aus Bausteinen
Text, Bild, Galerie, Karten, Zitat oder Aufruf werden gestapelt und verschoben, daneben steht die Vorschau im echten Design. Eigene Bausteinarten lassen sich je Website anlegen.

Acht Themes, anpassbar
Hintergrund, Textfarbe, Akzent, Schrift und Eckenrundung stellt man je Website ein. Der Kontrast wird gleich nach WCAG geprüft.

Mehrsprachig
Bis zu acht weitere Sprachen je Website, mit hreflang und Sprachumschalter. Eine Matrix zeigt, welche Seite in welcher Sprache fehlt, ein Klick legt die Fassung an.

Shop mit Schweizer MWST
Produkte, Lagerbestand und Bestellungen, dazu Rechnung und Lieferschein. Preise in CHF mit 8.1, 2.6 und 3.8 %. Bezahlt wird per Rechnung, Vorauskasse oder online mit TWINT, PostFinance oder Karte über Payrexx. Warenkorb und Kasse sind normale Formulare.

SEO-Check im Editor
Der Reiter „SEO“ sagt, was an der gespeicherten Seite fehlt: zu kurze Beschreibung, eine zweite H1, Bilder ohne Beschreibung. Gesperrt wird nichts. Dazu kommen ein Bericht für die ganze Website, eine Sitemap mit Bildern und /llms.txt.




Ausserdem: eine Mediathek mit Alben (Kamera- und GPS-Daten werden beim Hochladen entfernt), Versionen mit Vergleich und Wiederherstellung, eigene Inhaltsarten mit 16 Feldarten, Formulare mit Spam-Quarantäne ohne IP-Speicherung, Zwei-Faktor-Pflicht für Administratoren, Plugins als WebAssembly in einer Sandbox, Export als lesbares Archiv oder statisches HTML, Import aus WordPress und CSV. Die Verwaltung läuft bis zum Telefon (390 px).
Installation
holzcloud-linux-amd64 aus dem neuesten Release laden, mit der .sha256-Datei vergleichen, ausführbar machen und starten. Dann /admin öffnen: Beim ersten Besuch wird das Administratorkonto angelegt, danach der zweite Faktor. Als Container gibt es ghcr.io/holzcloud/holzcloud-cms, zum Selbstbauen reicht Go 1.26. Systemd-Unit, Caddyfile und Sicherungsskript stehen in der Betriebsanleitung.
Wer noch darauf läuft
Auf derselben Installation liegen zwei weitere Auftritte, mit eigenen Domains, eigenem Design und eigenen Inhaltsarten.

Kinder und Bauernhof – Seehof
Ein kleiner Biodiversitätshof in Seewen SO: Ostfriesische Milchschafe, Wollschweine, Hühner und Ziegen. Der Hofladen arbeitet mit Anfragen statt mit Preisen.

Delnahida
Hundezucht für Löwchen und Perro de Agua Español. Zwanzig Seiten, fünfundachtzig Bilder, aus demselben Binary.
Weitere Projekte
holzkube-manager, die Verwaltung für Talos-Kubernetes-Cluster, holzBar, der Menüleisten-Manager für macOS, und holzWave, das Terminal in Rust. Zur Startseite.