Bludit Flatfile-CMS als Multi-Arch Docker-Stack (Raspberry Pi, Portainer)
  • Dockerfile 100%
Find a file
ppfeiffer 742c2a925a
All checks were successful
Build multi-arch image / build (push) Has been skipped
Add docker-compose.registry.yml
2026-07-29 06:32:07 +02:00
.github/workflows Add .github/workflows/build-image.yml 2026-07-29 06:32:06 +02:00
docker-compose.registry.yml Add docker-compose.registry.yml 2026-07-29 06:32:07 +02:00
docker-compose.yml Add docker-compose.yml 2026-07-29 06:15:43 +02:00
Dockerfile Add Dockerfile 2026-07-29 06:15:43 +02:00
README.md Add README.md 2026-07-29 06:15:44 +02:00

Bludit auf dem Raspberry Pi (Docker / Portainer)

Schlankes, datenbankloses Flatfile-CMS als eigenes Multi-Arch-Image. Die Basis php:8.2-apache ist offiziell für arm64 und armv7 gebaut, das Image läuft also nativ auf jedem Pi (32- oder 64-Bit-OS) ohne QEMU-Emulation. Bludit selbst ist reines PHP es wird nichts kompiliert.

Offline-Hinweis

Der Build braucht einmalig Internet (PHP-Basisimage ziehen, Bludit-Archiv laden). Danach läuft das CMS komplett offline es ruft im Betrieb keine externen Ressourcen ab. Wer den Pi ganz ohne Netz betreiben will: einmal in einem Netz bauen, dann Image mit docker save/docker load auf das Offline-Gerät übertragen.

Deployment über Portainer + Forgejo (empfohlen)

Die drei Dateien in ein Forgejo-Repo pushen, dann in Portainer:

  1. Stacks → Add stack → Repository wählen.
  2. Repository-URL eintragen (z. B. https://git.pfeiffer-privat.de/ppfeiffer/bludit-rpi), Branch main, Compose-Pfad docker-compose.yml. Bei privatem Repo Authentifizierung per Access-Token hinterlegen.
  3. Deploy the stack. Portainer baut das ARM-Image und startet den Container.

Danach im Browser http://<pi-ip>:8090 öffnen Bludit zeigt beim ersten Aufruf den Install-Assistenten (Sprache wählen, Admin-Passwort setzen). Fertig.

Alternative: direkt auf dem Pi bauen

git clone https://git.pfeiffer-privat.de/ppfeiffer/bludit-rpi.git
cd bludit-rpi
docker compose up -d --build

Backup

Alle Nutzdaten (Seiten, Uploads, Konfiguration, JSON-Datenbank) liegen im Named Volume bludit_content. Ein Backup ist damit ein Tarball dieses Volumes:

docker run --rm -v bludit_content:/data -v "$PWD":/backup alpine \
  tar czf /backup/bludit-backup-$(date +%F).tar.gz -C /data .

Passt gut zu deiner bestehenden Forgejo-Backup-Automatik den Tarball einfach mit ins Backup-Ziel legen.

Update

Neue Bludit-Version einspielen: In docker-compose.yml (und optional im Dockerfile-Default) BLUDIT_VERSION erhöhen, dann Image neu bauen. Das Volume bludit_content bleibt erhalten, die Inhalte gehen nicht verloren.

docker compose build --no-cache && docker compose up -d

In Portainer stattdessen beim Stack Pull and redeploy bzw. Re-pull image and redeploy mit aktiviertem Rebuild.

Absicherung

Standardmäßig lauscht der Container auf Port 8090 im lokalen Netz. Für den öffentlichen Betrieb TLS davor setzen bei dir bietet sich der vorhandene Nginx Proxy Manager oder Caddy an. Bludit hat ein eigenes Login mit Brute-Force-Schutz; ein zusätzlicher Reverse-Proxy mit HTTPS ist trotzdem sinnvoll, sobald das CMS aus dem Mesh/Internet erreichbar sein soll.

Angepasste Parameter

Was Wo Standard
Bludit-Version Dockerfile ARG / docker-compose.yml 3.22.0
Host-Port docker-compose.yml ports 8090
Upload-Limit Dockerfile (bludit.ini) 20M
Zeitzone Dockerfile (date.timezone) Europe/Berlin