Files
tickettracker/docs/docker-release.md
T

142 lines
3.3 KiB
Markdown

# 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.