KI-Generierte Readme

This commit is contained in:
Jesko Anschütz 2025-05-04 23:59:44 +02:00
parent 895e9ebf41
commit 344da0bb48

170
README.md Normal file
View file

@ -0,0 +1,170 @@
# voucher.morz.de
## **Überblick**
Dieses Projekt stellt eine Flask-basierte Anwendung bereit, die WLAN-Voucher generiert und QR-Codes für den einfachen Zugang erstellt. Die Anwendung ist als Docker-Image verpackt und kann in einer Container-Umgebung betrieben werden.
---
## **Voraussetzungen**
- Docker und Docker Compose müssen installiert sein.
- Ein funktionierender UniFi-Controller, der über die API erreichbar ist.
- Ein Reverse Proxy (z. B. Nginx oder Traefik) für die Weiterleitung und HTTPS-Unterstützung.
---
## **Installation**
### 1. **Repository klonen**
Klonen Sie das Repository:
```bash
git clone <repository-url>
cd voucher.morz.de
### 2. .env-Datei konfigurieren
Erstellen Sie eine .env-Datei im Projektverzeichnis oder passen Sie die vorhandene Datei an. Diese Datei enthält die Konfigurationsparameter für die Anwendung.
Beispiel .env:
```
UNIFI_HOST=wlan.morz.de
UNIFI_USERNAME=admin
UNIFI_PASSWORD=afoilka9Z
UNIFI_PORT=443
UNIFI_SSL_VERIFY=True
UNIFI_SITE_ID=qfasa90u
WLAN_SSID=BZZ-Gast
WLAN_PASSWORD=Gast-Guest-522
DEBUG=False
```
### 3. **Docker-Image bauen**
Bauen Sie das Docker-Image:
```bash
docker compose build
```
### 4. **Container starten**
Starten Sie den Container:
```bash
docker compose up -d
```
Die Anwendung ist unter `http://<server-ip>:42425` erreichbar.
---
## **Reverse Proxy einrichten**
Um die Anwendung über HTTPS und eine benutzerfreundliche URL bereitzustellen, richten Sie einen Reverse Proxy ein. Hier ist ein Beispiel für die Konfiguration mit **Nginx**.
### Beispiel Nginx-Konfiguration:
```nginx
server {
listen 80;
server_name voucher.morz.de;
location / {
proxy_pass http://127.0.0.1:42425;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# Optional: Weiterleitung auf HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name voucher.morz.de;
ssl_certificate /etc/letsencrypt/live/voucher.morz.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/voucher.morz.de/privkey.pem;
location / {
proxy_pass http://127.0.0.1:42425;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
```
### Schritte:
1. Installieren Sie Nginx:
```bash
sudo apt update
sudo apt install nginx
```
2. Konfigurieren Sie die oben genannte Datei unter `/etc/nginx/sites-available/voucher.morz.de` und aktivieren Sie sie:
```bash
sudo ln -s /etc/nginx/sites-available/voucher.morz.de /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
```
3. Optional: Installieren Sie ein SSL-Zertifikat mit **Let's Encrypt**:
```bash
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d voucher.morz.de
```
---
## **Verwendung**
### 1. **Startseite**
Rufen Sie die Startseite unter `http://voucher.morz.de` (oder der konfigurierten URL) auf. Hier können Sie Voucher für 45 oder 90 Minuten erstellen.
### 2. **Voucher erstellen**
- Klicken Sie auf einen der Buttons, um einen Voucher zu erstellen.
- Die Seite zeigt den generierten Zugangscode und einen QR-Code an, der die WLAN-Zugangsdaten enthält.
---
## **Anpassungen**
### 1. **Logo ändern**
Ersetzen Sie die Datei `/app/custom/logo.png` durch Ihr eigenes Logo. Das Logo wird auf der Startseite angezeigt.
### 2. **WLAN-Symbol ändern**
Ersetzen Sie die Datei `/app/custom/wifi-icon.png`, um das WLAN-Symbol auf der Voucher-Seite anzupassen.
### 3. **Port ändern**
Passen Sie den Port in der `docker-compose.yml` an:
```yaml
ports:
- "8080:42425"
```
---
## **Fehlerbehebung**
### 1. **Fehler: `ModuleNotFoundError`**
Stellen Sie sicher, dass alle Abhängigkeiten installiert sind:
```bash
docker compose exec <container-name> pip install -r /app/requirements.txt
```
### 2. **UniFi-Controller nicht erreichbar**
- Überprüfen Sie die Zugangsdaten in der `.env`-Datei.
- Stellen Sie sicher, dass der UniFi-Controller über die API erreichbar ist.
### 3. **Logs prüfen**
Prüfen Sie die Logs des Containers:
```bash
docker compose logs -f
```
---
## **Lizenz**
Dieses Projekt steht unter der MIT-Lizenz. Weitere Informationen finden Sie in der Datei `LICENSE`.
---
Falls Sie Fragen oder Probleme haben, erstellen Sie bitte ein Issue im Repository. 😊