# CT 109 — notes.braetter.local ## Systemdaten | Eigenschaft | Wert | |-------------|------| | VMID | 109 | | Hostname | notes.braetter.local | | IP | 192.168.0.92/24 | | OS | Ubuntu 24.04.4 LTS | | CPU | 2 vCores | | RAM | 2048 MB | | Disk | osdisk:109/vm-109-disk-0.raw, 150 GB | | Bridge | vmbr0 | | Autostart | ja | | Status | running | ## Dienste | Dienst | Port | Beschreibung | |--------|------|-------------| | nginx | 80 | Reverse Proxy zu Gunicorn | | notesmanager (gunicorn) | 5000 (lokal) | Flask Python App | | postfix | 25 (lokal) | Mailversand | ## Zugriff - **Notes Web:** http://notes.braetter-int.de (extern) / http://192.168.0.92 (intern) - **SSH:** `ssh nicolay@192.168.0.92` (Passwort: N17b011975) ## Anwendung - **Framework:** Python 3 / Flask - **WSGI:** Gunicorn (3 Worker) - **Webserver:** Nginx als Reverse Proxy - **Pfad:** `/opt/notesmanager/` - **Systemd:** `notesmanager.service` ### Anwendungs-Struktur ``` /opt/notesmanager/ ├── app/ │ ├── __init__.py # Flask App Factory │ ├── models.py # SQLAlchemy Models │ ├── routes.py # Routen │ ├── static/ # CSS, JS │ └── templates/ # Jinja2 Templates ├── deploy/ │ ├── notesmanager.nginx # Nginx-Config │ └── notesmanager.service # Systemd-Service ├── requirements.txt ├── run.py └── gunicorn.conf.py ``` ### Datenbank SQLite — `instance/` Verzeichnis ## Gitea Repository http://gitea.braetter.local/braetter/noteapp