Installation Nativ - BBessler/Solarmanager GitHub Wiki

Native Installation (ohne Docker)

Bei der nativen Installation werden alle Komponenten direkt auf dem System installiert — ohne Docker.

Voraussetzungen

  • Debian / Ubuntu / Raspberry Pi OS
  • Internetzugang
  • Root-Rechte (sudo)
  • Ein Benutzer pi auf dem System

Installation starten

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

Das Script fragt zwei Dinge ab:

Eingabe Standard Beschreibung
Hostname/IP solarmanager.local Erreichbarkeit im Netzwerk
DB-Passwort solarmanager MariaDB Root-Passwort

Was das Script macht

1. Hostname & mDNS (15%)

Bei einem .local-Hostname wird Avahi installiert, sodass der Solarmanager per mDNS erreichbar ist.

2. Apache, PHP, MariaDB (20%)

Installiert die Basispakete:

  • Apache2 mit mod_rewrite, mod_ssl, mod_proxy
  • PHP mit MySQL-Unterstützung
  • MariaDB Server

3. phpMyAdmin (30%)

  • Automatische Installation und Konfiguration
  • Erreichbar unter http://hostname/phpmyadmin

4. MariaDB konfigurieren (40–50%)

  • Erstellt User pi und root mit dem gewählten Passwort
  • Erstellt Datenbank solardb
  • Öffnet MariaDB für externe Verbindungen

5. Firewall (55%)

Öffnet die benötigten Ports:

Port Dienst
22 SSH
80 HTTP Frontend
90 HTTP Backend-API
443 HTTPS Frontend
453 HTTPS Backend-API
3306 MariaDB
5000 .NET Backend (intern)

6. SSL-Zertifikat (63%)

  • Generiert ein Self-Signed-Zertifikat (10 Jahre gültig)
  • Gespeichert unter /etc/ssl/solarmanager/
  • SubjectAltName enthält den Hostname und die IP-Adresse

7. Apache VirtualHosts (66%)

Richtet vier VirtualHosts ein:

Port Funktion
443 HTTPS Frontend (DocumentRoot: /var/www/html)
453 HTTPS Backend-API (Proxy auf localhost:5000)
80 HTTP Frontend
90 HTTP Backend-API (Proxy auf localhost:5000)

8. .NET und Python (80%)

  • Installiert .NET 9 Runtime
  • Installiert Python 3 und die Bibliotheken für BMW- und Hyundai/Kia-Fahrzeuganbindung:
    • hyundai-kia-connect-api
    • bimmer_connected

9. Releases herunterladen (83%)

  • Lädt Backend und Frontend von GitHub Releases herunter
  • Backend nach /var/www/html/backend/
  • Frontend nach /var/www/html/
  • Konfiguriert config.json mit der Backend-URL

10. Systemd-Service (90%)

Erstellt den Service solarmanager.service:

[Service]
WorkingDirectory=/var/www/html/backend/
ExecStart=dotnet /var/www/html/backend/Solarmanager.dll
User=pi
Environment=ASPNETCORE_URLS="http://*:5000"

11. Datenbank-Import (optional)

Falls eine Datei solardb.sql im aktuellen Verzeichnis liegt, wird gefragt, ob diese importiert werden soll.

Architektur

  Port 80  ──── Apache (HTTP Frontend)
  Port 90  ──── Apache (HTTP Backend-Proxy → :5000)
  Port 443 ──── Apache (HTTPS Frontend)
  Port 453 ──── Apache (HTTPS Backend-Proxy → :5000)
  Port 5000 ─── .NET Backend (Solarmanager.dll)
  Port 3306 ─── MariaDB

Zugriff nach der Installation

Dienst URL
Frontend (HTTP) http://solarmanager.local
Frontend (HTTPS) https://solarmanager.local
Backend-API (HTTP) http://solarmanager.local:90
Backend-API (HTTPS) https://solarmanager.local:453
phpMyAdmin http://solarmanager.local/phpmyadmin

Nützliche Befehle

# Backend neu starten
sudo systemctl restart solarmanager.service

# Status prüfen
sudo systemctl status solarmanager.service

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

# Apache neu starten
sudo systemctl restart apache2

Update

Siehe Update Nativ.