No description
Find a file
2025-10-02 12:20:11 +02:00
__pycache__ design final 2025-10-02 12:20:11 +02:00
data design final 2025-10-02 12:20:11 +02:00
docmost design final 2025-10-02 12:20:11 +02:00
matrix design final 2025-10-02 12:20:11 +02:00
static design final 2025-10-02 12:20:11 +02:00
templates design final 2025-10-02 12:20:11 +02:00
.DS_Store design final 2025-10-02 12:20:11 +02:00
.gitignore design final 2025-10-02 12:20:11 +02:00
cost_calculator.py working prototype 2025-09-17 16:35:11 +02:00
docker-compose.yml design final 2025-10-02 12:20:11 +02:00
Dockerfile design final 2025-10-02 12:20:11 +02:00
get_room_id.py working prototype 2025-09-17 16:35:11 +02:00
mailer.py design final 2025-10-02 12:20:11 +02:00
main.py design final 2025-10-02 12:20:11 +02:00
README.md design final 2025-10-02 12:20:11 +02:00
requirements.txt design final 2025-10-02 12:20:11 +02:00
run_app.py working prototype 2025-09-17 16:35:11 +02:00
test_send_pdf.py working prototype 2025-09-17 16:35:11 +02:00

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.local for 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;