Zum Inhalt springen
Trackr beta
esc
Tippen zum Suchen. ↑ ↓ zum Navigieren, ↵ zum Öffnen.
Self-Hosting

Docker Compose

Betreibe dein eigenes Trackr mit Postgres, einem SMTP-Server und optionalem Objektspeicher. Eine Compose-Datei, vier Container, kein Message-Broker.

Aktualisiert am 1. Sept. 2026 beta 1 Min. Lesezeit

Was du bekommst #

DienstImageRolle
dbpostgres:16-alpineDaten plus Job-Queue. Nur auf 127.0.0.1:5432 veröffentlicht.
appgebaut aus ./webWeb-App, API und Collaboration-Server auf Port 3000. Kein Host-Port; ein Reverse-Proxy davor.
workergebaut aus ./services/workerE-Mails, Webhooks, Push, Digests, Aufräumen.
schedulergebaut aus ./services/schedulerLegt wiederkehrende Jobs in die Queue.

Anhänge landen standardmäßig in einem Docker-Volume oder in einem beliebigen S3-kompatiblen Bucket.

Ausrollen #

  1. Klonen und konfigurieren

    git clone https://github.com/KilicerDev/trackr.git && cd trackr
    cp .env.example .env
    Trage mindestens POSTGRES_PASSWORD, BETTER_AUTH_SECRET (32+ zufällige Zeichen) und das ROOT_*-Konto ein. Alles andere hat einen sinnvollen Standard.
  2. Starten

    docker compose up -d --build
    Der App-Container führt bei jedem Start Migrationen aus und legt das Root-Konto an; beides ist idempotent.
  3. Proxy davorschalten

    Zeige mit deinem Reverse-Proxy auf app:3000 und reiche X-Forwarded-Proto und X-Forwarded-Host weiter. Lass ORIGIN ungesetzt, damit Trackr seine öffentliche URL aus diesen Headern ableitet.
  4. Anmelden

    Öffne deine Domain, melde dich mit dem Root-Konto an, lege deine interne Organisation an und lade das Team ein.

E-Mail #

Setze SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS und EMAIL_FROM. Ist SMTP_HOST leer, protokolliert der Worker E-Mails statt sie zu senden — nützlich für den ersten Lauf.

Speicher #

.env ini
STORAGE_DRIVER=local          # oder s3
STORAGE_LOCAL_DIR=/app/data/attachments
# S3-kompatibel
S3_ENDPOINT=https://s3.eu-central-1.amazonaws.com
S3_REGION=eu-central-1
S3_BUCKET=trackr-attachments
S3_ACCESS_KEY_ID=
S3_SECRET_ACCESS_KEY=
S3_FORCE_PATH_STYLE=false
BODY_SIZE_LIMIT=100M

Aktualisieren #

bash
git pull
docker compose up -d --build

Migrationen laufen beim Start automatisch. Die Go-Dienste migrieren nie; das Schema gehört der Web-App.

Skalierung #

  • worker und scheduler laufen mit beliebig vielen Replikas; die Queue nutzt Zeilensperren, nichts wird doppelt verarbeitet.
  • Der Live-Update-Stream und der Berechtigungs-Cache der Web-App sind Einzelprozess. Betreibe eine app-Replika, oder frag vor dem Skalieren nach.
Diese Seite auf GitHub bearbeiten