docs: rewrite README in English with standard structure
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,92 +1,95 @@
|
|||||||
# MRB NetBox Topology Views
|
# MRB NetBox Topology Views
|
||||||
|
|
||||||
Ein angepasster Fork von **NetBox Topology Views** mit erweiterten Rack-Ansichten,
|
A customised fork of **NetBox Topology Views** with extended rack views,
|
||||||
interaktiver Kabelverfolgung und zusätzlichen Netzwerk-Icons.
|
interactive cable tracing and additional network icons.
|
||||||
|
|
||||||
Das Plugin erzeugt Topologien aus den in NetBox gepflegten Geräten, Ports und
|
The plugin builds topologies from the devices, ports and cables maintained in
|
||||||
Kabeln. Neben der klassischen Topologie bietet dieser Fork eine vollständige
|
NetBox. In addition to the classic topology, this fork provides a complete view
|
||||||
Darstellung einzelner oder mehrerer Racks einschließlich Vorderseite,
|
of one or more racks including front, rear and cabling.
|
||||||
Rückseite und Verkabelung.
|
|
||||||
|
|
||||||
## Vorteile dieses Forks
|
| | |
|
||||||
|
|---|---|
|
||||||
|
| **Plugin name** | `netbox_topology_views` |
|
||||||
|
| **Package** | `netbox-topology-views` |
|
||||||
|
| **NetBox** | `4.7.x` |
|
||||||
|
| **Python** | see `setup.py` |
|
||||||
|
| **Repository** | <https://git.mrblake.cc/MrBlake/mrb-netbox-topology-views> |
|
||||||
|
|
||||||
- Ein oder mehrere Racks gemeinsam anzeigen
|
## Features
|
||||||
- Geräte positionsgenau anhand ihrer Höheneinheiten darstellen
|
|
||||||
- Vorder- und Rückseite eines Racks getrennt betrachten
|
|
||||||
- Auf- und absteigende HE-Nummerierung sowie individuelle Start-HE automatisch berücksichtigen
|
|
||||||
- Rackübergreifende und externe Kabelverbindungen erkennen
|
|
||||||
- Geräte in der Kabeltopologie frei verschieben
|
|
||||||
- Geräte in der Kabeltopologie innerhalb jedes Racks nach ihrer Rackposition sortieren
|
|
||||||
- Kabeltopologie in den Browser-Vollbildmodus schalten
|
|
||||||
- Kabeltopologie zwischen 50 und 200 Prozent zoomen und im Vollbild scrollen
|
|
||||||
- Geräte in der Kabeltopologie mit rund 5 mm Abstand darstellen
|
|
||||||
- P2P-WirelessLinks und Multi-Access-WLANs als violette, gestrichelte Funkstrecken darstellen
|
|
||||||
- Funk-/WLAN-Verbindungen und Stromkabel in der Kabeltopologie der Rack-Ansicht optional ein-/ausblenden, farblich abgesetzt von Netzwerkkabeln (violett gestrichelt bzw. orange gepunktet)
|
|
||||||
- Manuelle Positionen pro Rack-Auswahl im Browser speichern
|
|
||||||
- Verbindungen eines Geräts beim Hover weiß hervorheben
|
|
||||||
- Alle verbundenen Ports und Gegenstellen eines Geräts anzeigen
|
|
||||||
- Schnittstellen eines Kabels beim Hover anzeigen
|
|
||||||
- Geräte und Kabel direkt aus der Topologie in NetBox öffnen
|
|
||||||
- Einzelne Racks, alle Racks oder die Kabeltopologie als SVG, PNG und draw.io exportieren
|
|
||||||
- Exporte grundsätzlich mit transparentem Hintergrund erzeugen
|
|
||||||
- Farben von Rackansicht und Export an den aktiven Light- oder Dark-Mode anpassen
|
|
||||||
- Topologie als PNG oder diagrams.net/draw.io-XML exportieren
|
|
||||||
- Zusätzliche Icons für Network-, Leaf-, Spine- und Aggregation-Switche
|
|
||||||
- Unterstützung für helle und dunkle NetBox-Themes
|
|
||||||
|
|
||||||
## Änderungen gegenüber dem Original
|
- Show one or more racks together
|
||||||
|
- Render devices at their exact rack unit position
|
||||||
|
- View front and rear of a rack separately
|
||||||
|
- Ascending/descending U numbering and custom starting unit are respected automatically
|
||||||
|
- Detect cross-rack and external cable connections
|
||||||
|
- Freely move devices in the cable topology
|
||||||
|
- Sort devices in the cable topology by rack position within each rack
|
||||||
|
- Browser full-screen mode for the cable topology
|
||||||
|
- Zoom the cable topology between 50 and 200 % and scroll in full-screen
|
||||||
|
- Render P2P wireless links and multi-access WLANs as purple dashed radio links
|
||||||
|
- Optionally show/hide wireless links and power cables in the rack view's cable topology, visually distinct from network cables (purple dashed / orange dotted)
|
||||||
|
- Store manual positions per rack selection in the browser
|
||||||
|
- Highlight a device's connections in white on hover
|
||||||
|
- Show all connected ports and peers of a device
|
||||||
|
- Show a cable's terminations on hover
|
||||||
|
- Open devices and cables in NetBox directly from the topology
|
||||||
|
- Export single racks, all racks or the cable topology as SVG, PNG and draw.io — always with transparent background
|
||||||
|
- Colours of rack view and export follow the active light or dark mode
|
||||||
|
- Additional icons for network, leaf, spine and aggregation switches
|
||||||
|
|
||||||
Dieser Fork ergänzt insbesondere:
|
### Changes compared to the original
|
||||||
|
|
||||||
1. Die neue Menükategorie **Weitere Ansichten**.
|
1. New menu category **More views**.
|
||||||
2. Eine Rack-Ansicht mit Filtern für Site, Location und mehrere Racks.
|
2. A rack view with filters for site, location and multiple racks.
|
||||||
3. Positionsgenaue Rack-Elevations für Vorder- und Rückseite.
|
3. Position-accurate rack elevations for front and rear.
|
||||||
4. Eine Kabeltabelle mit A- und B-Terminierungen.
|
4. A cable table with A and B terminations.
|
||||||
5. Eine interaktive, verschiebbare Kabeltopologie unter den Racks.
|
5. An interactive, movable cable topology below the racks.
|
||||||
6. Hover-Hervorhebung und Port-zu-Port-Verfolgung für Geräte und Kabel.
|
6. Hover highlighting and port-to-port tracing for devices and cables.
|
||||||
7. Lokal gespeicherte Gerätepositionen und eine Funktion zum Zurücksetzen.
|
7. Locally stored device positions and a reset function.
|
||||||
8. Ein erweitertes, skalierbares SVG-Iconset für Switch-Rollen.
|
8. An extended, scalable SVG icon set for switch roles.
|
||||||
9. Transparente SVG-, PNG- und draw.io-Exporte für Rack- und Topologieansichten.
|
9. Transparent SVG, PNG and draw.io exports for rack and topology views.
|
||||||
10. Anpassungen für die Verwendung mit NetBox 4.6, darunter die geänderte
|
10. Adjustments for NetBox 4.6+, including the changed `Rack.units` property.
|
||||||
`Rack.units`-Property.
|
|
||||||
|
|
||||||
## Vorschau
|
|
||||||
|
|
||||||
Die klassische Topologieansicht stammt aus dem ursprünglichen Plugin:
|
|
||||||
|
|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
## Installation aus Gitea
|
## Compatibility
|
||||||
|
|
||||||
Das Plugin kann direkt aus dem `develop`-Branch installiert werden:
|
- NetBox `4.7.x` (`min_version`/`max_version` in `netbox_topology_views/__init__.py`)
|
||||||
|
- Based on NetBox Topology Views `4.5.1`
|
||||||
|
|
||||||
|
Since the upstream release officially targets NetBox 4.5.x, test updates to
|
||||||
|
newer NetBox versions in a staging instance first.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
All paths assume a standard installation under `/opt/netbox`.
|
||||||
|
|
||||||
|
### 1. Install the package
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
/opt/netbox/venv/bin/pip install --upgrade --force-reinstall \
|
/opt/netbox/venv/bin/pip install --upgrade --force-reinstall \
|
||||||
"git+https://git.mrblake.cc/MrBlake/mrb-netbox-topology-views.git@develop"
|
"git+https://git.mrblake.cc/MrBlake/mrb-netbox-topology-views.git@develop"
|
||||||
```
|
```
|
||||||
|
|
||||||
Für eine reproduzierbare Produktivinstallation sollte statt `develop` ein
|
For reproducible production installs, replace `develop` with a release tag or a
|
||||||
Release-Tag oder ein bestimmter Commit verwendet werden:
|
full commit ID.
|
||||||
|
|
||||||
|
### 2. Add the plugin to `local_requirements.txt`
|
||||||
|
|
||||||
|
This makes `upgrade.sh` reinstall the plugin automatically on every NetBox upgrade:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
/opt/netbox/venv/bin/pip install --upgrade --force-reinstall \
|
grep -qxF "git+https://git.mrblake.cc/MrBlake/mrb-netbox-topology-views.git@develop" /opt/netbox/local_requirements.txt \
|
||||||
"git+https://git.mrblake.cc/MrBlake/mrb-netbox-topology-views.git@v4.5.1-mrb.1"
|
|| echo "git+https://git.mrblake.cc/MrBlake/mrb-netbox-topology-views.git@develop" | sudo tee -a /opt/netbox/local_requirements.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
Für automatische Neuinstallationen bei einem NetBox-Upgrade wird derselbe
|
If the repository is private, the NetBox server needs a read-only deploy token
|
||||||
Eintrag in `/opt/netbox/local_requirements.txt` hinterlegt:
|
or an SSH key. Do not store credentials in `local_requirements.txt`.
|
||||||
|
|
||||||
```text
|
### 3. Enable the plugin
|
||||||
git+https://git.mrblake.cc/MrBlake/mrb-netbox-topology-views.git@develop
|
|
||||||
```
|
|
||||||
|
|
||||||
Bei einem privaten Gitea-Repository muss der NetBox-Server Zugriff über einen
|
In `/opt/netbox/netbox/netbox/configuration.py`:
|
||||||
Deploy-Token oder SSH-Key erhalten.
|
|
||||||
|
|
||||||
## NetBox-Konfiguration
|
|
||||||
|
|
||||||
In `netbox/configuration.py` wird das Python-Paket aktiviert:
|
|
||||||
|
|
||||||
```python
|
```python
|
||||||
PLUGINS = [
|
PLUGINS = [
|
||||||
@@ -102,135 +105,126 @@ PLUGINS_CONFIG = {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Danach werden Migrationen und statische Dateien verarbeitet:
|
If other plugins are already configured, add `netbox_topology_views` to the
|
||||||
|
existing list and dictionary instead of replacing them.
|
||||||
|
|
||||||
|
### 4. Apply migrations, collect static files, restart
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /opt/netbox/netbox
|
cd /opt/netbox/netbox
|
||||||
/opt/netbox/venv/bin/python manage.py migrate
|
/opt/netbox/venv/bin/python manage.py migrate netbox_topology_views
|
||||||
/opt/netbox/venv/bin/python manage.py collectstatic --no-input
|
/opt/netbox/venv/bin/python manage.py collectstatic --no-input
|
||||||
sudo systemctl restart netbox netbox-rq
|
sudo systemctl restart netbox netbox-rq
|
||||||
```
|
```
|
||||||
|
|
||||||
Nach Änderungen an CSS oder Icons kann ein Hard-Reload des Browsers mit
|
After changes to CSS or icons a hard reload in the browser (`Ctrl+F5`) may be
|
||||||
`Strg+F5` erforderlich sein.
|
necessary.
|
||||||
|
|
||||||
## Aktualisierung
|
## Update
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
/opt/netbox/venv/bin/pip install --upgrade --force-reinstall \
|
/opt/netbox/venv/bin/pip install --upgrade --force-reinstall \
|
||||||
"git+https://git.mrblake.cc/MrBlake/mrb-netbox-topology-views.git@develop"
|
"git+https://git.mrblake.cc/MrBlake/mrb-netbox-topology-views.git@develop"
|
||||||
|
|
||||||
cd /opt/netbox/netbox
|
cd /opt/netbox/netbox
|
||||||
/opt/netbox/venv/bin/python manage.py migrate
|
/opt/netbox/venv/bin/python manage.py migrate netbox_topology_views
|
||||||
/opt/netbox/venv/bin/python manage.py collectstatic --no-input
|
/opt/netbox/venv/bin/python manage.py collectstatic --no-input
|
||||||
sudo systemctl restart netbox netbox-rq
|
sudo systemctl restart netbox netbox-rq
|
||||||
```
|
```
|
||||||
|
|
||||||
`--force-reinstall` ist derzeit sinnvoll, da der Fork intern noch die
|
`--force-reinstall` is required because the fork still uses the internal
|
||||||
Paketversion `4.5.2` verwendet.
|
package version `4.5.2`.
|
||||||
|
|
||||||
## Verwendung
|
When NetBox itself is upgraded, `upgrade.sh` reinstalls the plugin from
|
||||||
|
`local_requirements.txt` and runs migrations and `collectstatic`:
|
||||||
|
|
||||||
### Klassische Topologie
|
```bash
|
||||||
|
sudo /opt/netbox/upgrade.sh
|
||||||
|
sudo systemctl restart netbox netbox-rq
|
||||||
|
```
|
||||||
|
|
||||||
Unter **Plugins → Topology Views → Topology** steht die ursprüngliche,
|
## Uninstall
|
||||||
filterbare Topologieansicht zur Verfügung. Sie unterstützt unter anderem:
|
|
||||||
|
|
||||||
- physische Kabel
|
1. Remove `"netbox_topology_views"` from `PLUGINS` and `PLUGINS_CONFIG`.
|
||||||
- logische Verbindungen
|
2. Remove the line from `/opt/netbox/local_requirements.txt`.
|
||||||
- Nachbargeräte
|
3. Uninstall the package and restart NetBox:
|
||||||
- Circuit-Terminations
|
|
||||||
- Power Feeds
|
|
||||||
- Wireless Links
|
|
||||||
- Coordinate Groups
|
|
||||||
- PNG- und XML-Export
|
|
||||||
|
|
||||||
### Rack-Ansicht
|
```bash
|
||||||
|
/opt/netbox/venv/bin/pip uninstall netbox-topology-views
|
||||||
|
sudo systemctl restart netbox netbox-rq
|
||||||
|
```
|
||||||
|
|
||||||
Die erweiterte Ansicht befindet sich unter:
|
## Usage
|
||||||
|
|
||||||
**Plugins → Topology Views → Weitere Ansichten → Rack-Ansicht**
|
### Classic topology
|
||||||
|
|
||||||
Über Site, Location und Rack können ein einzelnes Rack oder mehrere Racks
|
**Plugins → Topology Views → Topology** provides the original, filterable
|
||||||
ausgewählt werden. Optional lassen sich auch leere Racks einblenden.
|
topology view. It supports physical cables, logical connections, neighbour
|
||||||
|
devices, circuit terminations, power feeds, wireless links, coordinate groups,
|
||||||
|
and PNG and XML export.
|
||||||
|
|
||||||
In der Elevation werden Geräte entsprechend ihrer Position, Gerätehöhe und
|
### Rack view
|
||||||
Rack-Seite dargestellt. Unter den Elevations folgen:
|
|
||||||
|
|
||||||
1. die interaktive Kabeltopologie und
|
**Plugins → Topology Views → More views → Rack view**
|
||||||
2. eine tabellarische Übersicht sämtlicher betroffener Kabel.
|
|
||||||
|
|
||||||
In der Kabeltopologie können Geräte per Drag-and-drop verschoben werden. Beim
|
Select a single rack or several racks via site, location and rack; empty racks
|
||||||
Hover über ein Gerät werden dessen Kabel hervorgehoben und alle verbundenen
|
can be shown optionally. Devices are rendered according to position, height and
|
||||||
Ports aufgelistet. Beim Hover über ein Kabel erscheinen beide Terminierungen.
|
rack face. Below the elevations follow:
|
||||||
Ein Klick öffnet das jeweilige NetBox-Objekt.
|
|
||||||
|
|
||||||
Über die Export-Schaltflächen können ein einzelnes Rack, alle aktuell
|
1. the interactive cable topology, and
|
||||||
angezeigten Racks oder die interaktive Kabeltopologie als SVG, PNG oder
|
2. a table of all involved cables.
|
||||||
draw.io-Datei gespeichert werden. Sämtliche Exportformate werden ohne
|
|
||||||
Hintergrundfläche erzeugt. Im draw.io-Export bleiben Rack-Rahmen, Geräte und
|
|
||||||
Beschriftungen als einzelne Elemente bearbeitbar. Topologiekabel werden als
|
|
||||||
echte Kanten exportiert und folgen den Geräten beim Verschieben in draw.io.
|
|
||||||
|
|
||||||
Die Positionen werden im `localStorage` des Browsers gespeichert. Sie gelten
|
In the cable topology, devices can be moved via drag and drop. Hovering a device
|
||||||
damit nur für den jeweiligen Browser und die konkrete Rack-/Filterauswahl.
|
highlights its cables and lists all connected ports; hovering a cable shows both
|
||||||
|
terminations. A click opens the NetBox object.
|
||||||
|
|
||||||
## Geräte-Icons
|
The export buttons save a single rack, all displayed racks or the cable topology
|
||||||
|
as SVG, PNG or draw.io, always without background. In the draw.io export, rack
|
||||||
|
frames, devices and labels remain individually editable, and topology cables are
|
||||||
|
real edges that follow the devices.
|
||||||
|
|
||||||
Das Plugin ordnet Icons anhand des Slugs einer Device Role zu. Dieser Fork
|
Positions are stored in the browser's `localStorage` and apply only to that
|
||||||
liefert zusätzlich folgende SVG-Dateien aus:
|
browser and the specific rack/filter selection.
|
||||||
|
|
||||||
| Device-Role-Slug | Icon-Datei |
|
With [Netbox-Utilities](https://git.mrblake.cc/MrBlake/Netbox-Utilities)
|
||||||
|
installed, partial-width devices are rendered side by side in the rack view.
|
||||||
|
|
||||||
|
## Device icons
|
||||||
|
|
||||||
|
Icons are assigned by device role slug. This fork additionally ships:
|
||||||
|
|
||||||
|
| Device role slug | Icon file |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| `network-switch` | `network-switch.svg` |
|
| `network-switch` | `network-switch.svg` |
|
||||||
| `leaf-switch` | `leaf-switch.svg` |
|
| `leaf-switch` | `leaf-switch.svg` |
|
||||||
| `spine-switch` | `spine-switch.svg` |
|
| `spine-switch` | `spine-switch.svg` |
|
||||||
| `aggregation-switch` | `aggregation-switch.svg` |
|
| `aggregation-switch` | `aggregation-switch.svg` |
|
||||||
|
|
||||||
Eigene Bilder können weiterhin über die Seite **Images** zugeordnet werden.
|
Custom images can still be assigned on the **Images** page. The default path is
|
||||||
Der Standardpfad lautet `netbox_topology_views/img` innerhalb von
|
`netbox_topology_views/img` within `STATIC_ROOT`.
|
||||||
`STATIC_ROOT`.
|
|
||||||
|
|
||||||
## Berechtigungen
|
## Permissions
|
||||||
|
|
||||||
Für die klassische Topologie werden mindestens folgende Rechte benötigt:
|
Classic topology: `dcim.view_site`, `dcim.view_device`.
|
||||||
|
|
||||||
- `dcim.view_site`
|
Rack view: `dcim.view_rack`, `dcim.view_device`, `dcim.view_cable`.
|
||||||
- `dcim.view_device`
|
|
||||||
|
|
||||||
Für die Rack-Ansicht werden benötigt:
|
Saving classic topology coordinates additionally requires the corresponding
|
||||||
|
permissions on `netbox_topology_views.coordinate`.
|
||||||
|
|
||||||
- `dcim.view_rack`
|
## Origin and credits
|
||||||
- `dcim.view_device`
|
|
||||||
- `dcim.view_cable`
|
|
||||||
|
|
||||||
Für das Speichern klassischer Topologiekoordinaten werden zusätzlich die
|
This project is a fork of the open-source plugin
|
||||||
entsprechenden Rechte auf `netbox_topology_views.coordinate` benötigt.
|
|
||||||
|
|
||||||
## Kompatibilität
|
|
||||||
|
|
||||||
Die Basis dieses Forks ist NetBox Topology Views `4.5.1`. Die neuen
|
|
||||||
Rack-Funktionen wurden für den Einsatz mit NetBox `4.6.5` angepasst und das
|
|
||||||
Plugin ist für NetBox `4.7.x` (`min_version`/`max_version` in
|
|
||||||
`netbox_topology_views/__init__.py`) freigegeben. Da das ursprüngliche
|
|
||||||
Release offiziell für NetBox 4.5.x ausgewiesen ist, sollten Updates auf
|
|
||||||
neuere NetBox-Versionen zunächst in einer Testumgebung geprüft werden.
|
|
||||||
|
|
||||||
## Ursprung und Danksagung
|
|
||||||
|
|
||||||
Dieses Projekt ist ein Fork des Open-Source-Plugins
|
|
||||||
[NetBox Topology Views](https://github.com/mattieserver/netbox-topology-views).
|
[NetBox Topology Views](https://github.com/mattieserver/netbox-topology-views).
|
||||||
|
The original plugin was created by **Mattijs Vanhaverbeke**. Most of the classic
|
||||||
|
topology view, data models, filters and export functions are based on his work
|
||||||
|
and the contributions to the original project.
|
||||||
|
|
||||||
Das ursprüngliche Plugin wurde von **Mattijs Vanhaverbeke** erstellt. Der
|
This fork is developed independently and is not officially affiliated with the
|
||||||
größte Teil der klassischen Topologieansicht, Datenmodelle, Filter und
|
original author or the NetBox project.
|
||||||
Exportfunktionen basiert auf seiner Arbeit und den Beiträgen des ursprünglichen
|
|
||||||
Projekts.
|
|
||||||
|
|
||||||
Dieser Fork wird unabhängig weiterentwickelt und ist nicht mit dem
|
## License
|
||||||
ursprünglichen Autor oder dem NetBox-Projekt offiziell verbunden.
|
|
||||||
|
|
||||||
## Lizenz
|
Like the original, this project is licensed under the
|
||||||
|
[Apache License 2.0](LICENSE). Existing copyright, license and attribution
|
||||||
Das Projekt steht wie das Original unter der
|
notices of the original project are retained.
|
||||||
[Apache License 2.0](LICENSE). Bestehende Copyright-, Lizenz- und
|
|
||||||
Urheberhinweise des ursprünglichen Projekts bleiben erhalten.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user