Gutscheintracker

Private Gutscheinverwaltung (Next.js + SQLite + Prisma). Ein Shared-Login für den Haushalt, Erinnerungen per Mail/Telegram.

Start (Docker Compose)

cp .env.example .env   # Werte ausfüllen (v. a. APP_PASSWORD_HASH, SESSION_SECRET, CRON_SECRET, APP_URL, LOGO_DEV_* für Logos)
docker compose up --build -d

App: http://localhost:3000 — Login mit APP_USER und dem Passwort zu APP_PASSWORD_HASH.

Der Erinnerungs-Scheduler startet automatisch im Production-Prozess (instrumentation.ts → lib/scheduler.ts, alle 15 Minuten, APP_URL als Basis).

Update

git pull
docker compose up --build -d

Backup

Die SQLite-Datei liegt im Volume gutschein-data unter /data/gutscheine.db:

docker cp gutscheintracker-app-1:/data/gutscheine.db ./gutscheine-backup.db
# oder Volume direkt kopieren
docker run --rm -v gutschein-data:/data -v "$PWD":/backup alpine cp /data/gutscheine.db /backup/gutscheine-backup.db

Reverse Proxy

Für HTTPS einen Reverse Proxy (z. B. Caddy/Nginx) vor Port 3000 schalten und APP_URL auf die öffentliche URL setzen, damit der Scheduler die Cron-Route über die richtige Basis-URL aufruft.

Entwicklung

npm ci
npx prisma generate
npm run dev
npm test
npm run build
S
Description
Private Gutscheinverwaltung für Haushalte (Next.js + SQLite + Caddy) – rootless Docker-Image, Deployment per Registry.
Readme
285 KiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 99.2%
Dockerfile 0.5%
CSS 0.3%