Add HTTPS deployment guide for web MVP
This commit is contained in:
@@ -47,3 +47,84 @@ Empfohlen für Internet-Betrieb:
|
|||||||
- HTTPS aktivieren
|
- HTTPS aktivieren
|
||||||
- Upload-Größenlimit setzen
|
- Upload-Größenlimit setzen
|
||||||
- Zugriff absichern (z. B. Basic Auth oder Login)
|
- Zugriff absichern (z. B. Basic Auth oder Login)
|
||||||
|
|
||||||
|
## Öffentliches Deployment (HTTPS)
|
||||||
|
|
||||||
|
Beispiel für Ubuntu-Server mit Domain `ics.example.de`.
|
||||||
|
|
||||||
|
### 1) App als Service starten
|
||||||
|
|
||||||
|
`/etc/systemd/system/pdf-to-ics-web.service`
|
||||||
|
|
||||||
|
```ini
|
||||||
|
[Unit]
|
||||||
|
Description=PDF to ICS Web
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=www-data
|
||||||
|
WorkingDirectory=/opt/pdf_to_ics
|
||||||
|
ExecStart=/opt/pdf_to_ics/.venv/bin/python -m uvicorn web.app:app --host 127.0.0.1 --port 8000
|
||||||
|
Restart=always
|
||||||
|
RestartSec=3
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
```
|
||||||
|
|
||||||
|
Aktivieren:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo systemctl enable --now pdf-to-ics-web
|
||||||
|
sudo systemctl status pdf-to-ics-web
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2) Nginx als Reverse Proxy
|
||||||
|
|
||||||
|
`/etc/nginx/sites-available/pdf-to-ics`
|
||||||
|
|
||||||
|
```nginx
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name ics.example.de;
|
||||||
|
|
||||||
|
client_max_body_size 10M;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass http://127.0.0.1:8000;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Aktivieren:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo ln -s /etc/nginx/sites-available/pdf-to-ics /etc/nginx/sites-enabled/pdf-to-ics
|
||||||
|
sudo nginx -t
|
||||||
|
sudo systemctl reload nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3) HTTPS mit Let's Encrypt
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y certbot python3-certbot-nginx
|
||||||
|
sudo certbot --nginx -d ics.example.de
|
||||||
|
```
|
||||||
|
|
||||||
|
Test der Erneuerung:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo certbot renew --dry-run
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4) Mindest-Sicherheit
|
||||||
|
|
||||||
|
- Zugriffe absichern (z. B. Basic Auth oder Login)
|
||||||
|
- Upload-Limit klein halten (`client_max_body_size`)
|
||||||
|
- Server und Pakete regelmäßig aktualisieren
|
||||||
|
|||||||
Reference in New Issue
Block a user