first commit
This commit is contained in:
88
README.md
Normal file
88
README.md
Normal 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
|
||||
Reference in New Issue
Block a user