Fix auth redirects and add rebuild startup scripts

This commit is contained in:
Nirodan
2026-01-22 12:02:37 +01:00
parent 1263f9d2ef
commit 9d7e0023f4
6 changed files with 43 additions and 9 deletions
+6 -5
View File
@@ -4,14 +4,15 @@ services:
context: . context: .
dockerfile: Dockerfile dockerfile: Dockerfile
ports: ports:
- "5000:5000" - "5050:5000"
environment: environment:
- SECRET_KEY=dev-change-me - SECRET_KEY=dev-change-me
- DB_CONFIG_PATH=/config/db_config.json - DB_CONFIG_PATH=/config/db_config.json
volumes: volumes:
- ./backend:/app/backend - config-data:/config
- ./frontend:/app/frontend - logs-data:/app/backend/logs
- ./backend/config:/config
- ./logs:/app/backend/logs
working_dir: /app/backend working_dir: /app/backend
command: python app.py command: python app.py
volumes:
config-data:
logs-data:
+4 -2
View File
@@ -9,10 +9,12 @@ function LoginForm() {
const login = async () => { const login = async () => {
try { try {
const res = await axios.post('/login', { username, password }); const res = await axios.post('/api/login', { username, password });
localStorage.setItem('token', res.data.token); localStorage.setItem('token', res.data.token);
localStorage.setItem('role', res.data.role); localStorage.setItem('role', res.data.role);
navigate('/'); navigate('/', { replace: true });
// ensure nav + route state reflect the new token immediately
window.location.href = '/';
} catch (err) { } catch (err) {
alert('Login fehlgeschlagen'); alert('Login fehlgeschlagen');
} }
+1 -1
View File
@@ -6,7 +6,7 @@ function LogoutButton() {
const logout = async () => { const logout = async () => {
try { try {
await axios.post('/logout'); // sendet POST an /api/logout await axios.post('/api/logout');
} catch (err) { } catch (err) {
console.warn('Logout-Request fehlgeschlagen, ignoriere...'); console.warn('Logout-Request fehlgeschlagen, ignoriere...');
} }
+1 -1
View File
@@ -7,7 +7,7 @@ function Md5Tool() {
const hashPassword = async () => { const hashPassword = async () => {
try { try {
const res = await axios.post('/hash/md5', { password: input }); const res = await axios.post('/api/hash/md5', { password: input });
setResult(res.data.md5); setResult(res.data.md5);
} catch (err) { } catch (err) {
+15
View File
@@ -0,0 +1,15 @@
@echo off
setlocal
cd /d %~dp0
echo === Fresh rebuild + start ===
Docker compose -f docker-compose.dev.yml down --rmi local --remove-orphans
Docker compose -f docker-compose.dev.yml up --build --force-recreate -d || goto :err
Docker compose -f docker-compose.dev.yml ps
echo Open http://localhost:5050/
goto :eof
:err
echo Startup failed. See errors above.
exit /b 1
+16
View File
@@ -0,0 +1,16 @@
# startup.ps1 - rebuilds and starts the stack fresh each time
Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"
# always operate from repo root
Set-Location $PSScriptRoot
Write-Host "Stopping and removing previous containers/images..." -ForegroundColor Cyan
docker compose -f docker-compose.dev.yml down --rmi local --remove-orphans
Write-Host "Building + starting stack..." -ForegroundColor Cyan
docker compose -f docker-compose.dev.yml up --build --force-recreate -d
Write-Host "Services status:" -ForegroundColor Cyan
docker compose -f docker-compose.dev.yml ps
Write-Host "Open http://localhost:5050/" -ForegroundColor Green