124-webapp/images/architecture.mmd
2025-11-05 15:01:58 +01:00

79 lines
2.8 KiB
Text
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

graph TB
subgraph "studio einszwovier Web Platform"
LP[🏠 Landing Page<br/>Port 80]
About[ About Page<br/>/about]
CostCalc[💰 Cost Calculator<br/>/cost]
LP --> About
LP --> CostCalc
end
subgraph "Services Accessible from Landing Page"
BookStack[📚 BookStack<br/>Port 6875<br/>Wissenssammlung]
OpenWebUI[🤖 Open WebUI<br/>Port 8080<br/>LLM Chatbot]
JupyterHub[📓 JupyterHub<br/>Port 8001<br/>Python Notebooks]
Forgejo[🦊 Forgejo<br/>Port 3003<br/>Git Server]
ElementWeb[💬 Element Web<br/>Port 8082<br/>Matrix Chat]
Portainer[🐳 Portainer<br/>Port 9000<br/>Admin Panel]
LP -.->|Link| BookStack
LP -.->|Link| OpenWebUI
LP -.->|Link| JupyterHub
LP -.->|Link| Forgejo
LP -.->|Link| ElementWeb
LP -.->|Link| Portainer
end
subgraph "Backend Services"
Synapse[📨 Synapse<br/>Port 8008<br/>Matrix Server]
Ollama[🔮 Ollama<br/>Port 11434<br/>LLM Engine]
MariaDB[(💾 MariaDB<br/>BookStack DB)]
ElementWeb --> Synapse
OpenWebUI --> Ollama
BookStack --> MariaDB
CostCalc --> Synapse
end
subgraph "Educational Resources"
Notebooks[📒 Drone Programming<br/>djitellopy Package]
GitRepos[📦 Code Repositories<br/>Project Source]
Knowledge[📖 Documentation<br/>Guides & Tutorials]
JupyterHub --> Notebooks
Forgejo --> GitRepos
BookStack --> Knowledge
end
subgraph "Persistent Storage"
PDFUploads[📁 PDF Files<br/>data/uploads/]
CoursesCSV[📋 Courses CSV<br/>data/courses.csv]
MatrixData[(🗄️ Matrix Data<br/>matrix/data/)]
JupyterVols[(💾 Jupyter Volumes<br/>User Workspaces)]
ForgejoData[(📚 Forgejo Data<br/>forgejo/data/)]
CostCalc --> PDFUploads
About --> CoursesCSV
Synapse --> MatrixData
JupyterHub --> JupyterVols
Forgejo --> ForgejoData
end
subgraph "Infrastructure"
Watchtower[🔄 Watchtower<br/>Auto-Updates<br/>Every 24h]
Network[🌐 einszwovier_network<br/>Docker Network]
end
classDef webapp fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef service fill:#fff3e0,stroke:#f57c00,stroke-width:2px
classDef backend fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef storage fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef edu fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef infra fill:#fafafa,stroke:#616161,stroke-width:2px
class LP,About,CostCalc webapp
class BookStack,OpenWebUI,JupyterHub,Forgejo,ElementWeb,Portainer service
class Synapse,Ollama,MariaDB backend
class PDFUploads,CoursesCSV,MatrixData,JupyterVols,ForgejoData storage
class Notebooks,GitRepos,Knowledge edu
class Watchtower,Network infra