Initial: Mesh-Skills, Configs, Scripts
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# Flask Deploy Pattern (PersoEnt, 19.07.2026)
|
||||
|
||||
## venv anlegen (Ubuntu 24.04)
|
||||
```bash
|
||||
apt-get install -y python3.12-venv
|
||||
python3 -m venv /var/www/<projekt>/backend/venv
|
||||
/var/www/<projekt>/backend/venv/bin/pip install flask flask-cors requests
|
||||
```
|
||||
|
||||
## systemd Service
|
||||
`/etc/systemd/system/<projekt>-api.service`:
|
||||
```ini
|
||||
[Unit]
|
||||
Description=<Projekt> API (Flask)
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
User=www-data
|
||||
Group=www-data
|
||||
WorkingDirectory=/var/www/<projekt>/backend
|
||||
Environment=PATH=/var/www/<projekt>/backend/venv/bin
|
||||
ExecStart=/var/www/<projekt>/backend/venv/bin/python app.py
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
## Kritisch: Berechtigungen nach jedem File-Edit!
|
||||
`patch`/`write_file`/`sed` ändern den Owner → `chown www-data:www-data app.py` VOR `systemctl restart`!
|
||||
Sonst: `Permission denied` + Restart-Loop.
|
||||
|
||||
## Nginx (in sites-enabled/<domain>)
|
||||
```nginx
|
||||
location /api/ {
|
||||
proxy_pass http://127.0.0.1:5000/api/;
|
||||
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;
|
||||
}
|
||||
```
|
||||
`nginx -t && systemctl reload nginx`
|
||||
|
||||
## Token in Code schreiben (NICHT via sed!)
|
||||
⚠️ `sed -i "s|^PB_TOKEN = .*|PB_TOKEN = \"$TOKEN\"|"` schneidet langen Token ab (Terminal kürzt bei Display, aber das Problem: sed ersetzt mit gekürztem Wert wenn Variable im Heredoc/SSH-Kontext kaputt ist).
|
||||
**Sicher:** Python-Script nutzen:
|
||||
```python
|
||||
import re
|
||||
token = "VOLLER_TOKEN"
|
||||
with open('app.py') as f: c = f.read()
|
||||
c = re.sub(r'PB_TOKEN = ".*"', f'PB_TOKEN = "{token}"', c)
|
||||
with open('app.py','w') as f: f.write(c)
|
||||
```
|
||||
Reference in New Issue
Block a user