TimeKeeper Pro Backend - Timetracking for Employees
1.1K
Diese Anleitung zeigt, wie TimeKeeper Pro allein mit den fertigen Docker-Hub-Images betrieben wird – ohne Anbindung an ein externes Portal/Keymaster-System. Die Anmeldung erfolgt klassisch per E-Mail/Passwort.
Images:
dockitmed/time-keeper-pro-tk_backend:latestdockitmed/time-keeper-pro-tk_frontend:latest3000)mkdir timekeeper-pro && cd timekeeper-pro
.env Datei anlegen# --- Datenbank ---
POSTGRES_DB=zeitflow
POSTGRES_USER=zeitflow
POSTGRES_PASSWORD=change-me-db-password
# --- Backend / JWT ---
SECRET_KEY=change-me-to-a-long-random-string
ACCESS_TOKEN_EXPIRE_MINUTES=60
CORS_ORIGINS=["http://localhost:3000"]
# --- Initialer Admin-Benutzer (wird beim ersten Start automatisch angelegt) ---
[email protected]
INITIAL_ADMIN_PASSWORD=change-me-admin-password
INITIAL_ADMIN_FIRST_NAME=Admin
INITIAL_ADMIN_LAST_NAME=User
INITIAL_ADMIN_DEPARTMENT=IT
PORTAL_AUTH_ENABLED wird bewusst weggelassen – der Backend-Standardwert ist false, damit ist die Standard-Anmeldung per E-Mail/Passwort aktiv.
docker-compose.ymlservices:
db:
image: postgres:16-alpine
container_name: timekeeper-db
restart: always
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"]
interval: 10s
timeout: 5s
retries: 5
backend:
image: dockitmed/time-keeper-pro-tk_backend:latest
container_name: timekeeper-backend
restart: always
depends_on:
db:
condition: service_healthy
environment:
DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}
SECRET_KEY: ${SECRET_KEY}
ACCESS_TOKEN_EXPIRE_MINUTES: ${ACCESS_TOKEN_EXPIRE_MINUTES:-60}
CORS_ORIGINS: ${CORS_ORIGINS}
INITIAL_ADMIN_EMAIL: ${INITIAL_ADMIN_EMAIL}
INITIAL_ADMIN_PASSWORD: ${INITIAL_ADMIN_PASSWORD}
INITIAL_ADMIN_FIRST_NAME: ${INITIAL_ADMIN_FIRST_NAME:-Admin}
INITIAL_ADMIN_LAST_NAME: ${INITIAL_ADMIN_LAST_NAME:-User}
INITIAL_ADMIN_DEPARTMENT: ${INITIAL_ADMIN_DEPARTMENT:-IT}
DEBUG: "False"
frontend:
image: dockitmed/time-keeper-pro-tk_frontend:latest
container_name: timekeeper-frontend
restart: unless-stopped
depends_on:
- backend
ports:
- "3000:80"
environment:
VITE_API_URL: /api
VITE_BASE_PATH: /
BACKEND_HOST: backend
BACKEND_PORT: "8000"
volumes:
postgres_data:
docker compose up -d
docker compose ps
Die Anwendung ist danach unter http://localhost:3000 erreichbar. Der in INITIAL_ADMIN_EMAIL/INITIAL_ADMIN_PASSWORD hinterlegte Benutzer wird beim ersten Start automatisch als Admin angelegt – damit direkt einloggen.
Nach dem Login als Admin: Mitarbeiter → Benutzer anlegen. Ein eigenes Passwort setzt jeder Benutzer über Passwort ändern; ein separates Anmeldesystem (Portal/SSO) wird in diesem Setup nicht benötigt.
SECRET_KEY und POSTGRES_PASSWORD unbedingt auf zufällige, projektspezifische Werte setzen.CORS_ORIGINS an die tatsächliche Domain anpassen, z. B. ["https://timekeeper.example.com"].frontend-Container schalten./api/-Anfragen intern an backend:8000 weiterleitet) ist per Port-Mapping erreichbar.postgres_data – für Backups dieses Volume sichern (docker run --rm -v <volume>:/data -v $PWD:/backup alpine tar czf /backup/db-backup.tar.gz /data o. Ä.).Content type
Image
Digest
sha256:48a30da83…
Size
164.2 MB
Last updated
13 days ago
docker pull dockitmed/time-keeper-pro-tk_backend