Umstellung auf Next.js (App Router), Design analog werte-next

Führt das getrennte React/Vite-Frontend und Express/MongoDB-Backend in
eine einzelne Next.js-Anwendung zusammen:

- UI: React-Client-Komponenten (TabLayout, AppointmentForm, -List,
  ConfirmationModal) im Look von werte-next (Farben #CCCCFF/#85B7D7/
  #FFFFDD, Rahmenbox, Tabellen-Liste, Footer mit Version/Datum)
- API: Next.js Route Handler unter /api/appointments (GET/POST/PUT/DELETE,
  Soft-Delete beibehalten)
- DB: MongoDB via lib/db.ts (gecachter Client, Standard appointmentsdb)
- Tailwind 4 + TypeScript, Standalone-Docker-Build wie werte-next
- Druckansicht der aktuellen offenen Termine beibehalten
- Deployment: Dockerfile (multi-stage), docker-compose(.prod), deploy.sh

Entfernt die alten frontend/- und backend/-Verzeichnisse.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-01 14:24:34 +02:00
parent 91a31f04b1
commit 1a0fe18e89
55 changed files with 8216 additions and 1756 deletions
+10 -13
View File
@@ -1,19 +1,16 @@
# Vorlage für die Produktionsumgebung.
# Vorlage für die Umgebungsvariablen.
# Kopieren nach .env und Werte anpassen: cp .env.example .env
# --- MongoDB Zugangsdaten (werden beim ersten Start der DB angelegt) ---
# --- MongoDB ---
# Verbindungs-URI. Die Datenbank wird aus der URI abgeleitet.
# Lokal: mongodb://localhost:27017/appointmentsdb
# Docker: mongodb://<user>:<passwd>@mongodb:27017/appointmentsdb?authSource=admin
MONGO_URI=mongodb://localhost:27017/appointmentsdb
# --- MongoDB Root-Zugangsdaten (nur für docker-compose, DB-Erstanlage) ---
MONGO_ROOT_USER=root
MONGO_ROOT_PASSWD=bitte-aendern
# --- Frontend ---
# Host-Port, unter dem die App erreichbar ist (Standard: 80)
FRONTEND_PORT=80
# --- Images (nur für docker-compose.images.yml) ---
# Tag der Images aus docker.citysensor.de (Standard: latest)
# IMAGE_TAG=latest
# --- Backend / CORS ---
# Nur nötig, falls das Frontend NICHT über denselben Host/nginx-Proxy läuft.
# Standardmäßig nicht erforderlich. Mehrere Origins kommagetrennt, "*" für alle.
# CORS_ORIGIN=https://meine-domain.de
# Host-Port, unter dem die App erreichbar ist (Standard: 3000)
APP_PORT=3000