2.7 KiB
2.7 KiB
webapp_124
Minimal FastAPI-based PDF print-cost calculator with optional ink-coverage adjustment.
This project is part of Studio EinsZwoVier, a collaborative environment. Everyone is invited to contribute improvements. See the source code.
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.localfor local services if the server is moved, replace with new host
Run the Stack
docker-compose up --build -d
graph TD
%% --- Subgraphs for clarity ---
subgraph WebApp ["Studio EinsZwoVier - Internal Web Pages"]
LP[Landing Page<br>studio-einszwovier.local]
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]
end
subgraph MatrixServer ["Matrix Server"]
MatrixSrv[Matrix Server<br>Collects print jobs & payments]
end
subgraph DocmostServer ["Docmost Server"]
DocmostSrv[Docmost Server<br>Manages manuals & docs]
end
subgraph AdminPanel ["Administration"]
Portainer[Portainer Admin Panel<br>:9000]
end
%% --- Landing page links ---
LP --> About
LP --> CostCalc
LP --> Mailto
LP --> DocmostPage
LP --> ChatbotPage
LP --> Portainer
%% --- Cost Calculator workflow ---
CostCalc --> PDF[PDF Upload]
PDF --> Quote[Generate Quote]
Quote --> MatrixSrv
%% --- Docmost workflow ---
DocmostPage --> DocmostSrv
%% --- Chatbot workflow ---
ChatbotPage --> Ollama[Ollama AI Server<br>:11434]
ChatbotPage --> OpenWebUI[Open WebUI<br>:8080]
%% --- 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;