2.4 KiB
Cazubu - Pflanzenverwaltung
Cazubu ist eine Webanwendung zur Verwaltung von Pflanzen, Inventar, Samen und Sensoren.
Projektstruktur
Das Projekt ist so aufgebaut, dass der Quellcode vom Deployment-Setup getrennt ist:
src/: Enthält den gesamten PHP-Quellcode, Assets und Frontend-Ressourcen.Dockerfile: Definition des Docker-Images..gitea/workflows: CI/CD-Konfiguration.
Installation & Betrieb
Voraussetzungen
- Docker Engine
- Eine laufende MySQL/MariaDB Datenbank
Docker Build & Run
-
Image bauen:
docker build -t cazubu . -
Container starten (Produktiv): Für den produktiven Einsatz sollten Uploads (Bilder) persistent gespeichert werden. Dafür binden wir ein Volume an
/var/www/html/uploads.docker run -d \ -p 8080:80 \ -e DB_SERVER="deine-db-ip" \ -e DB_USERNAME="cazubu" \ -e DB_PASSWORD="dein-sicheres-passwort" \ -e DB_NAME="cazubu" \ -v cazubu_uploads:/var/www/html/uploads \ --name cazubu-app \ --restart unless-stopped \ cazubu
Umgebungsvariablen
Die Anwendung wird über Umgebungsvariablen konfiguriert. Wenn diese nicht gesetzt sind, werden interne Fallbacks (für Entwicklung) genutzt.
| Variable | Beschreibung | Standard (Dev) |
|---|---|---|
DB_SERVER |
IP oder Hostname des Datenbankservers | 172.30.242.130 |
DB_USERNAME |
Datenbank-Benutzer | cazubu |
DB_PASSWORD |
Datenbank-Passwort | (interner Standard) |
DB_NAME |
Name der Datenbank | cazubu |
Persistente Daten
User-Uploads (Pflanzenbilder) werden im Container unter /var/www/html/uploads gespeichert.
Um Datenverlust beim Neustart/Update des Containers zu vermeiden, muss dieses Verzeichnis als Volume gemountet werden (siehe oben).
Entwicklung
Um lokal zu entwickeln, ohne jedes Mal das Image neu zu bauen, kann der src-Ordner direkt in den Container gemountet werden:
docker run -d \
-p 8080:80 \
-v $(pwd)/src:/var/www/html \
--name cazubu-dev \
cazubu
Changelog
2025-12-07 - Refactoring & Dockerisierung
- Struktur: Quellcode nach
src/verschoben für saubereres Root-Verzeichnis. - Docker:
Dockerfileangepasst (kopiert nunsrc/). - Doku:
README.mderweitert um detaillierte Deployment-Infos und Volume-Handling. - CI/CD: Pipeline für automatischen Build & Push eingerichtet.