← Alle Beiträge
01.10.2026

Ein Binary, eine Datenbankdatei

Warum IllusionCMS und IllusionDB als einzelne Programme ausgeliefert werden, was darin steckt, wie Updates funktionieren – und welche Grenzen das bewusst mit sich bringt.

Terminal: IllusionCMS entpacken und starten – ein statisch gelinktes Binary, Daten in illusion.db und media/

IllusionCMS und IllusionDB folgen derselben Idee: herunterladen, starten, fertig. Kein separater Webserver, keine Laufzeitumgebung wie PHP, Node.js oder Java, keine Handvoll Container, die zusammenspielen müssen. Was hinter dieser Entscheidung steckt – und was sie kostet.

Was in einem Binary steckt

Beide Programme sind in Go geschrieben und werden zu einer einzigen ausführbaren Datei kompiliert. Darin steckt alles, was zur Laufzeit gebraucht wird:

  • der Webserver, der Seiten, API und Dateien ausliefert,
  • die komplette Admin-Oberfläche (bei IllusionCMS in Svelte, bei IllusionDB in SvelteKit geschrieben und beim Bauen eingebettet),
  • die Datenbank-Engine: SQLite in einer reinen Go-Umsetzung, ganz ohne C-Compiler,
  • bei IllusionCMS außerdem der Template-Renderer, der Bildumrechner für WebP und ein Minifizierer für CSS und JavaScript.

Weil kein C-Code beteiligt ist, lässt sich jede Version auf einem Rechner für alle Plattformen bauen – Windows, Linux (x64 und ARM64) und macOS (Intel und Apple Silicon). Das Linux-Programm ist vollständig statisch gelinkt und läuft deshalb auch in einem minimalen Docker-Image ohne Betriebssystem-Bibliotheken. Ein IllusionCMS-Programm ist rund 33 MB groß, als Download etwa 13 MB.

Ein Ordner für alle Daten

IllusionCMS legt alles in einem Datenordner ab: die Datenbankdatei mit Seiten, Templates, Collections und Einstellungen sowie die hochgeladenen Medien. Wer umziehen will, kopiert diesen Ordner. Wer Inhalte zwischen Rechnern übertragen will, nutzt Bundles: Sie packen den kompletten Inhalt in eine Datei und lassen sich auf einer anderen Instanz einspielen – oder direkt über eine gespeicherte Verbindung hoch- und herunterladen. Zusätzlich legt IllusionCMS jede Nacht automatisch ein Backup an, sobald sich etwas geändert hat.

IllusionDB arbeitet anders: Die eigentlichen Daten bleiben in der Datenbank, mit der es verbunden ist. Im eigenen Datenordner liegen nur Verbindungen, Ansichten, Benutzer und Einstellungen sowie hochgeladene Anhänge – und SQLite-Datenbanken, die du direkt in IllusionDB neu anlegst.

Aktualisieren

Eine neue Version installieren heißt: Programm austauschen und neu starten. Beim Start passt das Programm seine Datenbank selbstständig an den neuen Stand an. Diese Anpassungen laufen nur vorwärts – wer auf eine ältere Version zurück möchte, braucht deshalb die Sicherung des Datenordners von vor dem Update. Vor größeren Sprüngen lohnt sich also eine Kopie.

Im Docker-Betrieb ist es dasselbe Prinzip: Das Image enthält nur das Programm, die Daten liegen in einem Volume.

Was es kostet

Schlank heißt auch: bewusst nicht alles können.

  • Ein Server, kein Cluster. IllusionCMS hält Seiten-Cache, Zeitpläne und Statistik im eigenen Prozess. Mehrere Instanzen hinter einem Load-Balancer sind nicht vorgesehen. Wer Ausfallsicherheit braucht, sichert den Datenordner – etwa mit Backups und Bundles oder einer laufenden Replikation der SQLite-Datei.
  • Kein WYSIWYG-Editor. IllusionCMS ist für Leute gebaut, die ihr HTML selbst schreiben. Ein visueller Editor würde Template-Syntax und importiertes Markup zerstören.
  • Keine Rollen und Rechte im CMS. Alle Konten sind Administratoren. IllusionDB dagegen hat Benutzer, Gruppen und Rechte je Tabelle, weil dort oft mehrere Leute mit denselben Daten arbeiten.
  • IllusionDB ist nicht nur ein Binary. Feldtypen, Ansichten und Endpunkte kommen als WebAssembly-Module aus dem Ordner modules/ neben dem Programm – so lassen sie sich erweitern, ohne den Server neu zu bauen. Der Dokumenten-Generator braucht außerdem einen Chromium-Browser; das Docker-Paket bringt ihn mit.

Für wen das passt

Für alle, die eine Website oder eine Datenbank-Oberfläche betreiben wollen, ohne sich um einen ganzen Software-Stapel zu kümmern: ein kleiner Server, ein Programm, ein Datenordner. Und für Entwicklerinnen und Entwickler, die lokal arbeiten und das Ergebnis mit einem Klick auf den Live-Server bringen wollen.