Erstes lauffähiges Grundgerüst: Monorepo, Fastify-API, React-Startseite, Docker

This commit is contained in:
2026-07-19 01:14:29 +02:00
parent 657496fe49
commit 7b8723729b
39 changed files with 4388 additions and 15 deletions

View File

@@ -1,12 +1,82 @@
# LaunchPad
LaunchPad is a modern Homelab launcher.
Ein moderner, minimalistischer Homelab-Launcher inspiriert von Raycast, Spotlight, Arc
und Linear. Tippe wenige Buchstaben, finde sofort den gewünschten Dienst, drücke Enter.
## Planned stack
Kein überladenes Dashboard. Keine Kacheln. Im Mittelpunkt steht eine extrem schnelle Suche.
- React + Vite + TypeScript
- Fastify
- SQLite + Drizzle
- Docker Compose
## Quickstart (Docker)
Sprint 1 contains the initial project scaffold.
```bash
git clone <repo-url> LaunchPad
cd LaunchPad
docker compose up -d --build
```
- Frontend: http://localhost:8080
- Backend / Health-API: http://localhost:3001/api/health
## Quickstart (lokale Entwicklung)
Voraussetzungen: Node.js ≥ 20, pnpm ≥ 9.
```bash
pnpm install
pnpm dev:backend # startet Fastify auf :3001
pnpm dev:frontend # startet Vite auf :5173 (proxyt /api zum Backend)
```
## Projektstruktur
```
LaunchPad
├── apps
│ ├── frontend React + Vite + TypeScript + TailwindCSS
│ └── backend Fastify + TypeScript + Drizzle ORM + SQLite
├── packages
│ ├── shared gemeinsame Typen (Device, Service) + Such-Ranking-Logik
│ └── ui gemeinsame UI-Komponenten (SearchInput, StatusBadge)
├── docker zusätzliche Docker-Hilfsdateien
├── docs Projektdokumentation
├── pnpm-workspace.yaml
├── docker-compose.yml
└── tsconfig.base.json
```
## Stand dieses Commits
Dieser erste Commit liefert ein lauffähiges Grundgerüst:
- ✅ pnpm-Monorepo mit `apps/*` und `packages/*`
- ✅ Fastify-Backend mit `/api/health`-Endpunkt
- ✅ SQLite-Datenbank (better-sqlite3) inkl. Schema für `devices`, `services`, `categories`
(Drizzle ORM), automatisch angelegt beim Start
- ✅ React-Startseite mit Suchfeld, Dark-/Light-Mode und Live-Statusanzeige des Backends
- ✅ Tastaturkürzel `/` und `Strg+K` zum Fokussieren der Suche
- ✅ Docker-Compose-Setup: `docker compose up -d --build` startet Frontend + Backend
- ✅ Persistentes Docker-Volume für die SQLite-Datenbank
Noch **nicht** enthalten (folgt in den nächsten Commits):
- Scanner (FritzBox, DNS, HTTP/HTTPS, Portscan, Softwareerkennung)
- CRUD-API für Geräte/Dienste/Kategorien
- Fuzzy-Suche im Frontend gegen echte Daten (Ranking-Logik existiert bereits in
`packages/shared`, ist aber noch nicht ans UI angebunden)
- Adminbereich, Plugin-System, PWA-Manifest, TanStack Router/Query, shadcn/ui, Zod, RHF
Siehe [`docs/ROADMAP.md`](./docs/ROADMAP.md) für die geplante Reihenfolge.
## Deployment auf dem Server (xlc-launchpad)
```bash
cd /opt/LaunchPad
git pull
docker compose up -d --build
```
## Branching
Entwicklung erfolgt ausschließlich auf `dev`. `main` bleibt der stabile Branch.