Files
Materialschein/gitops/stack.yml
T
Fidelis HuberandClaude Sonnet 5 97c4aa1c68
Build and Deploy / version (push) Successful in 1s
Build and Deploy / build (push) Successful in 21s
Build and Deploy / deploy (push) Successful in 1s
Add local username/password login as fallback when Microsoft login isn't available
Neues "users"-Table (bcrypt-Hash, nie Klartext), POST /api/auth/login gibt ein
selbst-signiertes JWT (HS256) aus. requireAuth unterscheidet MSAL- (RS256) und
lokale Tokens (HS256) anhand des alg-Headers. Server legt beim Start optional
ein erstes lokales Konto an, wenn SEED_ADMIN_USERNAME/SEED_ADMIN_PASSWORD als
Stack-Env gesetzt sind (idempotent, Klartext-Passwort landet nie im Repo).

Frontend: Login-Screen hat jetzt einen Alternativ-Link zu Benutzername/Passwort,
App.tsx kombiniert MSAL- und lokalen Auth-Status.

Temporärer test-build-only.yml Workflow zur Docker-Build-Verifikation ohne
Registry-Push (wird nach dem Test wieder entfernt).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 17:56:40 +02:00

43 lines
1.4 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# git-backed Portainer-Stack für BergVOLT Materialschein.
# Nie im Portainer-Editor bearbeiten Änderungen gehen über commit + push
# (siehe deploy-standard README). image:-Tag wird von der CI per Commit-back
# auf :<version> gepinnt, der Bootstrap-Wert unten ist nur für den ersten Push.
networks:
dockernetwork:
external: true
services:
web:
image: git.prox.ws/bergvolt/materialschein:1.0.8
container_name: tools_bergvolt_at-materialschein
restart: unless-stopped
networks:
- dockernetwork
expose:
- "80"
environment:
DATABASE_URL: postgresql://materialschein:${POSTGRES_PASSWORD}@tools_bergvolt_at-db:5432/materialschein
MSAL_CLIENT_ID: b1cd974c-77ce-4d93-b6e8-00e41a31adc8
MSAL_TENANT_ID: d9adeaaf-853b-4c4e-a822-8f1bedbb84f6
PORT: "80"
# Lokaler Login-Fallback (siehe README "Lokales Konto"):
JWT_SECRET: ${JWT_SECRET}
SEED_ADMIN_USERNAME: ${SEED_ADMIN_USERNAME}
SEED_ADMIN_PASSWORD: ${SEED_ADMIN_PASSWORD}
depends_on:
- db
db:
image: postgres:16-alpine
container_name: tools_bergvolt_at-db
restart: unless-stopped
networks:
- dockernetwork
environment:
POSTGRES_USER: materialschein
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: materialschein
volumes:
- /docker/materialschein/pgdata:/var/lib/postgresql/data