Initial finance dashboard

This commit is contained in:
kai
2026-09-09 07:49:52 +02:00
commit 729a13bfca
6 changed files with 102 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
__pycache__/
*.pyc
.env
data/
+12
View File
@@ -0,0 +1,12 @@
FROM python:3.13-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY app/ /app/
EXPOSE 8080
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"]
+16
View File
@@ -0,0 +1,16 @@
from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
app = FastAPI(title="Finance Dashboard")
templates = Jinja2Templates(directory="/app/templates")
@app.get("/", response_class=HTMLResponse)
async def index(request: Request):
return templates.TemplateResponse(request=request, name="index.html")
@app.get("/health")
async def health():
return {"status": "ok"}
+57
View File
@@ -0,0 +1,57 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="color-scheme" content="dark">
<title>Finance Dashboard</title>
<style>
* { box-sizing: border-box; }
body {
margin: 0;
min-height: 100vh;
min-height: 100svh;
display: grid;
place-items: center;
padding: 24px;
background: #0c1220;
color: #e8edf5;
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
line-height: 1.6;
}
.card {
width: 100%;
max-width: 620px;
padding: clamp(24px, 6vw, 48px);
border: 1px solid #2a3549;
border-radius: 20px;
background: #151e2e;
box-shadow: 0 20px 60px #00000040;
}
h1 {
margin: 0 0 24px;
font-size: clamp(1.5rem, 5vw, 2.25rem);
line-height: 1.25;
letter-spacing: -0.03em;
}
.status {
margin: 0 0 16px;
color: #86efac;
font-weight: 600;
}
.description { margin: 0; color: #b7c3d5; }
</style>
</head>
<body>
<main class="card">
<h1>💶 Finance Dashboard</h1>
<p class="status">pinguAurora meldet sich zum Dienst.</p>
<p class="description">Hier entsteht dein persönliches Dashboard für Dividenden, Zinsen, Depot und Notgroschen.</p>
</main>
</body>
</html>
+10
View File
@@ -0,0 +1,10 @@
services:
finance-dashboard:
build: .
container_name: finance-dashboard
restart: unless-stopped
ports:
- "8081:8080"
volumes:
- ./data:/data
mem_limit: 128m
+3
View File
@@ -0,0 +1,3 @@
fastapi
uvicorn[standard]
jinja2