Test auto-deploy
This commit is contained in:
@@ -1,121 +1,121 @@
|
||||
from diagrams import Diagram, Cluster, Edge
|
||||
from diagrams.onprem.network import Internet
|
||||
from diagrams.onprem.compute import Server
|
||||
from diagrams.onprem.iac import Ansible
|
||||
from diagrams.generic.network import Router, Switch
|
||||
from diagrams.generic.device import Mobile, Tablet
|
||||
from diagrams.generic.blank import Blank
|
||||
from diagrams.onprem.client import Users
|
||||
from diagrams.onprem.container import Docker
|
||||
from diagrams.custom import Custom
|
||||
|
||||
# Tip: run this in a venv:
|
||||
# pip install diagrams graphviz
|
||||
|
||||
with Diagram("Home Lab / Auction Stack Architecture", show=False, filename="home_lab_architecture", direction="LR"):
|
||||
internet = Internet("Internet / Cloud")
|
||||
|
||||
dev = Users("Dev laptop(s)\nWindows / WSL")
|
||||
|
||||
# -------------------- LAN 192.168.1.x --------------------
|
||||
with Cluster("LAN 192.168.1.0/24"):
|
||||
router = Router("hub.lan\n192.168.1.1\nRouter / Gateway")
|
||||
|
||||
# -------- Core server / desktop (Tour / hephaestus / dokku / ollama) --------
|
||||
with Cluster("Core server / desktop\nTour / hephaestus / dokku.lan / ollama.lan\n192.168.1.159"):
|
||||
core_os = Server("Ubuntu host")
|
||||
|
||||
traefik = Docker("Traefik\nReverse Proxy")
|
||||
gitea = Docker("Gitea\n git.appmodel.nl")
|
||||
dokku = Docker("Dokku\nPaaS / app hosting")
|
||||
auction_fe = Docker("Auction Frontend\n auction.appmodel.nl")
|
||||
aupi_be = Docker("Aupi API Backend\n aupi.appmodel.nl")
|
||||
mi50 = Server("MI50 GPU / Ollama\nAI workloads")
|
||||
|
||||
# -------- Infra & DNS (odroid / dns.lan) --------
|
||||
with Cluster("Infra & DNS\nodroid / dns.lan\n192.168.1.163"):
|
||||
dns_host = Server("Odroid host")
|
||||
adguard = Docker("AdGuard Home\nDNS / *.lan / *.appmodel.nl")
|
||||
artifactory = Docker("Artifactory (future)")
|
||||
runner = Docker("CI / Build runner (future)")
|
||||
|
||||
# -------- Home Assistant --------
|
||||
with Cluster("Home Automation\nha.lan\n192.168.1.193"):
|
||||
ha_host = Server("HomeAssistant host")
|
||||
hass = Docker("Home Assistant")
|
||||
|
||||
# -------- Extra node / worker --------
|
||||
atlas = Server("atlas.lan\n192.168.1.100\n(extra node / worker)")
|
||||
|
||||
# -------- IoT / devices --------
|
||||
with Cluster("IoT / Clients"):
|
||||
iot_hof = Tablet("hof-E402NA\n192.168.1.214")
|
||||
iot_s380 = Tablet("S380HB\n192.168.1.59")
|
||||
iot_ecb5 = Tablet("ecb5faa56c90\n192.168.1.49")
|
||||
iot_unknown = Tablet("Unknown\n192.168.1.240")
|
||||
|
||||
# -------------------- Tether subnet 192.168.137.x --------------------
|
||||
with Cluster("Tether subnet 192.168.137.0/24"):
|
||||
hermes = Server("hermes.lan\n192.168.137.239\nworker / node")
|
||||
plato = Server("plato.lan\n192.168.137.163\nworker / node")
|
||||
|
||||
# -------------------- Edges / flows --------------------
|
||||
|
||||
# Internet naar router + DNS host
|
||||
internet >> router
|
||||
internet >> dns_host
|
||||
|
||||
# Dev naar Gitea / Traefik / Dokku
|
||||
dev >> Edge(label="git / HTTPS") >> traefik
|
||||
dev >> Edge(label="SSH / HTTPS") >> gitea
|
||||
dev >> Edge(label="Dokku deploys") >> dokku
|
||||
|
||||
# Router naar alle LAN-nodes
|
||||
router >> core_os
|
||||
router >> dns_host
|
||||
router >> ha_host
|
||||
router >> atlas
|
||||
router >> iot_hof
|
||||
router >> iot_s380
|
||||
router >> iot_ecb5
|
||||
router >> iot_unknown
|
||||
|
||||
# Core server services
|
||||
core_os >> traefik
|
||||
core_os >> gitea
|
||||
core_os >> dokku
|
||||
core_os >> auction_fe
|
||||
core_os >> aupi_be
|
||||
core_os >> mi50
|
||||
|
||||
# Infra/DNS services
|
||||
dns_host >> adguard
|
||||
dns_host >> artifactory
|
||||
dns_host >> runner
|
||||
|
||||
# Home Assistant
|
||||
ha_host >> hass
|
||||
|
||||
# DNS-queries
|
||||
core_os >> Edge(label="DNS") >> adguard
|
||||
ha_host >> Edge(label="DNS") >> adguard
|
||||
atlas >> Edge(label="DNS") >> adguard
|
||||
hermes >> Edge(label="DNS") >> adguard
|
||||
plato >> Edge(label="DNS") >> adguard
|
||||
|
||||
# Web traffic / reverse proxy flows
|
||||
internet >> Edge(label="HTTP/HTTPS") >> traefik
|
||||
traefik >> Edge(label="git.appmodel.nl") >> gitea
|
||||
traefik >> Edge(label="auction.appmodel.nl") >> auction_fe
|
||||
traefik >> Edge(label="aupi.appmodel.nl") >> aupi_be
|
||||
traefik >> Edge(label="dokku.lan / apps") >> dokku
|
||||
|
||||
# App-level flow
|
||||
auction_fe >> Edge(label="REST API") >> aupi_be
|
||||
|
||||
# AI workloads
|
||||
dev >> Edge(label="LLM / Tuning / Inference") >> mi50
|
||||
|
||||
# Tether workers verbonden met core (bv. jobs / agents)
|
||||
core_os >> Edge(label="jobs / ssh") >> hermes
|
||||
core_os >> Edge(label="jobs / ssh") >> plato
|
||||
from diagrams import Diagram, Cluster, Edge
|
||||
from diagrams.onprem.network import Internet
|
||||
from diagrams.onprem.compute import Server
|
||||
from diagrams.onprem.iac import Ansible
|
||||
from diagrams.generic.network import Router, Switch
|
||||
from diagrams.generic.device import Mobile, Tablet
|
||||
from diagrams.generic.blank import Blank
|
||||
from diagrams.onprem.client import Users
|
||||
from diagrams.onprem.container import Docker
|
||||
from diagrams.custom import Custom
|
||||
|
||||
# Tip: run this in a venv:
|
||||
# pip install diagrams graphviz
|
||||
|
||||
with Diagram("Home Lab / Auction Stack Architecture", show=False, filename="home_lab_architecture", direction="LR"):
|
||||
internet = Internet("Internet / Cloud")
|
||||
|
||||
dev = Users("Dev laptop(s)\nWindows / WSL")
|
||||
|
||||
# -------------------- LAN 192.168.1.x --------------------
|
||||
with Cluster("LAN 192.168.1.0/24"):
|
||||
router = Router("hub.lan\n192.168.1.1\nRouter / Gateway")
|
||||
|
||||
# -------- Core server / desktop (Tour / hephaestus / dokku / ollama) --------
|
||||
with Cluster("Core server / desktop\nTour / hephaestus / dokku.lan / ollama.lan\n192.168.1.159"):
|
||||
core_os = Server("Ubuntu host")
|
||||
|
||||
traefik = Docker("Traefik\nReverse Proxy")
|
||||
gitea = Docker("Gitea\n git.appmodel.nl")
|
||||
dokku = Docker("Dokku\nPaaS / app hosting")
|
||||
auction_fe = Docker("Auction Frontend\n auction.appmodel.nl")
|
||||
aupi_be = Docker("Aupi API Backend\n aupi.appmodel.nl")
|
||||
mi50 = Server("MI50 GPU / Ollama\nAI workloads")
|
||||
|
||||
# -------- Infra & DNS (odroid / dns.lan) --------
|
||||
with Cluster("Infra & DNS\nodroid / dns.lan\n192.168.1.163"):
|
||||
dns_host = Server("Odroid host")
|
||||
adguard = Docker("AdGuard Home\nDNS / *.lan / *.appmodel.nl")
|
||||
artifactory = Docker("Artifactory (future)")
|
||||
runner = Docker("CI / Build runner (future)")
|
||||
|
||||
# -------- Home Assistant --------
|
||||
with Cluster("Home Automation\nha.lan\n192.168.1.193"):
|
||||
ha_host = Server("HomeAssistant host")
|
||||
hass = Docker("Home Assistant")
|
||||
|
||||
# -------- Extra node / worker --------
|
||||
atlas = Server("atlas.lan\n192.168.1.100\n(extra node / worker)")
|
||||
|
||||
# -------- IoT / devices --------
|
||||
with Cluster("IoT / Clients"):
|
||||
iot_hof = Tablet("hof-E402NA\n192.168.1.214")
|
||||
iot_s380 = Tablet("S380HB\n192.168.1.59")
|
||||
iot_ecb5 = Tablet("ecb5faa56c90\n192.168.1.49")
|
||||
iot_unknown = Tablet("Unknown\n192.168.1.240")
|
||||
|
||||
# -------------------- Tether subnet 192.168.137.x --------------------
|
||||
with Cluster("Tether subnet 192.168.137.0/24"):
|
||||
hermes = Server("hermes.lan\n192.168.137.239\nworker / node")
|
||||
plato = Server("plato.lan\n192.168.137.163\nworker / node")
|
||||
|
||||
# -------------------- Edges / flows --------------------
|
||||
|
||||
# Internet naar router + DNS host
|
||||
internet >> router
|
||||
internet >> dns_host
|
||||
|
||||
# Dev naar Gitea / Traefik / Dokku
|
||||
dev >> Edge(label="git / HTTPS") >> traefik
|
||||
dev >> Edge(label="SSH / HTTPS") >> gitea
|
||||
dev >> Edge(label="Dokku deploys") >> dokku
|
||||
|
||||
# Router naar alle LAN-nodes
|
||||
router >> core_os
|
||||
router >> dns_host
|
||||
router >> ha_host
|
||||
router >> atlas
|
||||
router >> iot_hof
|
||||
router >> iot_s380
|
||||
router >> iot_ecb5
|
||||
router >> iot_unknown
|
||||
|
||||
# Core server services
|
||||
core_os >> traefik
|
||||
core_os >> gitea
|
||||
core_os >> dokku
|
||||
core_os >> auction_fe
|
||||
core_os >> aupi_be
|
||||
core_os >> mi50
|
||||
|
||||
# Infra/DNS services
|
||||
dns_host >> adguard
|
||||
dns_host >> artifactory
|
||||
dns_host >> runner
|
||||
|
||||
# Home Assistant
|
||||
ha_host >> hass
|
||||
|
||||
# DNS-queries
|
||||
core_os >> Edge(label="DNS") >> adguard
|
||||
ha_host >> Edge(label="DNS") >> adguard
|
||||
atlas >> Edge(label="DNS") >> adguard
|
||||
hermes >> Edge(label="DNS") >> adguard
|
||||
plato >> Edge(label="DNS") >> adguard
|
||||
|
||||
# Web traffic / reverse proxy flows
|
||||
internet >> Edge(label="HTTP/HTTPS") >> traefik
|
||||
traefik >> Edge(label="git.appmodel.nl") >> gitea
|
||||
traefik >> Edge(label="auction.appmodel.nl") >> auction_fe
|
||||
traefik >> Edge(label="aupi.appmodel.nl") >> aupi_be
|
||||
traefik >> Edge(label="dokku.lan / apps") >> dokku
|
||||
|
||||
# App-level flow
|
||||
auction_fe >> Edge(label="REST API") >> aupi_be
|
||||
|
||||
# AI workloads
|
||||
dev >> Edge(label="LLM / Tuning / Inference") >> mi50
|
||||
|
||||
# Tether workers verbonden met core (bv. jobs / agents)
|
||||
core_os >> Edge(label="jobs / ssh") >> hermes
|
||||
core_os >> Edge(label="jobs / ssh") >> plato
|
||||
|
||||
Reference in New Issue
Block a user