commit 368a691484be681cde97289707028c6004de48c0 Author: Müller Date: Tue Jul 7 10:17:09 2026 +0200 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..17d172f --- /dev/null +++ b/README.md @@ -0,0 +1,57 @@ +# AZess + +AZess ist eine interne Web-Anwendung für IT-Administratoren, um Active Directory-Benutzerkonten einzurichten. +Die Anwendung generiert sichere Passwörter nach festen Regeln und stellt einen herunterladbaren PDF-Antrag mit den Benutzerdaten zur Verfügung. +Es werden keine Daten auf dem Server gespeichert (keine Datenbank, keine Logs, keine Sessions). + +## Systemanforderungen + +- Python 3.8+ +- Linux (empfohlen für den Produktionsbetrieb mit Gunicorn) +- System-Pakete für `WeasyPrint` (PDF-Generierung): + - Ubuntu/Debian: `sudo apt-get install build-essential python3-dev python3-pip python3-cffi libcairo2 libpango-1.0-0 libpangocairo-1.0-0 libgdk-pixbuf2.0-0 libffi-dev shared-mime-info` + - Alpine: `apk add pango fontconfig ttf-ubuntu-font-family` + - CentOS/RHEL: `sudo yum install pango` + +## Installation + +1. Klonen Sie das Repository oder kopieren Sie die Dateien auf den Server. +2. Erstellen Sie eine virtuelle Umgebung (empfohlen): + ```bash + python -m venv venv + source venv/bin/activate + ``` +3. Installieren Sie die Abhängigkeiten: + ```bash + pip install -r requirements.txt + ``` + +## Lokale Ausführung (Entwicklung) + +Führen Sie die Flask-App direkt aus: +```bash +python app.py +``` +Die Anwendung ist nun unter `http://localhost:5000` erreichbar. + +## Produktion (mit Gunicorn) + +Für den Produktionsbetrieb auf einem Linux-Server verwenden Sie Gunicorn: + +```bash +gunicorn -w 4 -b 0.0.0.0:8000 app:app +``` +(Passt die Anzahl der Worker (`-w 4`) und den Port (`-b 0.0.0.0:8000`) an Ihre Server-Konfiguration an). +Wir empfehlen, Gunicorn hinter einem Reverse-Proxy wie Nginx oder Apache zu betreiben. + +## Anpassung des PDF-Templates + +Das Layout des heruntergeladenen PDFs kann in der Datei `templates/benutzer_template.html` angepasst werden. +Dies ist eine HTML-Datei, die CSS verwendet (konvertiert von WeasyPrint in ein A4-Querformat). +Verwenden Sie die folgenden Platzhalter für die dynamischen Daten: + +- `{{VORNAME}}` - Vorname des Benutzers +- `{{NACHNAME}}` - Nachname des Benutzers +- `{{BENUTZERNAME}}` - Generierter Benutzername +- `{{PASSWORT}}` - Generiertes Passwort +- `{{DATUM}}` - Aktuelles Datum im Format TT.MM.JJJJ