README
This commit is contained in:
115
README.md
115
README.md
@@ -41,12 +41,125 @@ npm run dev
|
||||
|
||||
## 🔄 Wie funktioniert das System?
|
||||
|
||||
1. TALAS ruft die App mit URL auf: `http://10.10.0.13/talas5/MessagesMap/mapTypC.aspx?m=12&u=484`
|
||||
1. TALAS ruft die App mit URL auf: `http://<ip>/talas5/MessagesMap/mapTypC.aspx?m=12&u=484`
|
||||
2. Die App liest `m` und `u` aus der URL
|
||||
3. `MapComponent` lädt POIs, Linien, Rechte entsprechend
|
||||
4. API-Endpunkte kommunizieren lokal mit Datenbankserver (MySQL)
|
||||
5. Interaktive Bearbeitung (POI hinzufügen, verschieben, löschen) ist möglich
|
||||
|
||||
---
|
||||
|
||||
## 📦 Drittanbieter-Abhängigkeiten
|
||||
|
||||
| Paket / Bibliothek | Version | Zweck / Verwendung | Speicherort / Modul |
|
||||
| ------------------------------- | ----------------- | ---------------------------------------------- | ------------------------------------- |
|
||||
| `react` | ^18.3.1 | UI-Framework | `/components`, `/pages` |
|
||||
| `next` | ^14.2.5 | SSR, Routing, Build, API-Routen | Root |
|
||||
| `redux`, `@reduxjs/toolkit` | ^5.0.1, ^2.5.1 | Zustandverwaltung (statt Recoil) | `/redux/`, `store.js` |
|
||||
| `leaflet` | ^1.9.4 | Interaktive Kartenvisualisierung | `MapComponent.js`, Marker, Polylinien |
|
||||
| `leaflet-contextmenu` | ^1.4.0 | Kontextmenüs in Leaflet | Kontextmenü auf Karte |
|
||||
| `leaflet-control-geocoder` | ^3.1.0 | Geokoordinaten / Adresssuche | optionales Widget |
|
||||
| `tailwindcss` | ^3.4.7 | CSS-Utility-Framework | `styles/`, UI-Komponenten |
|
||||
| `react-toastify` | ^10.0.5 | Benachrichtigungen im UI | z. B. bei Fehlern |
|
||||
| `overlapping-marker-spiderfier` | ^0.2.7 | Marker-Darstellung bei Überlappung | `useCheckOverlappingMarkers` |
|
||||
| `mysql`, `mysql2` | ^2.18.1 / ^3.11.0 | MySQL-Kommunikation in API | `pages/api/`, `services/database/` |
|
||||
| `ws` | ^8.18.0 | WebSocket-Schnittstelle für Live-Daten | optional |
|
||||
| `http-proxy-middleware` | ^3.0.0 | API-Proxying für dev ↔ prod | `pages/api/[...path].js` |
|
||||
| `nssm.exe` | 2.24 | Windows-Service zur Ausführung von `npm start` | für Serverbetrieb |
|
||||
| `WebService TALAS` | intern | Datenquelle für GIS- und Geräteinformationen | `services/webservice/`, IIS-Aufruf |
|
||||
|
||||
→ vollständige Liste: siehe `package.json`
|
||||
|
||||
---
|
||||
|
||||
## 🧰 Erstinstallation auf Server (z. B. Windows IIS)
|
||||
|
||||
### Voraussetzungen
|
||||
|
||||
- Windows Server mit IIS
|
||||
- Node.js & npm installiert (z. B. v18–20)
|
||||
- MySQL (lokal oder erreichbar)
|
||||
- Port 3000 freigegeben (Firewall)
|
||||
- IIS-Datei `mapTypC.aspx` vorhanden
|
||||
|
||||
### Schritt-für-Schritt Anleitung
|
||||
|
||||
1. **Projekt lokal klonen und bauen:**
|
||||
|
||||
```bash
|
||||
git clone <repo-url>
|
||||
cd nodeMap
|
||||
npm install
|
||||
npm run build
|
||||
```
|
||||
|
||||
2. **ZIP-Paket vorbereiten (lokal):**
|
||||
|
||||
- `.next/`, `public/`, `node_modules/`
|
||||
- `.env.local`, `package.json`
|
||||
- optional: `nssm.exe`, `StartNodeApp.bat`, `Start-Dev.ps1`
|
||||
|
||||
3. **Auf Server kopieren nach:**
|
||||
|
||||
```
|
||||
C:\inetpub\wwwroot alas5
|
||||
odeMap
|
||||
```
|
||||
|
||||
4. **Kartenmaterial hinzufügen (optional):**
|
||||
|
||||
```
|
||||
C:\inetpub\wwwroot alas5\TileMap
|
||||
```
|
||||
|
||||
5. **Konfiguration `.env.local` anpassen:**
|
||||
|
||||
```env
|
||||
NEXT_PUBLIC_BASE_PATH=/talas5
|
||||
NEXT_PUBLIC_APP_VERSION=1.1.216
|
||||
NEXT_PUBLIC_API_PORT_MODE=prod
|
||||
```
|
||||
|
||||
6. **Optional: Dienst registrieren**
|
||||
|
||||
- Mit `nssm.exe` Windows-Dienst „nodeMapService“ erstellen
|
||||
- Ziel: `StartNodeApp.bat`
|
||||
|
||||
7. **Starten:**
|
||||
|
||||
```bash
|
||||
npm start
|
||||
```
|
||||
|
||||
oder Dienst starten
|
||||
|
||||
8. **Im Browser testen:**
|
||||
```
|
||||
http://<ip>/talas5/MessagesMap/mapTypC.aspx?m=12&u=484
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔁 Update-Richtlinien
|
||||
|
||||
| Art | Voraussetzung | Ersetzte Dateien | Bemerkung |
|
||||
| ------------------ | ---------------------------------- | ---------------------------------- | ---------------------------- |
|
||||
| **Kleines Update** | gleiche Hauptversion (z. B. 1.1.x) | `.next/`, `.env.local` | `node_modules` nicht nötig |
|
||||
| **Großes Update** | neue Hauptversion (z. B. 1.2.x) | alle Dateien (wie Neuinstallation) | Dienst ggf. neu registrieren |
|
||||
|
||||
### Empfohlener Ablauf für kleines Update:
|
||||
|
||||
1. `.next/` und `.env.local` vom neuen Build kopieren
|
||||
2. Dienst oder `npm start` neu starten
|
||||
3. Im Browser testen: `?m=...&u=...`
|
||||
|
||||
### Kompatibilitätsregel:
|
||||
|
||||
- Solange `1.1.x` bleibt, ist einfaches Update möglich
|
||||
- Ab `1.2.0` vollständige Neuinstallation empfohlen (z. B. bei neuen Verzeichnisstrukturen)
|
||||
|
||||
---
|
||||
|
||||
### 🔧 Konfigurierbarer Basispfad (basePath)
|
||||
|
||||
Standardmäßig wird angenommen, dass die Anwendung unter einem Unterverzeichnis wie `/talas5` läuft.
|
||||
|
||||
Reference in New Issue
Block a user