Geldstück
Zur Website
Docker-Installation

Geldstück auf deinem Server starten.

Web-App, API und PostgreSQL laufen als drei getrennte Container. Die folgende Einrichtung benötigt nur Docker mit Docker Compose.

01 Dateien anlegen02 Schlüssel setzen03 Container starten04 Konto anlegen
Vorbereitung

Docker Engine oder Docker Desktop mit dem Befehl docker compose. Für einen öffentlichen Server außerdem eine Domain und einen Reverse Proxy mit HTTPS.

01

Projektordner erstellen

Lege einen eigenen Ordner an. Darin werden anschließend die Compose-Datei und deine Umgebungsvariablen gespeichert.

Terminal
mkdir geldstueck
cd geldstueck
02

.env mit deinen Schlüsseln anlegen

Die Datei muss exakt .env heißen und im selben Ordner wie docker-compose.yml liegen. Achte unter Windows darauf, dass sie nicht versehentlich als .env.txt gespeichert wird.

Windows PowerShell

Terminal
New-Item .env -ItemType File
notepad .env

Linux oder macOS

Terminal
touch .env
nano .env

POSTGRES_PASSWORD schützt die Datenbank. JWT_SECRET signiert Anmeldungen. Mit REGISTRATION_SECRET dürfen neue Konten erstellt werden. Kopiere den folgenden Inhalt in die neue Datei und ersetze alle drei Platzhalter durch unterschiedliche Zufallswerte.

.env
POSTGRES_DB=geldstueck
POSTGRES_USER=geldstueck
POSTGRES_PASSWORD=HIER_EIN_STARKES_DATENBANKPASSWORT
JWT_SECRET=HIER_EINEN_LANGEN_ZUFAELLIGEN_JWT_SCHLUESSEL
REGISTRATION_SECRET=HIER_DEINEN_REGISTRIERUNGSSCHLUESSEL
03

docker-compose.yml anlegen

Speichere diese Datei direkt neben .env. Ein Ausdruck wie ${POSTGRES_PASSWORD} verweist auf den gleichnamigen Wert aus .env. Der Abschnitt environment übergibt den aufgelösten Wert anschließend an den jeweiligen Container. Die Datenbank ist nur intern erreichbar. API und Web-App werden auf den Ports 3000 und 8080 veröffentlicht.

docker-compose.yml
services:
  database:
    image: postgres:17-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: ${POSTGRES_DB}
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - money-data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
      interval: 5s
      timeout: 5s
      retries: 12

  server:
    image: techbygiusi/geldstueck-server:latest
    restart: unless-stopped
    environment:
      DATABASE_URL: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@database:5432/${POSTGRES_DB}
      JWT_SECRET: ${JWT_SECRET}
      REGISTRATION_SECRET: ${REGISTRATION_SECRET}
      PORT: 3000
    depends_on:
      database:
        condition: service_healthy
    ports:
      - "3000:3000"

  web:
    image: techbygiusi/geldstueck-web:latest
    restart: unless-stopped
    depends_on:
      - server
    ports:
      - "8080:80"

volumes:
  money-data:
04

Images laden und starten

Führe die Befehle im Ordner aus, der .env und docker-compose.yml enthält. Die ausdrückliche Angabe von .env macht sichtbar, welche Datei verwendet wird.

Terminal
docker compose --env-file .env config
docker compose --env-file .env pull
docker compose --env-file .env up -d
docker compose --env-file .env ps
Web-Apphttp://DEINE-SERVER-IP:8080API-Statushttp://DEINE-SERVER-IP:3000/health
05

Web-App mit dem Server verbinden

  1. Öffne die Web-App auf Port 8080.
  2. Trage als Serveradresse http://DEINE-SERVER-IP:3000 ein.
  3. Wähle „Registrieren“ und verwende den Wert aus REGISTRATION_SECRET.
  4. Lege Name, E-Mail und Passwort für dein Konto fest.
06

Aktualisieren und sichern

Update

Terminal
docker compose pull
docker compose up -d

Datenbank-Backup

Terminal
docker compose exec -T database pg_dump -U geldstueck geldstueck > geldstueck-backup.sql
Sicher betreiben

Vor einer Veröffentlichung im Internet