1212
GitHub - FoxXxHater/eccm-server: Ethernet Cable Connection Manager Server Β· GitHub
Skip to content

FoxXxHater/eccm-server

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

60 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ”Œ ECCM – Ethernet Cable Connection Manager

ECCM ist ein webbasiertes Tool zur Dokumentation und Verwaltung physischer Netzwerkverkabelungen. Es bildet Switches, Patchfelder und andere NetzwerkgerΓ€te mit ihren Ports visuell ab und ermΓΆglicht die Verwaltung von Verbindungen, VLANs, Port-Konfigurationen und mehr.

πŸ‡¬πŸ‡§ English version below


✨ Features

GerΓ€te & Ports

  • GerΓ€te (Switches, Patchfelder etc.) mit frei wΓ€hlbarer Portanzahl anlegen
  • Individuelle GerΓ€tefarben zur visuellen Unterscheidung
  • Flexible Port-Layouts: Einreihig, zweireihig, Dual-Link-Modus
  • Konfigurierbare Port-Nummerierung (Linksβ†’Rechts, Oben↓Unten, Unten↑Oben)
  • Port-Aliase und benutzerdefinierte Port-Namen

Verbindungen

  • Zwei freie Ports anklicken um eine Verbindung zu erstellen
  • Verbindungstabelle mit Suchfunktion
  • Klick auf eine Verbindung hebt beide Enden visuell hervor
  • Automatische Peer-Erkennung und -Anzeige

VLAN-Management

  • VLANs pro Profil definieren (ID 1–4094, Name, Farbe)
  • Mehrere VLANs gleichzeitig einem Port zuweisen (Multi-Select)
  • Farbige VLAN-Indikatoren direkt auf den Ports
  • VLAN-Synchronisation: Zuweisung auf einer Seite wird automatisch auf die Gegenseite ΓΌbertragen
  • VLANs werden in der Verbindungstabelle angezeigt

Port-Konfiguration (Rechtsklick-MenΓΌ)

  • Linkgeschwindigkeit (100 Mbit – 100 Gbit)
  • Individuelle Port-Farben mit Sync zur Gegenseite
  • Notizen (bis 150 Zeichen)
  • VLAN-Zuweisung per Checkbox
  • β€žVerbunden mit"-Feld (manuell ΓΌberschreibbar)
  • Reservierte Ports (z. B. WAN, Management)

Hover-Tooltip

  • VollstΓ€ndige Port-Informationen beim Überfahren jedes Ports
  • Zeigt: Port, Alias, Peer, Status, Speed, VLANs, Notiz

Benutzerverwaltung & Berechtigungen

  • Login-System mit bcrypt-Passwort-Hashung
  • Rollen: Admin und Benutzer
  • Granulare Berechtigungen pro Profil und Benutzer:
    • Ansehen, Patchen, Patch hinzufΓΌgen, GerΓ€t bearbeiten, GerΓ€t hinzufΓΌgen, LΓΆschen, Verwalten, Export, Backup
  • Profil-Sharing zwischen Benutzern
  • Passwort-ZurΓΌcksetzung per E-Mail

Profile

  • Unbegrenzte Profile pro Benutzer
  • Erstellen, Umbenennen, Duplizieren, LΓΆschen
  • Export einzelner Profile als JSON
  • Profil-EigentΓΌmer mit vollstΓ€ndigen Rechten

Admin-Panel

  • Benutzerverwaltung (CRUD)
  • SMTP / E-Mail-Konfiguration
  • E-Mail-Vorlagen-Editor mit Platzhaltern
  • Datenbank-Konfiguration und -Test
  • Backup aller Profile und Wiederherstellung
  • Profil-Import aus JSON-Dateien
  • Allgemeine Einstellungen (App-Name, Standard-Sprache)

Internationalisierung (i18n)

  • VollstΓ€ndig ΓΌbersetzt: Deutsch und Englisch
  • Globale Standard-Sprache konfigurierbar
  • Pro-Benutzer Spracheinstellung
  • Alle UI-Elemente, Tooltips, Fehlermeldungen und Admin-Bereiche ΓΌbersetzt

E-Mail-Benachrichtigungen

  • Benachrichtigungen bei Profil-Γ„nderungen (GerΓ€te, Verbindungen)
  • Abonnierbare Benachrichtigungen pro Profil
  • Anpassbare E-Mail-Vorlagen

Themes

  • Dark Theme (Standard)
  • Light Theme
  • Per-Benutzer Einstellung

πŸ“‹ Voraussetzungen

  • PHP 7.4+ (empfohlen: PHP 8.x)
  • MySQL 5.7+ oder MariaDB 10.3+
  • Apache mit mod_rewrite (oder nginx)
  • PHP-Erweiterungen: pdo, pdo_mysql, mbstring

πŸš€ Installation

  1. Dateien auf den Webserver kopieren (z. B. nach /var/www/html/eccm/)
  2. install.php im Browser aufrufen: http://dein-server/eccm/install.php
  3. Datenbank-Verbindung und Admin-Konto konfigurieren β†’ β€žInstallieren" klicken
  4. install.php lΓΆschen (Sicherheitsempfehlung!)
  5. Einloggen: http://dein-server/eccm/

πŸ’‘ Bei der Installation wird das Admin-Konto direkt konfiguriert – es gibt keinen festen Standard-Login.


πŸ–±οΈ Bedienung

Aktion Beschreibung
Klick auf freien Port Port auswΓ€hlen (zweiten Port klicken zum Verbinden)
Rechtsklick auf Port Port-Einstellungen ΓΆffnen (Speed, VLANs, Farbe, Notiz)
Alt+Klick auf Port Alias vergeben
Strg+Klick auf Port Als reserviert markieren
Hover ΓΌber Port Tooltip mit allen Port-Informationen
Klick auf Verbindungszeile Beide Enden hervorheben

πŸ“ Dateistruktur

eccm/
β”œβ”€β”€ index.php                # Hauptanwendung
β”œβ”€β”€ login.php                # Login-Seite
β”œβ”€β”€ logout.php               # Logout
β”œβ”€β”€ forgot_password.php      # Passwort vergessen
β”œβ”€β”€ reset_password.php       # Passwort zurΓΌcksetzen (Token)
β”œβ”€β”€ admin.php                # Admin-Panel
β”œβ”€β”€ install.php              # Installer (nach Setup lΓΆschen!)
β”œβ”€β”€ .htaccess                # Apache-Sicherheitsregeln
β”œβ”€β”€ database.sql             # SQL-Schema (Referenz)
β”œβ”€β”€ api/
β”‚   β”œβ”€β”€ profiles.php         # AJAX: Profile, VLANs, Berechtigungen
β”‚   β”œβ”€β”€ admin.php            # AJAX: Benutzer, SMTP, Templates
β”‚   └── notifications.php    # AJAX: E-Mail-Benachrichtigungen
β”œβ”€β”€ includes/
β”‚   β”œβ”€β”€ config.php           # Standard-Konfiguration
β”‚   β”œβ”€β”€ config.local.php     # Lokale Konfiguration (auto-generiert)
β”‚   β”œβ”€β”€ db.php               # PDO-Datenbankverbindung
β”‚   β”œβ”€β”€ auth.php             # Authentifizierung & Session
β”‚   β”œβ”€β”€ i18n.php             # Übersetzungen (DE/EN)
β”‚   β”œβ”€β”€ mailer.php           # SMTP-Mailer
β”‚   └── notifications.php    # Benachrichtigungs-Logik
└── assets/
    └── eccm-core.js         # ECCM Rendering-Engine

πŸ”§ Konfiguration

SMTP (E-Mail-Versand)

Im Admin-Panel unter E-Mail / SMTP konfigurierbar. UnterstΓΌtzt:

  • PHP mail() (Standard, kein SMTP nΓΆtig)
  • SMTP mit TLS/SSL (z. B. Gmail, Office 365, eigener Mailserver)

Datenbank

Im Admin-Panel unter Datenbank konfigurierbar. Γ„nderungen werden in includes/config.local.php gespeichert.


πŸ”’ Sicherheit

  • PasswΓΆrter werden mit bcrypt gehasht
  • CSRF-Schutz auf allen Formularen
  • Session-basierte Authentifizierung (7 Tage Lifetime)
  • Automatischer Redirect zum Login bei abgelaufener Session
  • .htaccess schΓΌtzt sensible Dateien und Verzeichnisse
  • Prepared Statements gegen SQL-Injection

πŸ“Έ Screenshots

Kommt bald


πŸ“„ Lizenz

MIT License – siehe LICENSE



πŸ”Œ ECCM – Ethernet Cable Connection Manager

ECCM is a web-based tool for documenting and managing physical network cabling. It visually represents switches, patch panels, and other network devices with their ports, enabling management of connections, VLANs, port configurations, and more.


✨ Features

Devices & Ports

  • Create devices (switches, patch panels, etc.) with any number of ports
  • Individual device colors for visual distinction
  • Flexible port layouts: single-row, dual-row, dual-link mode
  • Configurable port numbering (Leftβ†’Right, Top↓Bottom, Bottom↑Top)
  • Port aliases and custom port names

Connections

  • Click two free ports to create a connection
  • Connection table with search functionality
  • Click a connection to visually highlight both ends
  • Automatic peer detection and display

VLAN Management

  • Define VLANs per profile (ID 1–4094, name, color)
  • Assign multiple VLANs to a port simultaneously (multi-select)
  • Colored VLAN indicators directly on ports
  • VLAN sync: assignment on one side is automatically mirrored to the peer
  • VLANs displayed in the connection table

Port Configuration (Right-Click Menu)

  • Link speed (100 Mbit – 100 Gbit)
  • Individual port colors with peer-side sync
  • Notes (up to 150 characters)
  • VLAN assignment via checkboxes
  • "Linked to" field (manually overridable)
  • Reserved ports (e.g. WAN, Management)

Hover Tooltip

  • Full port information on hover over any port
  • Shows: Port, Alias, Peer, Status, Speed, VLANs, Note

User Management & Permissions

  • Login system with bcrypt password hashing
  • Roles: Admin and User
  • Granular per-profile, per-user permissions:
    • View, Patch, Add Patch, Edit Device, Add Device, Delete, Manage, Export, Backup
  • Profile sharing between users
  • Password reset via email

Profiles

  • Unlimited profiles per user
  • Create, rename, duplicate, delete
  • Export individual profiles as JSON
  • Profile owner with full permissions

Admin Panel

  • User management (CRUD)
  • SMTP / email configuration
  • Email template editor with placeholders
  • Database configuration and testing
  • Backup all profiles and restore
  • Profile import from JSON files
  • General settings (app name, default language)

Internationalization (i18n)

  • Fully translated: German and English
  • Global default language configurable
  • Per-user language preference
  • All UI elements, tooltips, error messages, and admin areas translated

Email Notifications

  • Notifications on profile changes (devices, connections)
  • Subscribable notifications per profile
  • Customizable email templates

Themes

  • Dark theme (default)
  • Light theme
  • Per-user preference

πŸ“‹ Requirements

  • PHP 7.4+ (recommended: PHP 8.x)
  • MySQL 5.7+ or MariaDB 10.3+
  • Apache with mod_rewrite (or nginx)
  • PHP extensions: pdo, pdo_mysql, mbstring

πŸš€ Installation

  1. Copy files to your web server (e.g. /var/www/html/eccm/)
  2. Open install.php in your browser: http://your-server/eccm/install.php
  3. Configure database connection and admin account β†’ click "Install"
  4. Delete install.php (security recommendation!)
  5. Log in: http://your-server/eccm/

πŸ’‘ The admin account is configured during installation – there is no fixed default login.


πŸ–±οΈ Usage

Action Description
Click on free port Select port (click second port to connect)
Right-click on port Open port settings (speed, VLANs, color, note)
Alt+Click on port Set alias
Ctrl+Click on port Mark as reserved
Hover over port Tooltip with full port information
Click on connection row Highlight both ends

πŸ“ File Structure

eccm/
β”œβ”€β”€ index.php                # Main application
β”œβ”€β”€ login.php                # Login page
β”œβ”€β”€ logout.php               # Logout
β”œβ”€β”€ forgot_password.php      # Forgot password
β”œβ”€β”€ reset_password.php       # Reset password (token-based)
β”œβ”€β”€ admin.php                # Admin panel
β”œβ”€β”€ install.php              # Installer (delete after setup!)
β”œβ”€β”€ .htaccess                # Apache security rules
β”œβ”€β”€ database.sql             # SQL schema (reference)
β”œβ”€β”€ api/
β”‚   β”œβ”€β”€ profiles.php         # AJAX: Profiles, VLANs, permissions
β”‚   β”œβ”€β”€ admin.php            # AJAX: Users, SMTP, templates
β”‚   └── notifications.php    # AJAX: Email notifications
β”œβ”€β”€ includes/
β”‚   β”œβ”€β”€ config.php           # Default configuration
β”‚   β”œβ”€β”€ config.local.php     # Local config (auto-generated)
β”‚   β”œβ”€β”€ db.php               # PDO database connection
β”‚   β”œβ”€β”€ auth.php             # Authentication & sessions
β”‚   β”œβ”€β”€ i18n.php             # Translations (DE/EN)
β”‚   β”œβ”€β”€ mailer.php           # SMTP mailer
β”‚   └── notifications.php    # Notification logic
└── assets/
    └── eccm-core.js         # ECCM rendering engine

πŸ”§ Configuration

SMTP (Email)

Configurable in the admin panel under Email / SMTP. Supports:

  • PHP mail() (default, no SMTP required)
  • SMTP with TLS/SSL (e.g. Gmail, Office 365, self-hosted)

Database

Configurable in the admin panel under Database. Changes are saved to includes/config.local.php.


πŸ”’ Security

  • Passwords hashed with bcrypt
  • CSRF protection on all forms
  • Session-based authentication (7-day lifetime)
  • Automatic redirect to login on expired sessions
  • .htaccess protects sensitive files and directories
  • Prepared statements against SQL injection

πŸ“Έ Screenshots

Coming soon


πŸ“„ License

MIT License – see LICENSE

P.S.: Edited with claude

About

Ethernet Cable Connection Manager Server

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages

  • PHP 73.8%
  • JavaScript 26.2%