Etappe 1: Container-Infrastruktur + udev-Erkennung

- Docker Compose mit 5 Containern (api, worker, ui, postgres, redis)
- Basis-Dockerfiles für FastAPI, Celery, React/Vite, PostgreSQL, Redis
- udev-Regel + Python-Daemon für Disc-Einwurf-Erkennung
- Device-Resolver (UUID/Serial → /dev/disc/<uuid>)
- Celery-Worker mit Dummy-Job-Task (Disc-Erkennung)
- .env.example mit Umgebungsvariablen
- .gitignore für Docker, .env, node_modules
- README, SAVEPOINT, ROADMAP aktualisiert
This commit is contained in:
Hitonabi
2026-07-21 14:59:09 +02:00
parent cbe7d2b9c3
commit 5d23b1e6c8
22 changed files with 607 additions and 34 deletions
+23
View File
@@ -0,0 +1,23 @@
FROM python:3.12-slim
WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends \
curl \
&& rm -rf /var/lib/apt/lists/*
RUN pip install --no-cache-dir \
fastapi==0.115.0 \
uvicorn==0.30.0 \
psycopg2-binary==2.9.9 \
pydantic==2.9.0 \
python-dotenv==1.0.1
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY main.py .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
+23
View File
@@ -0,0 +1,23 @@
from fastapi import FastAPI
from fastapi.responses import JSONResponse
import os
app = FastAPI(
title="Rippy API",
description="API für das automatische Ripping-System",
version="1.0.0"
)
@app.get("/health")
async def health_check():
return {"status": "ok", "service": "api"}
@app.get("/")
async def root():
return {
"name": "Rippy",
"version": "1.0.0",
"description": "Automatisches Ripping-System für CD, DVD und Blu-ray"
}
+5
View File
@@ -0,0 +1,5 @@
fastapi==0.115.0
uvicorn==0.30.0
psycopg2-binary==2.9.9
pydantic==2.9.0
python-dotenv==1.0.1