Initial TicketTracker release
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
# 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
|
||||
|
||||
- [Benutzeranleitung](docs/user-guide.md)
|
||||
- [Docker Release / Gitea Deployment](docs/docker-release.md)
|
||||
|
||||
## 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`:
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
docker login git.d-razz.de
|
||||
```
|
||||
|
||||
Dann Image bauen und pushen:
|
||||
|
||||
```bash
|
||||
chmod +x scripts/build-and-push-gitea.sh
|
||||
./scripts/build-and-push-gitea.sh
|
||||
```
|
||||
|
||||
Auf dem Docker-Server:
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
chmod +x scripts/init-gitea-repo.sh
|
||||
./scripts/init-gitea-repo.sh
|
||||
git branch -M main
|
||||
git push -u origin main
|
||||
```
|
||||
Reference in New Issue
Block a user