Solarmanager installieren: Raspberry Pi, Docker & Linux

Schritt-für-Schritt-Anleitung zur Einrichtung des Solarmanagers auf deinem Raspberry Pi oder Linux-Server – als Docker-Container oder native Installation.

Voraussetzungen

Raspberry Pi

Raspberry Pi 4 oder neuer mit Raspberry Pi OS (Debian-basiert). SSD empfohlen, SD-Karte möglich. Alternativ jeder Linux-Server.

Internetverbindung

Für die Installation. Im Betrieb nur für Wetterdaten, Solcast, Tarife und Cloud-Geräte. Die interne PV-Prognose läuft offline.

SSH-Zugang

SSH-Zugang zum Pi bzw. Server für die Einrichtung und Verwaltung.

Welche Methode passt zu dir?

Docker (empfohlen) Nativ
Isolation Container-basiert Direkt auf dem System
Verwaltung Portainer (Web-UI) systemd / SSH
Betriebssysteme Debian, Ubuntu, RHEL, Fedora, Arch, openSUSE Debian / Raspberry Pi OS
Empfohlen

Installation mit Docker

Docker vereinfacht die Installation und Updates auf einen einzigen Befehl. Alle Abhängigkeiten werden automatisch eingerichtet.

1

Setup-Skript herunterladen und starten

Per SSH auf dem Pi einloggen und folgenden Befehl ausführen:

wget https://raw.githubusercontent.com/BBessler/Solarmanager/main/install/setup_docker.sh
chmod +x setup_docker.sh
./setup_docker.sh
SSH Terminal

SSH-Verbindung zum Raspberry Pi

Skript Download

Skript herunterladen und ausführen

2

Hostname und Datenbank konfigurieren

Das Skript fragt interaktiv nach dem gewünschten Hostnamen und Datenbankpasswort. Der Hostname wird für den Zugriff im lokalen Netzwerk verwendet (z.B. solarmanager.local).

Hostname Konfiguration

Hostname festlegen

Datenbank Passwort

Datenbankpasswort setzen

3

Neu anmelden und Skript erneut starten (falls Docker installiert wurde)

Hat das Skript Docker neu installiert: SSH-Sitzung schließen, neu anmelden, ./setup_docker.sh erneut starten. Das Skript erkennt das vorhandene Docker und richtet den Solarmanager ein.

./setup_docker.sh
Vor Neustart

Status vor dem Neu-Einloggen

Nach Neustart

Nach dem Neu-Einloggen

Zweite Ausführung

Zweite Ausführung des Skripts

Konfiguration

Hostname und Passwort bestätigen

4

Installation abgeschlossen

Das Skript lädt die neuesten Releases herunter, startet die Container und zeigt am Ende die Zugriffs-URLs an. Nach 2–5 Minuten ist der Solarmanager im Browser erreichbar, weil die Datenbank beim ersten Start eingerichtet wird.

Backend Start

Backend wird gestartet

Installation fertig

Zusammenfassung mit Zugriffs-URLs

Setup Wizard

Setup-Wizard im Browser — Solarmanager ist bereit!

Das Skript installiert automatisch:

Docker (falls nicht vorhanden)
Solarmanager Backend + Frontend
MariaDB Datenbank
phpMyAdmin (DB-Verwaltung)
Caddy Reverse-Proxy mit HTTPS
Portainer (Docker-Verwaltung)
mDNS/Avahi (.local-Hostname)
Frontend-Konfiguration (API-URL)

Updates

Um den Solarmanager auf die neueste Version zu aktualisieren:

wget -O update_docker.sh https://raw.githubusercontent.com/BBessler/Solarmanager/main/install/update_docker.sh
chmod +x update_docker.sh
./update_docker.sh

Für die Beta-Version (Pre-Release) den --beta-Parameter anhängen:

./update_docker.sh --beta

Das Standard-Update installiert nur stabile Releases — ein Produktivsystem bekommt nie versehentlich eine Beta-Version.

Nützliche Befehle

# Container-Status prüfen
cd ~/solarmanager && docker compose ps

# Solarmanager-Logs anzeigen
docker compose logs -f solarmanager

# Alle Logs anzeigen
docker compose logs -f

# Neu starten
docker compose restart

# Stoppen / Starten
docker compose down
docker compose up -d

Native Installation (ohne Docker)

Alternative zur Docker-Installation. Installiert alle Komponenten direkt auf dem System. Geeignet für Raspberry Pi OS / Debian.

1

Setup-Skript ausführen

Per SSH auf dem Raspberry Pi einloggen und folgenden Befehl ausführen:

wget https://raw.githubusercontent.com/BBessler/Solarmanager/main/install/setup_solarmanager.sh
chmod +x setup_solarmanager.sh
sudo ./setup_solarmanager.sh

Das Skript installiert automatisch:

Apache Webserver mit PHP und SSL
MariaDB Datenbank
phpMyAdmin
.NET Runtime
Python-Abhängigkeiten (BMW/Hyundai API)
Firewall (UFW)
Solarmanager Backend + Frontend
Systemd-Service (Autostart)
2

Datenbank importieren (optional)

Falls eine bestehende Datenbank-Sicherung (solardb.sql) importiert werden soll:

Nach der Einrichtung die automatische Sicherung unter Einstellungen → Datensicherung einschalten – mit Wiederherstellung direkt aus der Oberfläche. Mehr zur Datensicherung.

wget https://raw.githubusercontent.com/BBessler/Solarmanager/main/install/setup_DB.sh
chmod +x setup_DB.sh
sudo ./setup_DB.sh

Updates

wget -O update_solarmanager.sh https://raw.githubusercontent.com/BBessler/Solarmanager/main/install/update_solarmanager.sh
chmod +x update_solarmanager.sh
sudo ./update_solarmanager.sh

Das Update-Skript lädt die neuesten Releases, sichert die Frontend-Konfiguration und startet das Backend neu. Für Beta-Versionen: sudo ./update_solarmanager.sh --beta

Nützliche Befehle

# Backend neu starten
sudo systemctl restart solarmanager.service

# Backend-Status prüfen
sudo systemctl status solarmanager.service

# Backend-Logs anzeigen
sudo journalctl -u solarmanager.service -f

Zugriff nach der Installation

Docker Zugriffs-URLs

Frontendhttps://solarmanager.local
API / Swaggerhttps://solarmanager.local/swagger
phpMyAdminhttps://solarmanager.local/phpmyadmin
Portainerhttps://solarmanager.local:9443

Nativ Zugriffs-URLs

Frontendhttps://solarmanager.local
Backend-APIhttps://solarmanager.local:453
phpMyAdminhttps://solarmanager.local/phpmyadmin

Hinweis zum SSL-Zertifikat

Die Oberfläche nutzt HTTPS mit einem selbst ausgestellten Zertifikat (Self-Signed). Für lokale Adressen lässt sich kein öffentliches Zertifikat ausstellen. Der Browser warnt deshalb beim ersten Zugriff. Die Verbindung ist trotzdem verschlüsselt. Die Warnung einmalig bestätigen:

Chrome/Edge: „Erweitert" → „Weiter zu … (unsicher)"

Firefox: „Erweitert…" → „Risiko akzeptieren und fortfahren"

Safari: „Details einblenden" → „Diese Website besuchen"

Beim ersten Start wird die Datenbank eingerichtet. Bis alle Dienste erreichbar sind, dauert es daher einige Minuten.