Files
wetterstation/DEPLOY.md
rxf 4b0ac3a652 Grafik 2 spaltig auch bein iFrame
Übertragen nach sternwarte funktioniert
2026-02-08 15:37:44 +01:00

2.8 KiB

Deployment auf externen Webserver

Übersicht

Das System generiert alle 4 Minuten statische HTML-Dateien mit aktuellen Wetterdaten und lädt sie auf einen externen Webserver hoch.

Voraussetzungen

  1. SSH-Zugang zum Webserver (passwortlos mit SSH-Key empfohlen)
  2. rsync installiert (auf macOS bereits vorhanden)
  3. Python 3 mit venv
  4. API läuft lokal (localhost:8000)

Setup

1. Python-Abhängigkeiten installieren

source .venv/bin/activate
pip install requests

2. Konfiguration anpassen

Bearbeiten Sie generate-static.py:

REMOTE_SERVER = "user@ihr-server.de"     # Ihr SSH-Zugang
REMOTE_PATH = "/var/www/html/wetterstation"  # Pfad auf dem Server

3. SSH-Key Setup (einmalig)

Für automatisches Upload ohne Passwort-Eingabe:

# SSH-Key generieren (falls noch nicht vorhanden)
ssh-keygen -t ed25519

# Public Key auf Server kopieren
ssh-copy-id user@ihr-server.de

# Test
ssh user@ihr-server.de "echo 'Verbindung OK'"

4. Frontend für statische Nutzung vorbereiten

# App.jsx durch statische Version ersetzen
cp frontend/src/App-static.jsx frontend/src/App.jsx

5. Manueller Test

python generate-static.py

Dies sollte:

  • Wetterdaten laden ✓
  • Frontend bauen ✓
  • Daten einbetten ✓
  • Dateien hochladen ✓

6. Cronjob installieren

chmod +x setup-cronjob.sh
./setup-cronjob.sh

Der Cronjob läuft dann automatisch alle 4 Minuten.

Zeitplan

Der Cronjob läuft zu folgenden Zeiten:

  • 00:00, 00:04, 00:08, 00:12, ...
  • 01:00, 01:04, 01:08, 01:12, ...
  • etc.

Um ihn z.B. immer 1 Minute nach dem 5-Minuten-Schritt zu starten:

1,6,11,16,21,26,31,36,41,46,51,56 * * * * /pfad/zum/script

Logs überwachen

# Live-Logs anzeigen
tail -f upload.log

# Letzte Uploads anzeigen
tail -20 upload.log

iframe in bestehende Webseite einbauen

<iframe 
  src="https://ihre-domain.de/wetterstation/" 
  width="100%" 
  height="1200" 
  frameborder="0"
  style="border: none;">
</iframe>

Fehlerbehebung

Upload schlägt fehl

# SSH-Verbindung testen
ssh user@ihr-server.de

# rsync manuell testen
rsync -avz frontend/dist/ user@ihr-server.de:/var/www/html/wetterstation/

API nicht erreichbar

# API-Status prüfen
curl http://localhost:8000/health

Cronjob läuft nicht

# Cronjob-Log prüfen
tail -f upload.log

# Cronjobs anzeigen
crontab -l

# Script manuell ausführen
python generate-static.py

Cronjob entfernen

crontab -e
# Zeile mit generate-static.py löschen

Verzeichnisstruktur auf dem Server

Nach dem Upload sollte der Server folgende Struktur haben:

/var/www/html/wetterstation/
├── index.html          (mit eingebetteten Daten)
├── assets/
│   ├── index-xxx.js
│   └── index-xxx.css
└── ...