2026-08-05 16:14:43 +02:00
2026-08-05 10:55:30 +02:00
2026-08-05 16:14:43 +02:00
2026-08-05 10:55:30 +02:00
2026-08-05 10:55:30 +02:00
2026-08-05 10:55:30 +02:00
2026-08-05 10:55:30 +02:00
2026-08-05 10:55:30 +02:00
2026-08-05 10:55:30 +02:00
2026-08-05 10:55:30 +02:00
2026-08-05 10:55:30 +02:00

TicketTracker

WebApp zum Erfassen von Ticket-Sessions mit Pausen, Minutenrundung und monatlichem Abschlussprozess. Sessions können in Monats- und Tagesansichten ausgewertet, bewertet, geschlossen, wieder geöffnet und gelöscht werden.

Dokumentation

Stack

  • Frontend: Next.js + React + shadcn/ui + Tailwind CSS
  • Backend: Node.js + Express + TypeScript
  • Datenbank: PostgreSQL 17, wahlweise extern via DATABASE_URL oder als Container im Docker-Stack
  • Deployment: ein Docker-Container, Backend serviert das gebaute Frontend

shadcn/ui liefert kopierbare, lokal versionierte React-Komponenten auf Basis von Tailwind CSS. Die App nutzt ein eigenes Dark-Mode-Theme mit responsiven Layouts für Desktop und Mobile.

Lokal starten

Als einzelner lokaler Server auf Port 3910:

npm install
export DATABASE_URL='postgresql://user:pass@localhost:5432/tickettracker'
export ADMIN_USERNAME='admin'
export ADMIN_PASSWORD='ein-sicheres-passwort'
npm run serve:local

Danach ist die App unter http://localhost:3910 erreichbar.

Beim ersten Start wird automatisch ein Admin angelegt, wenn noch keine Benutzer existieren. Ohne ADMIN_PASSWORD wird admin/admin verwendet; das ist nur als Notfall-Fallback gedacht.

Für die getrennte Entwicklung:

npm install
export DATABASE_URL='postgresql://user:pass@localhost:5432/tickettracker'
PORT=3001 npm run dev:backend
API_PROXY_TARGET=http://127.0.0.1:3001 PORT=3910 npm run dev:frontend

Frontend: http://localhost:3910 Backend/API: http://localhost:3001

Docker

Externe PostgreSQL-Datenbank:

docker build -t tickettracker:local .
docker run --rm -p 3910:3000 \
  -e DATABASE_URL='postgresql://user:pass@host:5432/tickettracker' \
  tickettracker:local

Compose mit externer Datenbank:

cp .env.docker-external.example .env.docker-external
docker compose --env-file .env.docker-external -f compose.yml up -d

Compose mit PostgreSQL 17 im Stack:

cp .env.docker-postgres.example .env.docker-postgres
docker compose --env-file .env.docker-postgres -f compose.postgres.yml up -d

Gitea Container Registry

Vor dem ersten Push einmal anmelden:

docker login git.d-razz.de

Dann Image bauen und pushen:

chmod +x scripts/build-and-push-gitea.sh
./scripts/build-and-push-gitea.sh

Auf dem Docker-Server:

docker compose --env-file .env.docker-external -f compose.yml up -d

Wenn noch kein Gitea-Repository existiert, erst in Gitea michael/tickettracker leer anlegen und danach:

chmod +x scripts/init-gitea-repo.sh
./scripts/init-gitea-repo.sh
git branch -M main
git push -u origin main
S
Description
No description provided
Readme
437 KiB
Languages
TypeScript 96.6%
CSS 2.7%
Shell 0.5%
Dockerfile 0.1%
JavaScript 0.1%