62 lines
2.0 KiB
Markdown
62 lines
2.0 KiB
Markdown
# ⚡ TECHNO-TODO
|
|
|
|
90s-Terminal/Cyberpunk-Style Todo-App. Bewusst als **Proof-of-Concept** gebaut, um den
|
|
kompletten Selbsthosting-Workflow zu testen:
|
|
|
|
**Gitea (Git) → Dokploy (PaaS) → Docker Swarm → Traefik → Live im LAN**
|
|
|
|
## Tech-Stack
|
|
|
|
- **Runtime:** Node.js 22 (Alpine)
|
|
- **Framework:** Express 4
|
|
- **Datenbank:** SQLite via `better-sqlite3` (bewusst statt PostgreSQL — siehe unten)
|
|
- **Templating:** EJS
|
|
- **Style:** 90s CRT/Neon-Look (grüne Scanlines, pinker Glow, monospace)
|
|
|
|
## Warum SQLite statt PostgreSQL?
|
|
|
|
Die erste Version nutzte PostgreSQL über Dokploy's Datenbank-Provisioning. Dabei traten
|
|
zwei Probleme auf:
|
|
|
|
1. **DB-Service wurde nie gestartet** — der `techno-db` Docker-Service existierte nicht,
|
|
die App crashte mit `ECONNREFUSED` / `ENOTFOUND`.
|
|
2. Der Dokploy-Deploy-Worker hatte zusätzlich einen **abgelaufenen API-Key** und die
|
|
Services waren **out-of-sync** (manuell umbenannt).
|
|
|
|
Für den POC wurde daher auf SQLite umgestellt — **keine externe DB nötig**, die App ist
|
|
in sich abgeschlossen. Für eine Produktiv-App mit echter Datenbank siehe
|
|
[`docs/DEPLOYMENT.md`](docs/DEPLOYMENT.md).
|
|
|
|
## Schnellstart (lokal)
|
|
|
|
```bash
|
|
npm install
|
|
npm start
|
|
# → http://localhost:3000
|
|
```
|
|
|
|
## Schnellstart (Docker)
|
|
|
|
```bash
|
|
docker build -t techno-todo .
|
|
docker run -p 3000:3000 techno-todo
|
|
```
|
|
|
|
## Dokumentation
|
|
|
|
| Datei | Inhalt |
|
|
|-------|--------|
|
|
| [`docs/DEPLOYMENT.md`](docs/DEPLOYMENT.md) | **Komplette Dokploy-Deployment-Anleitung** — nativer Weg (UI/API) + was tatsächlich gemacht wurde |
|
|
| [`docs/AUTODEPLOY.md`](docs/AUTODEPLOY.md) | **Auto-Deploy-Pipeline** — Gitea-Push → automatischer Build + Deploy |
|
|
| [`docs/TROUBLESHOOTING.md`](docs/TROUBLESHOOTING.md) | Alle Fehler, die beim POC aufgetreten sind, und ihre Lösungen |
|
|
| [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) | Netzwerk-Topologie und Infrastruktur-Übersicht |
|
|
|
|
## Live-URL
|
|
|
|
```
|
|
http://techno-todo.192.168.0.184.sslip.io/
|
|
```
|
|
|
|
(Erreichbar aus dem Heimnetz `192.168.0.x`. Die öffentliche IP `152.53.197.186` routet
|
|
aktuell nicht zu Dokploy — siehe `docs/ARCHITECTURE.md`.)
|