This commit is contained in:
Aron Petau 2025-11-05 15:01:31 +01:00
parent 000ec5d25f
commit 9b4e0f3042
3 changed files with 134 additions and 0 deletions

55
images/README.md Normal file
View file

@ -0,0 +1,55 @@
# Architecture Diagrams
This folder contains visual representations of the studio einszwovier platform architecture.
## Files
### `architecture.png`
High-resolution PNG diagram showing the complete platform architecture including:
- **Web Platform** - Landing page, About page, Cost calculator
- **Services** - BookStack, Open WebUI, JupyterHub, Forgejo, Element Web, Portainer
- **Backend** - Synapse Matrix server, Ollama LLM engine, MariaDB database
- **Educational Resources** - Drone programming, Git repositories, Documentation
- **Storage** - Persistent data for all services
- **Infrastructure** - Watchtower auto-updates, Docker network
**Specifications:**
- Resolution: 2400x1600 pixels
- Format: PNG with transparent background
- Size: ~242 KB
- Generated from: `architecture.mmd`
### `architecture.mmd`
Source Mermaid diagram file. This is the plain-text definition used to generate the PNG.
## Regenerating the Diagram
To regenerate the PNG from the Mermaid source:
```bash
# Install mermaid-cli if needed
npm install -g @mermaid-js/mermaid-cli
# Generate PNG
mmdc -i images/architecture.mmd -o images/architecture.png -w 2400 -H 1600 -b transparent
```
## Usage
The PNG is embedded in the main [README.md](../README.md) file under the "Architecture" section. It provides a visual overview for developers, contributors, and users to understand how all services interconnect.
## Updating
When the architecture changes:
1. Update the Mermaid diagram in [README.md](../README.md)
2. Copy the updated diagram to `architecture.mmd`
3. Regenerate the PNG using the command above
4. Commit both files to git
---
**Maintained by studio einszwovier**

79
images/architecture.mmd Normal file
View file

@ -0,0 +1,79 @@
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

BIN
images/architecture.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 KiB