BControl (Budget Control) ist eine Web-Applikation zur Orientierung in und Kontrolle von Finanzen (Konten). Ein Konto kann ein Bankkonto, eine Haushalts-Kasse oder alles andere sein, wo ein Guthaben durch Zu- und Abflüsse (Buchungen) verändert wird. Die Budget-Kontrolle wird durch Soll-Ist-Vergleiche und Prognose von Konto-Verläufen ermöglicht.
Voraussetzungen
Sourcecode herunterladen und in ein Unterverzeichnis unter /htdocs
kopieren
Datenbank in mySql oder MariaDB anlegen
Datenbank-Parameter in Datei util/LocalSettingsTemplate.php
eintragen (mit $dbServer = "localhost", User, Passwort und Datenbank-Name)
Im Browser localhost/unterverzeichnis/install.php
aufrufen
Sourcecode herunterladen und in ein beliebiges Verzeichnis extrahieren (unzip)
Ist der Ziel-Rechner ein Raspberry Pi, die Dateien Dockerfile
und docker-compose.yml
löschen und den Suffix _raspi
in den entsprechenden Dateien entfernen
Im Terminal in das Verzeichnis wechseln (z.B. mit cd /home/myname/BControl
)
Falls Zugriff auf die Datenbank mit phpMyAdmin möglich sein soll: Bei auskommentierten Zeilen in docker-compose.yml
das #-Zeichen entfernen
Falls Port 8080 bereits verwendet wird: Datei docker-compose.yml
editieren und das Portmapping ändern z.B. auf 8085:80
Container bauen und starten mit docker-compose up -d
Im Browser localhost:8080/install.php
aufrufen
install.php
)localhost/unterverzeichnis
aufrufencd /home/myname/BControl
)docker-compose up -d
localhost:8080
aufrufendocker-compose stop
eingebeninstall.php
aufrufen und ggf. Update-Skript ausführen
(wenn kein Skript zur Ausführung angegeben ist, kann direkt zur Seite index.php
gegangen werden)cd /home/myname/BControl
)docker-compose up -d --build
(der vorhandene Container wird dadurch aktualisiert)localhost:8080/install.php
aufrufen und ggf. Update-Skript ausführen (wenn kein Skript zur Ausführung angegeben ist, kann direkt zur Seite index.php
gegangen werden)config/LocalSettings.php
löschenlocalhost/unterverzeichnis/install.php
aufrufenUm die Datei config/LocalSettings.php
im Container zu löschen, folgende Kommandos im Terminal nach Starten des Containers eingeben (ohne $-Zeichen):
docker exec -it bc_app bash
cd config/
rm LocalSettings.php
exit
Im Browser localhost:8080/install.php
aufrufen
Für Interessierte, die mit den Grundlagen von Web-Anwendungen nicht so vertraut sind, hier kurz das Wichtigste.
Eine Web-Anwendung hat eine Benutzer-Oberfläche, die in einem Web-Browser (z.B. Google Chrome, Firefox) angezeigt wird, analog zu Internet-Seiten. Die anzuzeigenden Inhalte und die im Browser ablaufenden Programmteile müssen dem Browser von einem Server geliefert werden. Dieser kann im Internet liegen, aber auch auf dem gleichen PC, an dem der Anwender arbeitet. Im letzteren Fall ist der Server einfach ein Programm, das auf dem PC im Hintergrund läuft und Anfragen des Browsers beantwortet.
localhost
begonnen.localhost:8080
), damit mehrere Server auf einem Rechner sich nicht in die Quere kommen.Für die lokale Installation eines Apache-Webservers auf dem eigenen Rechner empfehlen sich
Bei diesen Installationen ist auch schon dafür gesorgt, dass auf dem Web-Server PHP verfügbar ist (das ist die Programmiersprache, mit der BControl auf dem Server arbeitet), und dass eine mySql-Datenbank mit dabei ist.
BControl speichert die Daten nicht einfach in Dateien, wie man sie von Dokumenten auf dem PC kennt, sondern in einer Datenbank. Dort sind die Daten in vielen Tabellen hinterlegt und zwischen den Tabellen miteinander verknüpft.
Ein solches Datenbank-System ist im Prinzip noch ein weiterer Server, mit dem das Programm vom Web-Server aus kommuniziert. Auf dem System können wiederum viele Datenbanken und in jeder Datenbank viele Tabellen gespeichert werden. Damit Anwendung und Datenbank einander verstehen, braucht die Anwendung folgende Daten (hier mit typischen Werten für BControl auf XAMPP oder MAMP):
localhost
bc
root
???
(wie bei der Installation festgelegt, eventuell auch leer)Wenn man XAMPP oder MAMP verwendet, muss man vor der Installation von BControl auf dem Datenbank-System eine neue Datenbank (z.B. mit Namen bc
) anlegen. Dies geschieht häufig über die Web-Anwendung phpMyAdmin, die mit XAMPP und MAMP mitgeliefert wird.
Docker ist eine Technik mit dem Ziel, das eigene Rechner-System nicht mit Komponenten-Installationen für spezielle Anwendungen zu überfrachten. Also z.B. für BControl keinen Web-Server und keine Datenbank installieren zu müssen, die sich dann unübersichtlich im System einnisten.
Dazu werden die für die Anwendung notwendigen Komponenten (z.B. Apache mit PHP) zusammen mit der Anwendung in einen sogenannten Container gepackt und dieser dann als "virtuelles System" ausgeführt. Man benötigt also nur die Docker-Installation und kann dann alle Varianten von (Web-)Servern, Datenbanken etc. in Containern laufen lassen, ohne sie auf dem eigenen System installieren zu müssen. Wenn man einen Container nicht mehr braucht, wird er gestoppt und ggf. gelöscht und hinterlässt definitiv keine Spuren auf dem eigenen Rechner.
Docker ist frei verfügbar, läuft allerdings nur auf Mac- und Linux-Systemen sowie auf Windows 10 Pro. Den Download gibt es nach (kostenloser) Registrierung bei docker.com.
Für den Betrieb von BControl auf Mac-Rechnern empfehle ich Docker, weil es sehr einfach zu installieren ist und einem das Anlegen der Datenbank und das zugehörige Anpassen der BControl-Konfiguration komplett erspart.