Volle Mindflux-App ins Deploy-Repo übernehmen

Ersetzt das Hello-World-Gerüst durch die vollständige Anwendung
(com.example.mindflux: 64 Klassen, Thymeleaf-Templates, Static-Assets,
Flyway V1–V6). Deploy-Infrastruktur (.gitea, Dockerfile) bleibt erhalten.

- pom: volle Abhängigkeiten (Security, Thymeleaf, JPA, Flyway), Spring Boot 3.4.4 / Java 17
- docker-compose: SPRING_DATASOURCE_* unverändert; App lauscht auf 8080
  (nginx -> mindflux:8080); Uploads-Volume; Admin-Passwörter via Gitea-Secrets
- Workflow: Deploy-Step injiziert MINDFLUX_ADMIN*_PASSWORD aus Secrets
- .dockerignore ergänzt; Hello-World (com.mindflux) und Test-Datei 'main' entfernt

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
AliceDarkest
2026-06-26 14:51:30 +02:00
parent f3309c1574
commit 9022961762
185 changed files with 22772 additions and 142 deletions
@@ -0,0 +1,67 @@
<!DOCTYPE html>
<html lang="de" data-theme="dark"
xmlns:th="http://www.thymeleaf.org"
xmlns:sec="https://www.thymeleaf.org/thymeleaf-extras-springsecurity6">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Benutzer bearbeiten</title>
<link rel="stylesheet" href="/css/theme.css">
<script src="/js/theme.js"></script>
</head>
<body>
<div class="mf-theme-float"><button class="mf-theme"></button></div>
<div class="mf-container" style="max-width:560px">
<div class="mf-page-head">
<a th:href="@{/admin/users}" class="mf-back">⟵ Zurück zur Benutzerliste</a>
</div>
<header style="margin-bottom:1.4rem">
<div class="mf-eyebrow">Benutzer</div>
<h1 style="color:var(--heading); font-size:1.75rem; font-weight:800; margin-top:.35rem">✏️ Benutzer bearbeiten</h1>
</header>
<main>
<form th:action="@{/admin/users/save}" th:object="${user}" method="post" class="mf-panel">
<input type="hidden" th:field="*{id}" />
<div class="mf-field">
<label class="mf-label">Benutzername</label>
<input class="mf-input" type="text" th:field="*{username}" required/>
</div>
<div class="mf-field">
<label class="mf-label">Passwort</label>
<input class="mf-input" type="password" name="password" th:required="${user.id == null}" autocomplete="new-password"/>
</div>
<div class="mf-field">
<label class="mf-label">E-Mail</label>
<input class="mf-input" type="email" th:field="*{email}" required/>
</div>
<div class="mf-field">
<label class="mf-label">Rolle</label>
<input class="mf-input" type="text" th:field="*{role}" required/>
</div>
<button type="submit" class="mf-btn" style="margin-top:.4rem">Speichern</button>
</form>
</main>
</div>
<footer class="mf-footer">
<a href="#">Support</a>
<a href="#">Feedback</a>
<a href="#">Nutzungsbedingungen</a>
<a href="#">Richtlinien</a>
<a href="#">Datenschutz</a>
<a href="#">Impressum</a>
</footer>
</body>
</html>