# Docker Release TicketTracker kann mit einer externen PostgreSQL-17-Datenbank oder mit PostgreSQL 17 im gleichen Docker-Stack laufen. ## Variante A: Externe PostgreSQL-Datenbank 1. Beispiel-Env kopieren: ```bash cp .env.docker-external.example .env.docker-external ``` 2. `.env.docker-external` anpassen: ```bash DATABASE_URL=postgresql://tickettracker:PASSWORT@10.10.10.23:5432/tickettracker TICKETTRACKER_IMAGE=git.d-razz.de/michael/tickettracker:latest APP_PORT=3910 ``` 3. Stack starten: ```bash docker compose --env-file .env.docker-external -f compose.yml up -d ``` ## Variante B: PostgreSQL 17 im Stack 1. Beispiel-Env kopieren: ```bash cp .env.docker-postgres.example .env.docker-postgres ``` 2. `.env.docker-postgres` anpassen: ```bash POSTGRES_PASSWORD=ein-sicheres-db-passwort TICKETTRACKER_IMAGE=git.d-razz.de/michael/tickettracker:latest APP_PORT=3910 ``` 3. Stack starten: ```bash docker compose --env-file .env.docker-postgres -f compose.postgres.yml up -d ``` Die Datenbankdaten liegen im Docker-Volume `tickettracker_postgres_data`. ## Erstes Setup Admin-Zugangsdaten werden nicht per `.env` gesetzt. Nach dem ersten Start oeffnest du TicketTracker im Browser und landest automatisch auf der Setup-Seite. Dort gibt es zwei Wege: - `Admin anlegen`: festen Admin direkt erstellen und anmelden. - `Backup einspielen`: ein TicketTracker-SQL-Backup hochladen, Struktur pruefen und danach einspielen. Danach meldest du dich mit einem Benutzer aus dem Backup an. Ein Restore ersetzt den kompletten Systemstand. Vor dem Einspielen wird geprueft, ob Dump-Struktur und aktuelle Datenbankstruktur zusammenpassen. Danach werden alle TicketTracker-Tabellen geleert; anschliessend gelten ausschliesslich Benutzer, Passwoerter, Sessions, Settings, Organisationen, fixe Abrechnungen und Abschluesse aus dem Backup. ## Image bauen und in Gitea pushen Einmal am Docker/Gitea-Registry 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 ``` Standard-Image: ```text git.d-razz.de/michael/tickettracker:latest ``` ## Gitea Repository erstellen Da aktuell noch kein Repository auf `git.d-razz.de` existiert: 1. In Gitea als `michael` anmelden. 2. Oben rechts `+` -> `Neues Repository`. 3. Repository-Name: `tickettracker`. 4. Repository leer erstellen, also ohne README, `.gitignore` oder Lizenz. 5. SSH-Key in Gitea hinterlegen, falls noch nicht vorhanden. Danach lokal: ```bash chmod +x scripts/init-gitea-repo.sh ./scripts/init-gitea-repo.sh git branch -M main git push -u origin main ``` Falls du HTTPS statt SSH verwenden willst: ```bash REMOTE_URL=https://git.d-razz.de/michael/tickettracker.git ./scripts/init-gitea-repo.sh git branch -M main git push -u origin main ``` ## Docker-Server / Portainer Stack Wenn der Docker-Server direkt aus Git deployen soll: 1. In Portainer oder Docker-Management `Stack aus Git` wählen. 2. Repository URL eintragen: ```text git@git.d-razz.de:michael/tickettracker.git ``` oder per HTTPS: ```text https://git.d-razz.de/michael/tickettracker.git ``` 3. Compose-Datei wählen: ```text compose.yml ``` für externe DB, oder: ```text compose.postgres.yml ``` für PostgreSQL 17 im Stack. 4. Environment-Variablen aus `.env.docker-external.example` oder `.env.docker-postgres.example` im Stack hinterlegen.