holzcloud
Menu
holzcloud-CMS : un nuage avec des cernes sur une planche de bois, à côté le nom, « A self-hosted CMS that needs no JavaScript and loads nothing from anywhere else. » et les mots-clés Zero JavaScript, No external dependencies, Single binary, Many websites

Bêta

Sans JavaScript

AGPL-3.0

Un CMS pour un petit serveur. Pas de JavaScript, rien de chez des tiers, autant de sites que l’on veut dans un seul programme.

Éditeur de blocs avec un bloc image et texte à gauche et l’aperçu en direct à droite

Sans JavaScript

Ni les sites ni l’administration n’en ont besoin.

Rien d’ailleurs

Pas de CDN, pas de polices web, pas de suivi, donc pas de bannière de cookies.

IA via MCP

Claude ou ChatGPT gèrent le contenu, avec environ 140 outils.

Un seul programme

Un binaire Go, un fichier SQLite, autant de sites que l’on veut.

Bêta 0.1.0 : holzcloud-CMS peut être exploité tant que l’on fait des sauvegardes, mais l’ensemble des fonctions n’est pas encore figé. Fonctions, réglages et contrat des modèles peuvent changer ou disparaître à chaque version ; le schéma et les migrations ne sont pas promis stables. Sauvegardez avant une mise à jour et lisez les notes de version.

holzcloud-CMS, c’est un programme Go et un fichier SQLite. Pas de PHP, pas de serveur de base de données, pas de Node. Une installation porte autant de sites que l’on veut, chacun avec plusieurs domaines, son propre design et ses propres rédacteurs.

Sans JavaScript, rien d’ailleurs

  • Les sites n’envoient aucun JavaScript. Les thèmes importés non plus : une archive avec un script, un onclick ou un lien javascript: est refusée.
  • L’administration marche aussi sans JavaScript. Chaque action est un formulaire ordinaire. htmx ne fait que l’accélérer.
  • Rien n’est chargé chez des tiers à l’exécution. Les polices sont intégrées, chaque réponse porte la Content-Security-Policy default-src 'self'. Des connexions sortantes n’existent que là où on les configure soi-même : son propre serveur de messagerie et, dans la boutique, Payrexx.

Un tel site est rapide sur n’importe quel téléphone, continue de marcher quand le service d’un autre tombe, et n’a pas besoin de bannière de cookies.

IA via MCP

Sous /ai, holzcloud-CMS parle le Model Context Protocol. Claude, ChatGPT ou un éditeur peuvent écrire des pages, téléverser des images, ordonner des menus et traduire sans se connecter à l’interface web. Dans Claude ou ChatGPT, il suffit d’indiquer l’adresse et d’accepter une fois (OAuth). Les clés existent en trois niveaux (read, content, admin) et se limitent à certains sites et à une durée. Les nouvelles pages sont toujours des brouillons, chaque modification reste conservée comme version. Le serveur n’appelle jamais lui-même une IA. Plus dans la doc de l’accès IA. Ce site est géré ainsi.

Version 0.1.0 — version sur GitHub. Tourne dans le cluster et porte trois sites : celui-ci et deux sites clients, une installation, des domaines différents.

Fonctions

Éditeur de blocs avec un bloc image et texte à gauche et l’aperçu en direct à droite

Des pages en blocs

Texte, image, galerie, cartes, citation ou appel à l’action s’empilent et se déplacent, avec l’aperçu dans le vrai design à côté. On peut créer ses propres types de blocs par site.

Réglages du design avec le modèle actif, couleurs et police à gauche et aperçu en direct du site à droite

Huit thèmes, réglables

Fond, couleur du texte, accent, police et arrondi des coins se règlent par site. Le contraste est vérifié tout de suite selon WCAG.

Matrice de traduction avec une ligne par page, des colonnes pour l’anglais et le français et un bouton de création pour chaque version manquante

Multilingue

Jusqu’à huit autres langues par site, avec hreflang et sélecteur de langue. Une matrice montre quelle page manque dans quelle langue, un clic crée la version.

Aperçu de la boutique avec chiffre d’affaires du mois, commandes ouvertes, produits presque épuisés, liste de tâches et diagramme du chiffre d’affaires par semaine

Boutique avec TVA suisse

Produits, stock et commandes, avec facture et bon de livraison. Prix en CHF avec 8,1, 2,6 et 3,8 %. Paiement sur facture, par avance ou en ligne avec TWINT, PostFinance ou carte via Payrexx. Panier et caisse sont des formulaires ordinaires.

Éditeur de page avec l’onglet SEO ouvert : liste de constats comme description trop courte, titre de niveau 1 dans le texte et pas d’image d’aperçu

Contrôle SEO dans l’éditeur

L’onglet « SEO » dit ce qui manque à la page enregistrée : description trop courte, un deuxième H1, images sans description. Rien n’est bloqué. S’y ajoutent un rapport pour tout le site, un plan du site avec images et /llms.txt.

Médiathèque avec zone d’envoi, barre latérale de filtres et d’albums et grille d’images
Médiathèque avec albums et filtres
Comparaison de deux versions d’une page, lignes supprimées en rouge et nouvelles lignes en vert
Versions d’une page côte à côte
Médiathèque avec zone d’envoi, barre latérale de filtres et d’albums et grille d’images
Médiathèque avec albums et filtres
Comparaison de deux versions d’une page, lignes supprimées en rouge et nouvelles lignes en vert
Versions d’une page côte à côte

En plus : une médiathèque avec albums (données d’appareil et GPS supprimées à l’envoi), versions avec comparaison et restauration, types de contenu personnalisés avec 16 sortes de champs, formulaires avec quarantaine anti-spam sans stockage d’IP, deux facteurs obligatoire pour les administrateurs, plugins en WebAssembly dans un bac à sable, export en archive lisible ou en HTML statique, import depuis WordPress et CSV. L’administration fonctionne jusque sur téléphone (390 px).

Installation

Télécharger holzcloud-linux-amd64 depuis la dernière version, comparer avec le fichier .sha256, le rendre exécutable et le lancer. Ouvrir ensuite /admin : à la première visite, on crée le compte administrateur, puis le second facteur. Un conteneur existe sous ghcr.io/holzcloud/holzcloud-cms ; pour compiler soi-même, Go 1.26 suffit. Unité systemd, Caddyfile et script de sauvegarde se trouvent dans le guide d’exploitation.

Qui tourne aussi dessus

Deux autres sites tournent sur la même installation, avec leurs propres domaines, design et types de contenu.

Autres projets

holzkube-manager, le gestionnaire de clusters Kubernetes sur Talos, holzBar, le gestionnaire de barre des menus pour macOS, et holzWave, le terminal écrit en Rust. Retour à l’accueil.