# 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 einspielen. Danach meldest du dich mit einem Benutzer aus dem Backup an. Ein Restore ersetzt den kompletten Systemstand. Vor dem Einspielen werden alle TicketTracker-Tabellen geleert; danach 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.