# deploy/ — Deployment-Artefakte Versionierte Vorlagen für den VPS-Betrieb. Die ausführliche Schritt-für-Schritt- Anleitung steht in [`../DEPLOYMENT.md`](../DEPLOYMENT.md); hier liegen die Dateien, die dort referenziert werden. | Datei | Zweck | Ziel auf dem VPS | |-------|-------|------------------| | `../gunicorn.conf.py` | Gunicorn-Konfiguration (Worker, Socket, Logging) | bleibt im Projektordner, via `-c` geladen | | `projekt-hub.service` | systemd-Unit (Autostart, Neustart bei Absturz) | `/etc/systemd/system/projekt-hub.service` | | `nginx/projekt-hub.conf` | nginx-Reverse-Proxy (Socket-Proxy + Static) | `/etc/nginx/sites-available/projekt-hub` | ## Vor dem Kopieren anpassen Alle Dateien gehen von diesen Annahmen aus — bei Abweichung anpassen: - Nutzer: `projekthub`, Gruppe `www-data` - Projektpfad: `/home/projekthub/projekt-hub` - venv: `.venv` im Projektordner - Socket: `projekt-hub.sock` im Projektordner ## Rate-Limiting-Backend Mit mehreren gunicorn-Workern braucht Flask-Limiter ein gemeinsames Backend, sonst zählt jeder Worker eigene Limits. In der `.env`: ```ini RATELIMIT_STORAGE_URI=redis://localhost:6379 ``` Redis installieren: `sudo apt install -y redis-server` (siehe `DEPLOYMENT.md`). Ohne Redis bleibt `memory://` möglich — dann am besten nur **ein** Worker.