Web-basierte Anwendung zur Verwaltung und Durchfuehrung von Massen-Firmware-Updates auf Teltonika Routern.
- Excel-Import: Router-Listen aus Excel importieren (Geraetename, IP-Adresse, User, Passwort)
- Globale Credentials: Zentrale Zugangsdaten fuer alle Router ohne individuelle Credentials
- Firmware-Check: Automatische Pruefung des Firmware-Status aller Router via SSH
- Batch-Updates: Updates in konfigurierbaren Batches (5, 10, 25, 100 Router)
- 10 Minuten Pause: Automatische Wartezeit zwischen Batches zur Netzwerkstabilisierung
- SQLite-Datenbank: Persistente Speicherung aller Router und Update-Historie
- Fehler-Tracking: Dokumentation von Fehlern (nicht erreichbar, Update fehlgeschlagen, etc.)
- Update-Historie: Vollstaendige Protokollierung mit Firmware vorher/nachher und Zeitstempel
- Node.js 18+
- SSH-Zugang zu den Teltonika Routern (Port 22)
- Teltonika Router mit RutOS (getestet mit RUT955, RUT950, RUT240, etc.)
# Repository klonen
git clone [email protected]:iotstackcloud/teltonikaupdater.git
cd teltonikaupdater
# Dependencies installieren
npm install
# Development Server starten
npm run devDie Anwendung ist dann unter http://localhost:3000 erreichbar.
Unter Einstellungen koennen globale SSH-Zugangsdaten hinterlegt werden, die fuer alle Router ohne individuelle Credentials verwendet werden.
Excel-Datei mit folgender Struktur vorbereiten:
| Geraetename | IP-Adresse | User | Passwort |
|---|---|---|---|
| Router001 | 10.0.1.1 | ||
| Router002 | 10.0.1.2 | root | secret |
- Geraetename: Eindeutiger Name des Routers
- IP-Adresse: IP-Adresse des Routers
- User: Optional - SSH-Benutzername (Standard: globale Credentials)
- Passwort: Optional - SSH-Passwort (Standard: globale Credentials)
Mit "Alle pruefen" wird der aktuelle Firmware-Stand und verfuegbare Updates fuer alle Router ermittelt.
- Batch-Groesse waehlen (5, 10, 25 oder 100)
- "Updates starten" klicken
- Die Anwendung aktualisiert Router in Batches mit 10 Minuten Pause dazwischen
- Fortschritt wird live im Dashboard angezeigt
| Endpoint | Methode | Beschreibung |
|---|---|---|
/api/routers |
GET | Alle Router abrufen |
/api/routers |
DELETE | Alle Router loeschen |
/api/routers/check |
POST | Firmware-Status pruefen |
/api/import |
POST | Excel-Import |
/api/settings |
GET/POST | Globale Credentials |
/api/update |
GET/POST/DELETE | Batch-Updates verwalten |
/api/history |
GET | Update-Historie |
- Frontend: Next.js 16, React, Tailwind CSS
- Backend: Next.js API Routes
- Datenbank: SQLite (better-sqlite3)
- SSH: ssh2 Library
src/
├── app/
│ ├── api/
│ │ ├── import/route.ts # Excel-Import
│ │ ├── routers/
│ │ │ ├── route.ts # Router CRUD
│ │ │ └── check/route.ts # Firmware-Check
│ │ ├── settings/route.ts # Credentials
│ │ ├── update/route.ts # Batch-Updates
│ │ └── history/route.ts # Historie
│ └── page.tsx # Dashboard UI
└── lib/
├── db.ts # SQLite Schema & Queries
└── ssh-service.ts # SSH Kommunikation
id: UUIDdevice_name: Geraetenameip_address: IP-Adresseusername: SSH Userpassword: SSH Passwortcurrent_firmware: Aktuelle Firmwareavailable_firmware: Verfuegbare Firmwarestatus: unknown | up_to_date | update_available | updating | unreachable | errorlast_check: Letzter Check-Zeitpunkt
id: UUIDrouter_id: Referenz zum Routerfirmware_before: Firmware vor Updatefirmware_after: Firmware nach Updatestatus: running | success | failederror_message: Fehlermeldungstarted_at: Start-Zeitpunktcompleted_at: Ende-Zeitpunkt
MIT