Update admin password in .env and adjust userlevel default in SQL initialization script

This commit is contained in:
jhartworks
2026-07-01 13:55:30 +02:00
parent 2b9ff12a9f
commit cceb12a9bd
3 changed files with 51 additions and 195 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
JWT_SECRET=change-me
ADMIN_USERNAME=admin
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=ChangeMe123!
ADMIN_PASSWORD=SE3112
ADMIN_NAME=System Admin
MARIADB_ROOT_PASSWORD=SE3112
DB_PASSWORD_FALLBACK=root
+48 -192
View File
@@ -1,4 +1,4 @@
# SE Local Trenddata
# SE Local Trenddata
SE Local Trenddata ist eine webbasierte Trend-, Dashboard- und Quellenverwaltung fuer lokale Anlagen- und WAGO-Daten. Das Projekt besteht aus einem React-Frontend, einer Node.js/Express-API, MariaDB, Redis und einem Collector-Service fuer Protokollquellen wie Modbus TCP, OPC UA, BACnet IP und KNX IP.
@@ -127,96 +127,75 @@ Wichtig: Die API laeuft im Container intern auf Port `8080`, wird aber nach auss
## Schnellstart mit Docker Compose
Du solltest WSL installiert haben.
Falls du das nicht hast:
```powershell
wsl --install Ubuntu
```
Dann kannst du Docker Desktop installieren:
https://docs.docker.com/desktop/setup/install/windows-install/
Die Installation einfach durchklicken und wenn du gefragt wirst ob du Hyper-V oder WSL verwenden möchtest, wähle WSL.
### 1. Repository vorbereiten
Wenn du git auf deinem rechner installiert hast, dann öffne eine Powershell in dem Ordner, in dem du das LTD-System haben willst.
(rechtsklick im Windowsexplorer ins leere --> "In Terminal öffnen")
```powershell
cd C:\Projects\SeLTD
copy .env.example .env
git clone https://git.portal.se-cloud.de/Hannes/SE-LTD
cd ./SeLTD
```
Powershell nicht schließen, brauchst du gleich noch.
Passe danach mindestens diese Werte an:
```env
JWT_SECRET=bitte-langen-zufaelligen-wert-setzen
ADMIN_USERNAME=admin
ADMIN_PASSWORD=ChangeMe123!
MARIADB_ROOT_PASSWORD=SE3112
CORS_ORIGIN=http://localhost:5173
VITE_API_PORT=18080
```
### 2. Stack bauen und starten
```powershell
docker compose up -d --build
```
Bei groesseren Aenderungen am Code oder wenn der Browser alten Code anzeigt:
Falls du Powershell geschlossen hast:
(rechtsklick im Windowsexplorer ins leere --> "In Terminal öffnen")
```powershell
docker compose down
docker compose build --no-cache web api collector
docker compose up -d
docker compose up -d --force-recreate
```
Die lokalen Images werden jetzt gebaut und die Onlineimages werden heruntrergeladen.
Wenn das fertig ist müssen alle 7 Container gestartet sein.
Im Nachgang kannst du dies in der Powershell mit...
```powershell
docker ps -a
```
...überprüfen
### 3. Aufrufen
Nun stehen dir mehrere Tools zur Verfügung:
| Anwendung | URL |
| --- | --- |
| Frontend | `http://localhost:5173` |
| API Healthcheck | `http://localhost:18080/api/health` |
| Collector Healthcheck | `http://localhost:18110/health` |
| Dockhand | `http://localhost:3000` |
| cAdvisor | `http://localhost:9090` |
Frontend | `http://localhost:5173`
--> Das ist die normale Weboberfläche zum anschauen, editieren und anpassen von Trends.
API Healthcheck | `http://localhost:18080/api/health`
--> hier kannst du schauen ob die API läuft
Collector Healthcheck | `http://localhost:18110/health`
--> hier kannst du schauen ob der Collector läuft, was nur wichtig ist, wenn du Datenpunkte per OPC,KNX, Modbus oder Bacnet angebunden hast.
Dockhand | `http://localhost:3000`
--> Dockhand ist Container verwaltungstool, dass es dir ermöglicht, auch grafisch den Zustand deiner Container und deines Stacks zu sehen.
Der Vorteil hier, im Gegensatz zur normalen Docker Desktopoberfläche: Du kannst es auf jedem beliebigen anderen Rechner, der auf dein Netzwerk zugriff hat, öffnen.
cAdvisor | `http://localhost:9090`
--> Cadvisor stellt alle Containerdaten für Monitoring und Analyticprogramme bereit.
So kann bei einer größeren Anlage, das Dockersystem mitr Prometheus oder ähnlichem überwacht werden.
Cadvisor stellt di Daten per html bereit, kannst du dir gern anschauen, ist aber ziemlich unübersichtlich.
### 4. Standard-Login
```text
Username: admin
Passwort: ChangeMe123!
Passwort: SE3112
```
Das Passwort sollte nach dem ersten Login geaendert werden.
---
## Lokale Entwicklung
### Frontend lokal starten
```powershell
cd C:\Projects\SeLTD\web
npm install
npm run dev
```
Das Frontend laeuft dann auf:
```text
http://localhost:5173
```
### API lokal starten
```powershell
cd C:\Projects\SeLTD\api
npm install
npm run dev
```
Die API liest ihre Konfiguration aus `.env`. Wenn du die API lokal ohne Docker laufen laesst, muss `DB_HOST` auf den erreichbaren MariaDB-Host zeigen.
### Collector lokal starten
```powershell
cd C:\Projects\SeLTD\collector
npm install
npm start
```
Der Collector braucht Zugriff auf MariaDB und schreibt seine lokale Konfiguration in `collector/data/sources.json`.
---
## Konfiguration
@@ -231,25 +210,12 @@ Die wichtigsten Variablen liegen in `.env`.
| `ADMIN_NAME` | `System Admin` | Anzeigename des Admins |
| `MARIADB_ROOT_PASSWORD` | `SE3112` | MariaDB-Root-Passwort |
| `DB_PASSWORD_FALLBACK` | `root` | Fallback fuer alte Entwicklungsvolumes |
| `CORS_ORIGIN` | `http://localhost:5173` | Erlaubter Browser-Ursprung fuer API-Aufrufe |
| `CORS_ORIGIN` | `*` | Erlaubter Browser-Ursprung fuer API-Aufrufe |
| `VITE_API_PORT` | `18080` | API-Port, den das Frontend im Browser nutzt |
| `POLL_TICK_MS` | `1000` | Collector-Tick fuer Polling-Pruefung |
### CORS
Wenn das Frontend lokal auf `http://localhost:5173` laeuft, muss in der API stehen:
```env
CORS_ORIGIN=http://localhost:5173
```
Bei mehreren erlaubten Origins kann eine kommaseparierte Liste genutzt werden:
```env
CORS_ORIGIN=http://localhost:5173,https://trend.example.local
```
---
## Login, Benutzer und Rollen
@@ -479,32 +445,7 @@ Redis sollte deshalb ebenfalls gebackupt werden, nicht nur MariaDB.
---
## WAGO- oder SD-Karten-Betrieb
Fuer Systeme, bei denen persistente Daten auf SD-Karte liegen sollen, gibt es ein Override:
```powershell
docker compose -f docker-compose.yml -f docker-compose.wago.yml up -d --build
```
Dabei werden grosse Daten nach `/media/sd/seltd/...` gelegt:
```text
/media/sd/seltd/mariadb
/media/sd/seltd/redis
/media/sd/seltd/collector
/media/sd/seltd/dockhand
```
Vorher sicherstellen:
```bash
mkdir -p /media/sd/seltd/mariadb /media/sd/seltd/redis /media/sd/seltd/collector /media/sd/seltd/dockhand
```
---
## Backup und Restore
### MariaDB Backup
@@ -534,22 +475,6 @@ docker run --rm -v seltd_collector_data:/data -v ${PWD}:/backup alpine tar czf /
---
## Deployment-Hinweise
### Nach Code-Aenderungen
Wenn Frontend oder API geaendert wurden:
```powershell
docker compose build --no-cache web api collector
docker compose up -d
```
Wenn nur `.env` geaendert wurde:
```powershell
docker compose up -d
```
### Browsercache
@@ -559,7 +484,6 @@ Bei alten JavaScript-Fehlern nach einem Fix:
Strg + F5
```
oder Vite/Docker neu bauen.
### Nginx Proxy Manager
@@ -598,7 +522,7 @@ curl http://localhost:18080/api/health
Wenn Frontend lokal auf `localhost:5173` laeuft:
```env
CORS_ORIGIN=http://localhost:5173
CORS_ORIGIN=*
```
Danach API neu starten:
@@ -619,45 +543,6 @@ docker compose up -d
Danach im Browser `Strg + F5`.
### Fehler: `ReferenceError: editingCollectorPointId is not defined`
In `web/src/App.jsx` muss folgender State vorhanden sein:
```jsx
const [editingCollectorPointId, setEditingCollectorPointId] = useState("");
```
Wenn die Zeile vorhanden ist, der Fehler aber weiterhin erscheint, laeuft noch altes Build-/Container-Material.
### Fehler: `SyntaxError: missing ) after argument list` in `isp.js`
Bei SQL-Template-Strings muessen Backticks im String escaped werden:
```js
missing.push(`ADD COLUMN \`${columnName}\` TEXT NULL`);
```
### Fehler: `Rollup failed to resolve import "jspdf"`
Abhaengigkeiten im Frontend installieren:
```powershell
cd web
npm install jspdf xlsx recharts
```
Bei Docker danach neu bauen.
### Source-Map-Warnungen im Browser
Warnungen wie diese sind in der Regel nicht kritisch:
```text
Source map error: JSON.parse: unexpected character...
```
Sie kommen oft aus Devtools/React-Devtools oder externen Source-Maps und koennen ignoriert werden, solange keine roten Laufzeitfehler auftreten.
### MariaDB Login oder DB-Verbindung fehlgeschlagen
Logs ansehen:
@@ -750,7 +635,6 @@ Vor produktiver Nutzung:
- [ ] `JWT_SECRET` auf langen zufaelligen Wert setzen
- [ ] Admin-Passwort aendern
- [ ] MariaDB-Root-Passwort aendern
- [ ] `CORS_ORIGIN` nicht auf `*` lassen, sondern feste Domain setzen
- [ ] MariaDB-Port `3306` nicht ungeschuetzt ins Internet veroeffentlichen
- [ ] Redis-Port `6379` nicht ungeschuetzt ins Internet veroeffentlichen
- [ ] Dockhand absichern oder nur intern bereitstellen
@@ -768,31 +652,3 @@ Vor produktiver Nutzung:
- Fuer vollstaendige Protokollintegration muessen je nach Feldbus noch Details wie Adressierung, Datentyp, Byteorder und Authentifizierung sauber projektspezifisch gepflegt werden.
---
## Kurzfassung fuer Betrieb
```powershell
cd C:\Projects\SeLTD
copy .env.example .env
notepad .env
docker compose up -d --build
```
Dann aufrufen:
```text
http://localhost:5173
```
Login:
```text
admin / ChangeMe123!
```
Bei Code-Aenderungen:
```powershell
docker compose build --no-cache web api collector
docker compose up -d
```
+2 -2
View File
@@ -22,7 +22,7 @@ BEGIN
'` (',
'`id` INT(11) NOT NULL AUTO_INCREMENT,',
'`datum` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,',
'`userlevel` INT(1) NOT NULL',
'`userlevel` INT(1) DEFAULT NULL',
value_columns,
', PRIMARY KEY (`id`)',
') ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;'
@@ -64,5 +64,5 @@ FLUSH PRIVILEGES;
CREATE USER IF NOT EXISTS 'wago'@'%' IDENTIFIED BY '3112';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX ON `wago`.* TO 'wago'@'%';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX ON * . * TO 'wago'@'%' IDENTIFIED BY '3112';
FLUSH PRIVILEGES;