first commit

This commit is contained in:
root
2026-04-12 21:50:55 +02:00
parent de90bbb333
commit ec0e8a3206
1447 changed files with 238414 additions and 0 deletions

88
README.md Normal file
View File

@@ -0,0 +1,88 @@
# Proxmox Provisioner Enhanced
Rozšířená Flask aplikace pro vytváření LXC kontejnerů na Proxmoxu.
## Co je nové
- validace hostname, VMID, CPU, RAM, disk, VLAN a static IP
- předvyplněný subnet `192.168.50.x` s editací jen posledního oktetu
- progress bar pro průběh tasku
- logy tasku přímo v UI
- detail nově vytvořeného kontejneru po dokončení
- přihlášení do aplikace
## Přihlášení do aplikace
Aplikace používá jednoduché session-based přihlášení přes Flask.
V `.env` nastav:
```env
APP_USERNAME=admin
APP_PASSWORD=ChangeThisNow!
```
Pro produkci je lepší použít hash místo prostého hesla:
```python
from werkzeug.security import generate_password_hash
print(generate_password_hash("silne-heslo"))
```
Výstup vlož do:
```env
APP_PASSWORD_HASH=scrypt:...
```
Pak můžeš `APP_PASSWORD` smazat.
## Instalace
```bash
apt update
apt install -y python3 python3-venv python3-pip
cd /opt
unzip proxmox-provisioner-enhanced.zip
cd proxmox-provisioner-enhanced
cp .env.example .env
```
Uprav `.env` a potom:
```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python app.py
```
Aplikace poběží na:
```text
http://IP_LXC:8000
```
## Poznámky k Proxmox oprávněním
Token musí umět:
- číst `/nodes`
- číst storage na vybraném node
- číst obsah storage s template
- vytvářet LXC na cílovém node
## Struktura projektu
- `app.py` - backend a API
- `templates/` - HTML šablony
- `static/js/app.js` - klientská logika, polling tasku, progress bar
- `static/css/style.css` - styly
## Další vhodné kroky
- audit log do souboru
- whitelist povolených node, storage a bridge
- reverzní proxy přes nginx
- gunicorn + systemd
- CSRF ochrana pro login a create endpoint