Skip to content
Conduit

mcp server

holzcloud-cms

A self-hosted CMS as a single Go binary. Multiple websites, multiple domains, SQLite, htmx — nothing is loaded from third parties at runtime.

holzcloud/holzcloud-cmscommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

This project does not publish an install method we can turn into a config. Follow the README instead.

README

synced Oct 21, 2026

holzcloud-CMS is a self-hosted CMS written in Go that runs many websites from one binary and one SQLite file. Its sites ship no JavaScript and load nothing from third parties, so they are fast and need no cookie banner. Made in Switzerland, free software under the AGPL-3.0.

Project page · Releases · Documentation

[!WARNING] Beta: safe to run with backups, not feature-frozen. Features, settings, the template contract and the AI tools can still change from one release to the next, and the database schema is not promised stable. Back up the data directory before every update and read the changelog. What 0.1.0 promises and what it does not is written in docs/beta.md; the admin screen still labels every 0.x build alpha until 1.0.

Why

  • No JavaScript on the websites. The eight built-in templates ship none, and an uploaded template with a script, an onclick or a javascript: link is refused. Visitors get HTML and CSS.
  • Nothing loaded from third parties. No CDN, web fonts, analytics, embeds or update check; fonts are compiled into the binary and every page carries a default-src 'self' content security policy. That is why a site needs no cookie banner, which suits GDPR.
  • The admin works without JavaScript too. Every action is an ordinary form; htmx, served from this server, only makes it quicker.
  • One static binary, one SQLite file. No database server, no PHP, no Node, no build step. Built for a small Linux server.
  • Many websites, many domains. Requests are routed by Host. Sites can be multilingual, with hreflang and a language picker; the admin comes in German, English, French, Italian and Spanish.
  • Edit with your own AI assistant. A built-in MCP server with about 140 tools lets Claude, ChatGPT or any MCP client do what the admin can. New pages stay drafts until you publish them.
  • A shop for Switzerland. Products with stock, orders by invoice or payment in advance (Payrexx optional), prices in CHF, with or without VAT.
  • No lock-in. A whole website exports as one readable archive, there is a WordPress importer, and holzcloud export writes a static copy any web host can serve.

It covers what many people use WordPress for (pages, posts, media, menus, multilingual sites, SEO, a small shop), with content kinds and fields of your own in the manner of Statamic; see the comparison with Statamic.

A look around

More screens, such as the media library and custom fields, are described in Publishing. The screenshots show a fictional site; a complete one to import is in sites/.

Install

Download holzcloud-linux-amd64 from the newest release, check it against the .sha256 file beside it, then:

chmod +x holzcloud-linux-amd64
./holzcloud-linux-amd64

Open http://localhost:8080/admin, create the first account (administrators set up a TOTP second factor right after), then add a website and its domain under Websites.

There is also a container image, ghcr.io/holzcloud/holzcloud-cms. To build from source you need Go 1.26 and nothing else:

CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o holzcloud ./cmd/holzcloud

Configuration is a set of HOLZCLOUD_* variables. A hardened systemd unit, a Caddyfile for automatic HTTPS and a WAL-safe backup script are in deploy/.

Documentation

Licence

GNU Affero General Public License v3. Running it for yourself or for clients obliges you to nothing beyond keeping the notices; if you offer a modified version to others over a network, they are entitled to your changes. Bundled fonts (Manrope, JetBrains Mono) are under the SIL Open Font License 1.1, see VENDOR.md. Contributions are accepted under the same licence.

↑↓ navigate openesc close