2025-10-02 12:20:11 +02:00
|
|
|
# webapp_124
|
2025-09-11 16:01:32 +02:00
|
|
|
|
2025-10-02 12:20:11 +02:00
|
|
|
Minimal **FastAPI**-based PDF print-cost calculator with optional ink-coverage adjustment.
|
2025-09-11 16:01:32 +02:00
|
|
|
|
2025-10-02 12:20:11 +02:00
|
|
|
This project is part of **Studio EinsZwoVier**, a collaborative environment.
|
|
|
|
|
Everyone is invited to contribute improvements. See the [source code](https://forgejo.petau.net/aron/124-webapp).
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Features
|
|
|
|
|
|
|
|
|
|
- **Landing Page**: Overview of all available tools and links.
|
|
|
|
|
- **Cost Calculator**: Calculate print and material costs for posters and large-format prints.
|
|
|
|
|
- **Docmost / Wissenssammlung**: Shared knowledge library for manuals and documentation.
|
|
|
|
|
- **Local Chatbot**: Access your own Large Language Models via Open WebUI and Ollama.
|
|
|
|
|
- **Matrix Server**: Collects print jobs and payments.
|
|
|
|
|
- **Administration**: Manage the Docker stack via Portainer.
|
|
|
|
|
- **Automatic Updates**: Watchtower updates all containers every 24 hours and cleans up old images.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Getting Started
|
|
|
|
|
|
|
|
|
|
### Prerequisites
|
|
|
|
|
|
|
|
|
|
- Docker & Docker Compose installed
|
|
|
|
|
- Optional: local network access to `einszwovier.local` for local services
|
|
|
|
|
if the server is moved, replace with new host
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### Run the Stack
|
2025-09-11 16:01:32 +02:00
|
|
|
|
|
|
|
|
```bash
|
2025-10-02 12:20:11 +02:00
|
|
|
docker-compose up --build -d
|
2025-09-11 16:01:32 +02:00
|
|
|
|
2025-09-17 19:12:31 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
graph TD
|
2025-10-02 12:20:11 +02:00
|
|
|
%% --- Subgraphs for clarity ---
|
|
|
|
|
subgraph WebApp ["Studio EinsZwoVier - Internal Web Pages"]
|
2025-09-17 19:21:22 +02:00
|
|
|
LP[Landing Page<br>studio-einszwovier.local]
|
2025-10-02 12:20:11 +02:00
|
|
|
About[About Page<br>/about]
|
|
|
|
|
CostCalc[Cost Calculator<br>/cost]
|
|
|
|
|
Mailto[Contact Email<br>mailto:einszwovier@gvb-gymnasium.de]
|
|
|
|
|
DocmostPage[Wissenssammlung<br>Docmost @ :3000]
|
|
|
|
|
ChatbotPage[Lokaler Chatbot<br>:8080]
|
2025-09-17 19:21:22 +02:00
|
|
|
end
|
|
|
|
|
|
2025-10-02 12:20:11 +02:00
|
|
|
subgraph MatrixServer ["Matrix Server"]
|
|
|
|
|
MatrixSrv[Matrix Server<br>Collects print jobs & payments]
|
2025-09-17 19:21:22 +02:00
|
|
|
end
|
|
|
|
|
|
2025-10-02 12:20:11 +02:00
|
|
|
subgraph DocmostServer ["Docmost Server"]
|
|
|
|
|
DocmostSrv[Docmost Server<br>Manages manuals & docs]
|
2025-09-17 19:21:22 +02:00
|
|
|
end
|
|
|
|
|
|
2025-10-02 12:20:11 +02:00
|
|
|
subgraph AdminPanel ["Administration"]
|
|
|
|
|
Portainer[Portainer Admin Panel<br>:9000]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
%% --- Landing page links ---
|
2025-09-17 19:21:22 +02:00
|
|
|
LP --> About
|
|
|
|
|
LP --> CostCalc
|
|
|
|
|
LP --> Mailto
|
2025-10-02 12:20:11 +02:00
|
|
|
LP --> DocmostPage
|
|
|
|
|
LP --> ChatbotPage
|
|
|
|
|
LP --> Portainer
|
2025-09-17 19:21:22 +02:00
|
|
|
|
2025-10-02 12:20:11 +02:00
|
|
|
%% --- Cost Calculator workflow ---
|
|
|
|
|
CostCalc --> PDF[PDF Upload]
|
2025-09-17 19:21:22 +02:00
|
|
|
PDF --> Quote[Generate Quote]
|
2025-10-02 12:20:11 +02:00
|
|
|
Quote --> MatrixSrv
|
|
|
|
|
|
|
|
|
|
%% --- Docmost workflow ---
|
|
|
|
|
DocmostPage --> DocmostSrv
|
2025-09-17 19:21:22 +02:00
|
|
|
|
2025-10-02 12:20:11 +02:00
|
|
|
%% --- Chatbot workflow ---
|
|
|
|
|
ChatbotPage --> Ollama[Ollama AI Server<br>:11434]
|
|
|
|
|
ChatbotPage --> OpenWebUI[Open WebUI<br>:8080]
|
2025-09-17 19:21:22 +02:00
|
|
|
|
2025-10-02 12:20:11 +02:00
|
|
|
%% --- Optional styling for clarity ---
|
|
|
|
|
classDef internal fill:#e3f2fd,stroke:#90caf9,stroke-width:1px;
|
|
|
|
|
classDef external fill:#fff3e0,stroke:#ffb74d,stroke-width:1px;
|
|
|
|
|
class LP,About,CostCalc,Mailto,DocmostPage,ChatbotPage internal;
|
|
|
|
|
class MatrixSrv,DocmostSrv,Ollama,OpenWebUI,Portainer external;
|