Files
br 6f0d0a952d
Formeleon Deployment Pipeline / Deploy to Dev Environment (push) Has been skipped
Formeleon Deployment Pipeline / Deploy to Production Environment (push) Failing after 4s
corrections für https behind webproxy
2026-08-03 16:59:44 +02:00

114 lines
3.6 KiB
Markdown
Raw Permalink 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.
# Formeleon 🦎
> Mandantenfähiger, hochflexibler Formular-Generator mit nahtloser Website-Integration und integriertem Bot-Schutz.
*Read this in English: [README.EN.md](./README.EN.md)*
---
## 📋 Überblick
Formeleon ist ein zentral gehosteter Service (ChamäleonCloud), der es Webseitenbetreibern (Mandanten) ermöglicht, dynamische Formulare ohne Backend-Aufwand per HTML/JavaScript-Snippet in bestehende Webseiten einzubetten.
### Kern-Features
* **Nahtlose Integration:** Einbettung via JS-Snippet ("Chamäleon-Effekt").
* **Maximale Feldvariabilität:** Dynamische JSON-Payloads via SQLite/SQLAlchemy.
* **Integrierte Sicherheit:** OIDC-Integration (Zitadel), Public-Key Handshake, Origin/Referer-Validierung & reCAPTCHA v3 Support.
* **UX & Bot-Protection:** Integriertes Ampel-System (Laderad/Clearance) für Absende-Buttons.
* **Reporting & Export:** Daten-Exports (CSV/JSON/YAML) per Stream oder automatisierte E-Mail-Dumps.
---
## 🛠️ Tech-Stack
* **Backend:** Python 3.13, Flask (Blueprint-Architektur), Flask-SQLAlchemy, Flask-Migrate (Alembic)
* **Frontend (Admin-Panel):** Bootstrap 5, Mithril.js / HTML5
* **Authentication:** OIDC via Zitadel (Admin-Panel)
* **Deployment:** Docker, Gunicorn, Gitea Actions (Runner)
---
## 🚀 Schnellstart (Lokal / Docker-less)
Das Projekt kann auf Windows/Linux komplett ohne Docker in einer Virtual Environment entwickelt werden:
1. **Repository klonen & Umgebung einrichten:**
```bash
python -m venv venv
# Auf Linux/Mac:
source venv/bin/activate
# Auf Windows:
venv\Scripts\activate
pip install -r requirements.txt
```
2. **Umgebungsvariablen (optional):**
*(Formeleon startet standardmäßig im Dev-Mode mit einer lokalen SQLite-DB `formeleon.db`)*
3. **Datenbank initialisieren & starten:**
```bash
# Migration-Repository initialisieren (nur einmalig!)
flask db init
# Datenbank-Schema erstellen
flask db upgrade
# Optionales Seeding mit Testdaten
flask seed-db
# Anwendung starten (auf Port 5000 mit Hot-Reload)
flask run --port=5000 --debug
```
---
## 🐳 Schnellstart (Docker)
Für das vollständige Linux- / Staging-Gefühl kannst du Docker nutzen. Durch Volume-Mounts bleibt der Code synchron, und du kannst im Editor (Windows/Mac) programmieren.
```bash
# 1. Image bauen und Container starten
docker compose up --build
# 2. Anwendung beenden
# (Strg+C oder:)
docker compose down
# 3. Datenbank und Volumes komplett zurücksetzen
docker compose down -v && docker-compose up --build
```
### Docker CLI-Kommandos ausführen
Du kannst `flask` Kommandos direkt gegen den laufenden Container feuern:
```bash
# Datenbank Migrationen anlegen
docker compose run --rm app flask db migrate -m "neue migration"
# Datenbank-Schema updaten
docker compose run --rm app flask db upgrade
# Datenbank mit Testdaten füllen
docker compose run --rm app flask seed-db
# Shell im Container öffnen
docker compose run --rm app bash
```
### Zugriff auf die Anwendung
- **Admin Dashboard:** http://localhost:5000/admin/
- **API Endpunkt:** http://localhost:5000/api/v1/
- **Health Check:** http://localhost:5000/
---
## 📚 Dokumentation
* [`AGENTS.md`](./AGENTS.md) – Regelwerk und Anweisungen für KI-Coding-Agenten.
* [`ARCHITEKTUR.md`](./ARCHITEKTUR.md) – Detaillierte Systemarchitektur und Datenmodelle.
* [`docs/coding-standards.md`](./docs/coding-standards.md) – Header- und PyDoc-Dokumentationsstandards.
* [`docs/deployment.md`](./docs/deployment.md) – CI/CD-Pipeline und Docker-Deployment-Guide.
* [`docs/dev-guide.md`](./docs/dev-guide.md) – Entwickler-Handbuch, Mocking & Seeding.