34c82f3dcae1d438f39b44faf80520a42f3081bc
- backend/tools/qrcode_gen.py: POST /api/qrcode/generate, returns base64 PNG (qrcode[pil]) - backend/tools/markdown_tool.py: POST /api/markdown/render, extensions: tables/fenced_code/nl2br - backend/tools/colorconverter.py: POST /api/color/convert, HEX/RGB/HSL via colorsys (no deps) - backend/tools/jsonformatter.py: POST /api/json/format, returns formatted JSON with line/col errors - backend/tools/regextester.py: POST /api/regex/test, flags i/m/s, returns matches with positions - QrCodeTool.jsx: generate + download PNG button - MarkdownTool.jsx: split editor/preview, debounce 500ms, white preview bg - ColorConverterTool.jsx: color swatch preview, per-format copy buttons - JsonFormatterTool.jsx: indent toggle 2/4, pre result box with copy - RegexTesterTool.jsx: debounce 400ms, yellow match highlighting, flag checkboxes - All blueprints registered in app.py; qrcode[pil] + markdown added to requirements.txt Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Docker-Webplattform: React + Flask + externe MariaDB
Vollständig dockerisierte Webanwendung mit React-Frontend und Flask-Backend in einem einzigen Container. Verbindet sich mit einer externen MariaDB-Datenbank und bietet Setup-System, Login, Rollenverwaltung und modulare Tools.
Screenshot
Setup-Anleitung
Voraussetzungen
- Docker & Docker Compose installiert
- Externe MariaDB/MySQL-Datenbank erreichbar (z.B. auf Unraid, NAS oder anderem Server)
1. Repository klonen
git clone https://github.com/Nirodan/Tools.git
cd Tools
2. Umgebungsvariablen konfigurieren
cp .env.example .env
Dann .env öffnen und SECRET_KEY durch einen sicheren zufälligen Wert ersetzen:
# Sicheren Key generieren:
python -c "import secrets; print(secrets.token_hex(32))"
3. Container starten
docker compose -f docker-compose.dev.yml up -d
4. Datenbank einrichten (Erststart)
Beim ersten Start öffnet sich automatisch die Setup-Seite unter http://localhost:5050/setup.
Dort die MariaDB-Verbindungsdaten eintragen:
| Feld | Beispiel |
|---|---|
| Host | 192.168.1.100 |
| Port | 3306 |
| User | tools_user |
| Password | geheimes_pw |
| Database | tools_db |
Nach dem Speichern wird automatisch ein Admin-Account angelegt:
- Benutzername:
admin - Passwort:
admin(bitte sofort im Admin-Dashboard ändern)
5. Anwendung aufrufen
http://localhost:5050
Was der Container macht
- Startet automatisch Flask + React in einer Umgebung
- Bei Erststart: Setup-Webseite zum Eintragen der DB-Verbindung
- Speichert die Konfiguration in einem Docker-Volume (
config/db_config.json) - Verbindet sich mit der externen MariaDB-Datenbank
- Erstellt automatisch ein
admin-Benutzerkonto - Liefert das React-Frontend direkt über Flask aus (keine extra Node-Instanz)
Projektstruktur
Tools/
├── backend/
│ ├── app.py # Flask-Einstiegspunkt
│ ├── admin.py # Admin-API (Nutzer- und Websitenverwaltung)
│ ├── auth/ # Login, Logout, Token-Verifikation
│ ├── tools/ # Modulare Tools (MD5 etc.)
│ └── util/ # DB-Pool, Konfiguration, Logger, Rate-Limiter
├── frontend/
│ └── src/
│ ├── App.jsx
│ ├── components/ # React-Komponenten
│ └── services/api.js # Axios-Instanz mit Auth-Interceptor
├── docker-compose.dev.yml
├── Dockerfile
├── .env.example # Vorlage für Umgebungsvariablen
└── README.md
Sicherheitshinweise
SECRET_KEYniemals im Klartext in der Versionskontrolle speichern – immer.envverwenden- Standard-Admin-Passwort (
admin) nach dem Erststart sofort ändern - MD5 ist kryptografisch unsicher – nicht für Passwort-Hashing verwenden
Lizenz
Dieses Projekt steht unter der Creative Commons BY-NC 4.0 Lizenz. Du darfst es verwenden, verändern und teilen – aber nicht kommerziell nutzen. Volltext: https://creativecommons.org/licenses/by-nc/4.0
Author: Nirodan – https://github.com/Nirodan
Description
Releases
6
Release v0.9.3.2
Latest
Languages
JavaScript
50.9%
Python
40.2%
CSS
6.9%
HTML
0.8%
Dockerfile
0.7%
Other
0.5%
