feat: use timestamped output filenames (containers_snapshot_<date>_<host>)
This commit is contained in:
82
Chat-Protokoll_2025-11-01_18-27-12.md
Executable file
82
Chat-Protokoll_2025-11-01_18-27-12.md
Executable file
@@ -0,0 +1,82 @@
|
|||||||
|
# Chat-Protokoll — 2025-11-01 18:27:12
|
||||||
|
|
||||||
|
Dieses Dokument fasst den Chat und die vorgenommenen Änderungen zusammen und enthält die relevanten geänderten Codeabschnitte aus `docker_info.py`.
|
||||||
|
|
||||||
|
Datum: 2025-11-01
|
||||||
|
Uhrzeit: 18:27:12 (lokale Systemzeit)
|
||||||
|
|
||||||
|
## Kurzfassung
|
||||||
|
|
||||||
|
- Der Nutzer wollte neue, aussagekräftige Dateinamen für die erzeugten Dateien (CSV und GraphML).
|
||||||
|
- Empfohlenes Schema: `containers_snapshot_<YYYY-MM-DD>_<hostname>.(csv|graphml)`.
|
||||||
|
- `docker_info.py` wurde so angepasst, dass Ausgabedateien automatisch das Datum und den (sanierten) Hostnamen enthalten und im Verzeichnis `out_01/` abgelegt werden.
|
||||||
|
|
||||||
|
## Geänderte Codeabschnitte
|
||||||
|
|
||||||
|
### 1) Ergänzte Importe
|
||||||
|
|
||||||
|
```python
|
||||||
|
import os
|
||||||
|
import datetime
|
||||||
|
import socket
|
||||||
|
```
|
||||||
|
|
||||||
|
Diese Imports wurden hinzugefügt, um Dateipfade anzulegen, das aktuelle Datum zu bestimmen und den Hostnamen zu ermitteln.
|
||||||
|
|
||||||
|
### 2) Neuer Main-Block (Dateinamens-Generierung & Ausgabepfade)
|
||||||
|
|
||||||
|
```python
|
||||||
|
if __name__ == '__main__':
|
||||||
|
print("[*] Sammle Container-Informationen...")
|
||||||
|
container_data = get_container_info()
|
||||||
|
|
||||||
|
# Erzeuge standardisierte Dateinamen: containers_snapshot_<YYYY-MM-DD>_<hostname>.(csv|graphml)
|
||||||
|
date_str = datetime.date.today().isoformat()
|
||||||
|
hostname = sanitize_id(socket.gethostname())
|
||||||
|
base_name = f"containers_snapshot_{date_str}_{hostname}"
|
||||||
|
|
||||||
|
out_dir = 'out_01'
|
||||||
|
try:
|
||||||
|
os.makedirs(out_dir, exist_ok=True)
|
||||||
|
except Exception:
|
||||||
|
# Falls das Anlegen fehlschlägt, fahren wir mit dem aktuellen Verzeichnis fort
|
||||||
|
out_dir = '.'
|
||||||
|
|
||||||
|
csv_file = os.path.join(out_dir, f"{base_name}.csv")
|
||||||
|
graph_file = os.path.join(out_dir, f"{base_name}.graphml")
|
||||||
|
|
||||||
|
save_to_csv(container_data, filename=csv_file)
|
||||||
|
save_to_graphml(container_data, filename=graph_file)
|
||||||
|
print(f"[+] Dateien: {csv_file}, {graph_file}")
|
||||||
|
```
|
||||||
|
|
||||||
|
Die Funktionen `save_to_csv` und `save_to_graphml` verwenden weiterhin denselben Code, wurden aber so aufgerufen, dass die Dateien im neuen Schema erstellt werden.
|
||||||
|
|
||||||
|
## Dateien erstellt/aktualisiert
|
||||||
|
|
||||||
|
- `docker_info.py` — aktualisiert (Importe + Main-Block geändert)
|
||||||
|
- `/volume1/docker/config/Chat-Protokoll_2025-11-01_18-27-12.md` — neu (dieses Protokoll)
|
||||||
|
- Frühere Export-Datei: `/volume1/docker/config/chat_export_2025-11-01T000000.md` — existiert ebenfalls
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Wenn du möchtest, kann ich jetzt:
|
||||||
|
- das Skript so erweitern, dass es eine CLI-Option `--basename` oder `--timestamp` akzeptiert,
|
||||||
|
- vorhandene Dateien in `out_01/` automatisch umbenennen (z. B. `docker_container_info.csv` -> neues Schema), oder
|
||||||
|
- die Markdown-Datei mit einem vollständigen Diff der Änderung ergänzen.
|
||||||
|
|
||||||
|
Welche Aktion bevorzugst du?"}
|
||||||
|
|
||||||
|
## Vorschlag: Git Commit-Message
|
||||||
|
|
||||||
|
Kurze Optionen (wähle eine):
|
||||||
|
|
||||||
|
- English: feat: use timestamped output filenames (containers_snapshot_<date>_<host>)
|
||||||
|
- Deutsch: feat: Ausgabe-Dateinamen mit Datum und Hostnamen
|
||||||
|
|
||||||
|
Zum Anwenden mit Git:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git add docker_info.py
|
||||||
|
git commit -m "feat: use timestamped output filenames (containers_snapshot_<date>_<host>)"
|
||||||
|
```
|
||||||
@@ -8,6 +8,9 @@ Die GraphML-Datei ist für die Visualisierung in yEd optimiert (Star-Schema).
|
|||||||
import docker
|
import docker
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
import re
|
import re
|
||||||
|
import os
|
||||||
|
import datetime
|
||||||
|
import socket
|
||||||
|
|
||||||
def sanitize_id(text):
|
def sanitize_id(text):
|
||||||
"""
|
"""
|
||||||
@@ -173,5 +176,22 @@ def save_to_graphml(data, filename='docker_container_info.graphml'):
|
|||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
print("[*] Sammle Container-Informationen...")
|
print("[*] Sammle Container-Informationen...")
|
||||||
container_data = get_container_info()
|
container_data = get_container_info()
|
||||||
save_to_csv(container_data)
|
|
||||||
save_to_graphml(container_data)
|
# Erzeuge standardisierte Dateinamen: containers_snapshot_<YYYY-MM-DD>_<hostname>.(csv|graphml)
|
||||||
|
date_str = datetime.date.today().isoformat()
|
||||||
|
hostname = sanitize_id(socket.gethostname())
|
||||||
|
base_name = f"containers_snapshot_{date_str}_{hostname}"
|
||||||
|
|
||||||
|
out_dir = 'out_01'
|
||||||
|
try:
|
||||||
|
os.makedirs(out_dir, exist_ok=True)
|
||||||
|
except Exception:
|
||||||
|
# Falls das Anlegen fehlschlägt, fahren wir mit dem aktuellen Verzeichnis fort
|
||||||
|
out_dir = '.'
|
||||||
|
|
||||||
|
csv_file = os.path.join(out_dir, f"{base_name}.csv")
|
||||||
|
graph_file = os.path.join(out_dir, f"{base_name}.graphml")
|
||||||
|
|
||||||
|
save_to_csv(container_data, filename=csv_file)
|
||||||
|
save_to_graphml(container_data, filename=graph_file)
|
||||||
|
print(f"[+] Dateien: {csv_file}, {graph_file}")
|
||||||
|
|||||||
28
graphml/containers_snapshot_2025-11-01_ds200plus.csv
Executable file
28
graphml/containers_snapshot_2025-11-01_ds200plus.csv
Executable file
@@ -0,0 +1,28 @@
|
|||||||
|
Container Name,Watchtower Enabled,Network,IP Address,Gateway
|
||||||
|
portainer,true,my_network,172.19.0.9,172.19.0.1
|
||||||
|
gitea,not set,my_network,172.19.0.5,172.19.0.1
|
||||||
|
gitea,not set,proxy,172.29.0.2,172.29.0.1
|
||||||
|
gitlab-db,true,gitlab_system,172.30.0.2,172.30.0.1
|
||||||
|
linkwarden-db,true,my_network,172.19.0.4,172.19.0.1
|
||||||
|
grafana,true,grafana_default,172.22.0.2,172.22.0.1
|
||||||
|
grafana,true,my_network,172.19.0.6,172.19.0.1
|
||||||
|
gitlab,true,gitlab_system,172.30.0.3,172.30.0.1
|
||||||
|
gitlab,true,my_network,172.19.0.7,172.19.0.1
|
||||||
|
linkwarden,true,my_network,172.19.0.2,172.19.0.1
|
||||||
|
nodered,true,node-red_node-red-net,172.28.0.2,172.28.0.1
|
||||||
|
gitlab-registry,true,gitlab_system,172.30.0.4,172.30.0.1
|
||||||
|
gitlab-registry,true,my_network,172.19.0.8,172.19.0.1
|
||||||
|
Watchtower,not set,watchtower_default,172.26.0.2,172.26.0.1
|
||||||
|
Vaultwarden,not set,my_network,172.19.0.10,172.19.0.1
|
||||||
|
influxdb,not set,my_network,172.19.0.3,172.19.0.1
|
||||||
|
traefik,not set,my_network,172.19.0.12,172.19.0.1
|
||||||
|
deconz,not set,deconz_default,172.24.0.2,172.24.0.1
|
||||||
|
seafile-mysql,not set,seafile_seafile_net,172.25.0.2,172.25.0.1
|
||||||
|
seafile,not set,my_network,172.19.0.11,172.19.0.1
|
||||||
|
seafile,not set,seafile_seafile_net,172.25.0.3,172.25.0.1
|
||||||
|
seafile-memcached,not set,seafile_seafile_net,172.25.0.4,172.25.0.1
|
||||||
|
nextcloud-app,not set,nextcloud_default,,
|
||||||
|
nextcloud-db,not set,nextcloud_default,,
|
||||||
|
nextcloud-redis,not set,nextcloud_default,,
|
||||||
|
traefik-1,not set,bridge,,
|
||||||
|
HandBrake,not set,bridge,,
|
||||||
|
78
graphml/containers_snapshot_2025-11-01_ds200plus.graphml
Executable file
78
graphml/containers_snapshot_2025-11-01_ds200plus.graphml
Executable file
@@ -0,0 +1,78 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<graphml xmlns:y="http://www.yworks.com/xml/graphml" xmlns="http://graphml.graphdrawing.org/xmlns"><key id="d0" for="node" yfiles.type="nodegraphics" /><key id="d1" for="node" attr.name="Watchtower Enabled" attr.type="string" /><graph id="G" edgedefault="undirected"><node id="network_gitlab_system"><data key="d0"><y:ShapeNode><y:Geometry x="500" y="400" width="200" height="60" /><y:NodeLabel>gitlab_system
|
||||||
|
gitlab-db: IP: 172.30.0.2, GW: 172.30.0.1
|
||||||
|
gitlab: IP: 172.30.0.3, GW: 172.30.0.1
|
||||||
|
gitlab-registry: IP: 172.30.0.4, GW: 172.30.0.1</y:NodeLabel></y:ShapeNode></data></node><node id="network_bridge"><data key="d0"><y:ShapeNode><y:Geometry x="500" y="400" width="200" height="60" /><y:NodeLabel>bridge
|
||||||
|
traefik-1: IP: , GW:
|
||||||
|
HandBrake: IP: , GW: </y:NodeLabel></y:ShapeNode></data></node><node id="network_nextcloud_default"><data key="d0"><y:ShapeNode><y:Geometry x="500" y="400" width="200" height="60" /><y:NodeLabel>nextcloud_default
|
||||||
|
nextcloud-app: IP: , GW:
|
||||||
|
nextcloud-db: IP: , GW:
|
||||||
|
nextcloud-redis: IP: , GW: </y:NodeLabel></y:ShapeNode></data></node><node id="network_deconz_default"><data key="d0"><y:ShapeNode><y:Geometry x="500" y="400" width="200" height="60" /><y:NodeLabel>deconz_default
|
||||||
|
deconz: IP: 172.24.0.2, GW: 172.24.0.1</y:NodeLabel></y:ShapeNode></data></node><node id="network_watchtower_default"><data key="d0"><y:ShapeNode><y:Geometry x="500" y="400" width="200" height="60" /><y:NodeLabel>watchtower_default
|
||||||
|
Watchtower: IP: 172.26.0.2, GW: 172.26.0.1</y:NodeLabel></y:ShapeNode></data></node><node id="network_grafana_default"><data key="d0"><y:ShapeNode><y:Geometry x="500" y="400" width="200" height="60" /><y:NodeLabel>grafana_default
|
||||||
|
grafana: IP: 172.22.0.2, GW: 172.22.0.1</y:NodeLabel></y:ShapeNode></data></node><node id="network_node_red_node_red_net"><data key="d0"><y:ShapeNode><y:Geometry x="500" y="400" width="200" height="60" /><y:NodeLabel>node-red_node-red-net
|
||||||
|
nodered: IP: 172.28.0.2, GW: 172.28.0.1</y:NodeLabel></y:ShapeNode></data></node><node id="network_seafile_seafile_net"><data key="d0"><y:ShapeNode><y:Geometry x="500" y="400" width="200" height="60" /><y:NodeLabel>seafile_seafile_net
|
||||||
|
seafile-mysql: IP: 172.25.0.2, GW: 172.25.0.1
|
||||||
|
seafile: IP: 172.25.0.3, GW: 172.25.0.1
|
||||||
|
seafile-memcached: IP: 172.25.0.4, GW: 172.25.0.1</y:NodeLabel></y:ShapeNode></data></node><node id="network_my_network"><data key="d0"><y:ShapeNode><y:Geometry x="500" y="400" width="200" height="60" /><y:NodeLabel>my_network
|
||||||
|
portainer: IP: 172.19.0.9, GW: 172.19.0.1
|
||||||
|
gitea: IP: 172.19.0.5, GW: 172.19.0.1
|
||||||
|
linkwarden-db: IP: 172.19.0.4, GW: 172.19.0.1
|
||||||
|
grafana: IP: 172.19.0.6, GW: 172.19.0.1
|
||||||
|
gitlab: IP: 172.19.0.7, GW: 172.19.0.1
|
||||||
|
linkwarden: IP: 172.19.0.2, GW: 172.19.0.1
|
||||||
|
gitlab-registry: IP: 172.19.0.8, GW: 172.19.0.1
|
||||||
|
Vaultwarden: IP: 172.19.0.10, GW: 172.19.0.1
|
||||||
|
influxdb: IP: 172.19.0.3, GW: 172.19.0.1
|
||||||
|
traefik: IP: 172.19.0.12, GW: 172.19.0.1
|
||||||
|
seafile: IP: 172.19.0.11, GW: 172.19.0.1</y:NodeLabel></y:ShapeNode></data></node><node id="network_proxy"><data key="d0"><y:ShapeNode><y:Geometry x="500" y="400" width="200" height="60" /><y:NodeLabel>proxy
|
||||||
|
gitea: IP: 172.29.0.2, GW: 172.29.0.1</y:NodeLabel></y:ShapeNode></data></node><node id="container_traefik"><data key="d0"><y:ShapeNode><y:Geometry x="800.0" y="400.0" width="200" height="60" /><y:NodeLabel>traefik
|
||||||
|
Watchtower: deaktiviert
|
||||||
|
IP: 172.19.0.12, GW: 172.19.0.1, Net: my_network</y:NodeLabel></y:ShapeNode></data><data key="d1">not set</data></node><node id="container_gitea"><data key="d0"><y:ShapeNode><y:Geometry x="787.8478920843493" y="484.5197670524289" width="200" height="60" /><y:NodeLabel>gitea
|
||||||
|
Watchtower: deaktiviert
|
||||||
|
IP: 172.19.0.5, GW: 172.19.0.1, Net: my_network
|
||||||
|
IP: 172.29.0.2, GW: 172.29.0.1, Net: proxy</y:NodeLabel></y:ShapeNode></data><data key="d1">not set</data></node><node id="container_portainer"><data key="d0"><y:ShapeNode><y:Geometry x="752.3760598493543" y="562.1922452366792" width="200" height="60" /><y:NodeLabel>portainer
|
||||||
|
Watchtower: aktiviert
|
||||||
|
IP: 172.19.0.9, GW: 172.19.0.1, Net: my_network</y:NodeLabel></y:ShapeNode></data><data key="d1">true</data></node><node id="container_Vaultwarden"><data key="d0"><y:ShapeNode><y:Geometry x="696.4582201835856" y="626.7248723062775" width="200" height="60" /><y:NodeLabel>Vaultwarden
|
||||||
|
Watchtower: deaktiviert
|
||||||
|
IP: 172.19.0.10, GW: 172.19.0.1, Net: my_network</y:NodeLabel></y:ShapeNode></data><data key="d1">not set</data></node><node id="container_Watchtower"><data key="d0"><y:ShapeNode><y:Geometry x="624.624503900566" y="672.8895986063555" width="200" height="60" /><y:NodeLabel>Watchtower
|
||||||
|
Watchtower: deaktiviert
|
||||||
|
IP: 172.26.0.2, GW: 172.26.0.1, Net: watchtower_default</y:NodeLabel></y:ShapeNode></data><data key="d1">not set</data></node><node id="container_linkwarden"><data key="d0"><y:ShapeNode><y:Geometry x="542.6944514819855" y="696.9464325642798" width="200" height="60" /><y:NodeLabel>linkwarden
|
||||||
|
Watchtower: aktiviert
|
||||||
|
IP: 172.19.0.2, GW: 172.19.0.1, Net: my_network</y:NodeLabel></y:ShapeNode></data><data key="d1">true</data></node><node id="container_gitlab_db"><data key="d0"><y:ShapeNode><y:Geometry x="457.3055485180145" y="696.9464325642798" width="200" height="60" /><y:NodeLabel>gitlab-db
|
||||||
|
Watchtower: aktiviert
|
||||||
|
IP: 172.30.0.2, GW: 172.30.0.1, Net: gitlab_system</y:NodeLabel></y:ShapeNode></data><data key="d1">true</data></node><node id="container_nextcloud_db"><data key="d0"><y:ShapeNode><y:Geometry x="375.3754960994341" y="672.8895986063555" width="200" height="60" /><y:NodeLabel>nextcloud-db
|
||||||
|
Watchtower: deaktiviert
|
||||||
|
IP: , GW: , Net: nextcloud_default</y:NodeLabel></y:ShapeNode></data><data key="d1">not set</data></node><node id="container_nextcloud_redis"><data key="d0"><y:ShapeNode><y:Geometry x="303.54177981641453" y="626.7248723062775" width="200" height="60" /><y:NodeLabel>nextcloud-redis
|
||||||
|
Watchtower: deaktiviert
|
||||||
|
IP: , GW: , Net: nextcloud_default</y:NodeLabel></y:ShapeNode></data><data key="d1">not set</data></node><node id="container_gitlab_registry"><data key="d0"><y:ShapeNode><y:Geometry x="247.62394015064567" y="562.1922452366794" width="200" height="60" /><y:NodeLabel>gitlab-registry
|
||||||
|
Watchtower: aktiviert
|
||||||
|
IP: 172.30.0.4, GW: 172.30.0.1, Net: gitlab_system
|
||||||
|
IP: 172.19.0.8, GW: 172.19.0.1, Net: my_network</y:NodeLabel></y:ShapeNode></data><data key="d1">true</data></node><node id="container_traefik_1"><data key="d0"><y:ShapeNode><y:Geometry x="212.1521079156508" y="484.5197670524289" width="200" height="60" /><y:NodeLabel>traefik-1
|
||||||
|
Watchtower: deaktiviert
|
||||||
|
IP: , GW: , Net: bridge</y:NodeLabel></y:ShapeNode></data><data key="d1">not set</data></node><node id="container_seafile_mysql"><data key="d0"><y:ShapeNode><y:Geometry x="200.0" y="400.00000000000006" width="200" height="60" /><y:NodeLabel>seafile-mysql
|
||||||
|
Watchtower: deaktiviert
|
||||||
|
IP: 172.25.0.2, GW: 172.25.0.1, Net: seafile_seafile_net</y:NodeLabel></y:ShapeNode></data><data key="d1">not set</data></node><node id="container_seafile_memcached"><data key="d0"><y:ShapeNode><y:Geometry x="212.15210791565073" y="315.48023294757115" width="200" height="60" /><y:NodeLabel>seafile-memcached
|
||||||
|
Watchtower: deaktiviert
|
||||||
|
IP: 172.25.0.4, GW: 172.25.0.1, Net: seafile_seafile_net</y:NodeLabel></y:ShapeNode></data><data key="d1">not set</data></node><node id="container_seafile"><data key="d0"><y:ShapeNode><y:Geometry x="247.62394015064564" y="237.80775476332073" width="200" height="60" /><y:NodeLabel>seafile
|
||||||
|
Watchtower: deaktiviert
|
||||||
|
IP: 172.19.0.11, GW: 172.19.0.1, Net: my_network
|
||||||
|
IP: 172.25.0.3, GW: 172.25.0.1, Net: seafile_seafile_net</y:NodeLabel></y:ShapeNode></data><data key="d1">not set</data></node><node id="container_influxdb"><data key="d0"><y:ShapeNode><y:Geometry x="303.5417798164144" y="173.27512769372254" width="200" height="60" /><y:NodeLabel>influxdb
|
||||||
|
Watchtower: deaktiviert
|
||||||
|
IP: 172.19.0.3, GW: 172.19.0.1, Net: my_network</y:NodeLabel></y:ShapeNode></data><data key="d1">not set</data></node><node id="container_nextcloud_app"><data key="d0"><y:ShapeNode><y:Geometry x="375.3754960994341" y="127.11040139364445" width="200" height="60" /><y:NodeLabel>nextcloud-app
|
||||||
|
Watchtower: deaktiviert
|
||||||
|
IP: , GW: , Net: nextcloud_default</y:NodeLabel></y:ShapeNode></data><data key="d1">not set</data></node><node id="container_linkwarden_db"><data key="d0"><y:ShapeNode><y:Geometry x="457.30554851801446" y="103.0535674357202" width="200" height="60" /><y:NodeLabel>linkwarden-db
|
||||||
|
Watchtower: aktiviert
|
||||||
|
IP: 172.19.0.4, GW: 172.19.0.1, Net: my_network</y:NodeLabel></y:ShapeNode></data><data key="d1">true</data></node><node id="container_HandBrake"><data key="d0"><y:ShapeNode><y:Geometry x="542.6944514819854" y="103.05356743572014" width="200" height="60" /><y:NodeLabel>HandBrake
|
||||||
|
Watchtower: deaktiviert
|
||||||
|
IP: , GW: , Net: bridge</y:NodeLabel></y:ShapeNode></data><data key="d1">not set</data></node><node id="container_grafana"><data key="d0"><y:ShapeNode><y:Geometry x="624.6245039005659" y="127.11040139364445" width="200" height="60" /><y:NodeLabel>grafana
|
||||||
|
Watchtower: aktiviert
|
||||||
|
IP: 172.22.0.2, GW: 172.22.0.1, Net: grafana_default
|
||||||
|
IP: 172.19.0.6, GW: 172.19.0.1, Net: my_network</y:NodeLabel></y:ShapeNode></data><data key="d1">true</data></node><node id="container_nodered"><data key="d0"><y:ShapeNode><y:Geometry x="696.4582201835856" y="173.27512769372254" width="200" height="60" /><y:NodeLabel>nodered
|
||||||
|
Watchtower: aktiviert
|
||||||
|
IP: 172.28.0.2, GW: 172.28.0.1, Net: node-red_node-red-net</y:NodeLabel></y:ShapeNode></data><data key="d1">true</data></node><node id="container_deconz"><data key="d0"><y:ShapeNode><y:Geometry x="752.3760598493543" y="237.80775476332076" width="200" height="60" /><y:NodeLabel>deconz
|
||||||
|
Watchtower: deaktiviert
|
||||||
|
IP: 172.24.0.2, GW: 172.24.0.1, Net: deconz_default</y:NodeLabel></y:ShapeNode></data><data key="d1">not set</data></node><node id="container_gitlab"><data key="d0"><y:ShapeNode><y:Geometry x="787.8478920843493" y="315.48023294757104" width="200" height="60" /><y:NodeLabel>gitlab
|
||||||
|
Watchtower: aktiviert
|
||||||
|
IP: 172.30.0.3, GW: 172.30.0.1, Net: gitlab_system
|
||||||
|
IP: 172.19.0.7, GW: 172.19.0.1, Net: my_network</y:NodeLabel></y:ShapeNode></data><data key="d1">true</data></node><edge id="e0" source="container_portainer" target="network_my_network" /><edge id="e1" source="container_gitea" target="network_my_network" /><edge id="e2" source="container_gitea" target="network_proxy" /><edge id="e3" source="container_gitlab_db" target="network_gitlab_system" /><edge id="e4" source="container_linkwarden_db" target="network_my_network" /><edge id="e5" source="container_grafana" target="network_grafana_default" /><edge id="e6" source="container_grafana" target="network_my_network" /><edge id="e7" source="container_gitlab" target="network_gitlab_system" /><edge id="e8" source="container_gitlab" target="network_my_network" /><edge id="e9" source="container_linkwarden" target="network_my_network" /><edge id="e10" source="container_nodered" target="network_node_red_node_red_net" /><edge id="e11" source="container_gitlab_registry" target="network_gitlab_system" /><edge id="e12" source="container_gitlab_registry" target="network_my_network" /><edge id="e13" source="container_Watchtower" target="network_watchtower_default" /><edge id="e14" source="container_Vaultwarden" target="network_my_network" /><edge id="e15" source="container_influxdb" target="network_my_network" /><edge id="e16" source="container_traefik" target="network_my_network" /><edge id="e17" source="container_deconz" target="network_deconz_default" /><edge id="e18" source="container_seafile_mysql" target="network_seafile_seafile_net" /><edge id="e19" source="container_seafile" target="network_my_network" /><edge id="e20" source="container_seafile" target="network_seafile_seafile_net" /><edge id="e21" source="container_seafile_memcached" target="network_seafile_seafile_net" /><edge id="e22" source="container_nextcloud_app" target="network_nextcloud_default" /><edge id="e23" source="container_nextcloud_db" target="network_nextcloud_default" /><edge id="e24" source="container_nextcloud_redis" target="network_nextcloud_default" /><edge id="e25" source="container_traefik_1" target="network_bridge" /><edge id="e26" source="container_HandBrake" target="network_bridge" /></graph></graphml>
|
||||||
Reference in New Issue
Block a user