⚡ 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.

Schnellstart (lokal)

npm install
npm start
# → http://localhost:3000

Schnellstart (Docker)

docker build -t techno-todo .
docker run -p 3000:3000 techno-todo

Dokumentation

Datei Inhalt
docs/DEPLOYMENT.md Komplette Dokploy-Deployment-Anleitung — nativer Weg (UI/API) + was tatsächlich gemacht wurde
docs/AUTODEPLOY.md Auto-Deploy-Pipeline — Gitea-Push → automatischer Build + Deploy
docs/TROUBLESHOOTING.md Alle Fehler, die beim POC aufgetreten sind, und ihre Lösungen
docs/ARCHITECTURE.md Netzwerk-Topologie und Infrastruktur-Übersicht

Live-URL

Typ URL
Öffentlich https://todo.kgessner.de
LAN http://techno-todo.192.168.0.184.sslip.io/

todo.kgessner.de wird über einen Reverse-Proxy (öffentliche IP 152.53.197.186) auf 192.168.0.184:80 geleitet. Damit Traefik den Request annimmt, muss todo.kgessner.de als Host in der Traefik-Routing-Regel stehen (siehe docs/ARCHITECTURE.md).

S
Description
⚡ 90s Techno-Style Todo App — POC for Dokploy deployment
Readme
59 KiB
Languages
EJS 77.6%
JavaScript 19.8%
Dockerfile 2.6%