This repository has been archived on 2026-08-09. You can view files and clone it. You cannot open issues or pull requests or push a commit.

Proxmox VPS Panel Secure

Защищённая переработка Proxmox-VPS-Panel.

Реализовано

  • регистрация и OAuth2 password login;
  • Argon2id-хеширование паролей;
  • короткоживущий Bearer JWT;
  • SQLAlchemy-модель пользователя;
  • модели Template и Instance;
  • строгая валидация ресурсов шаблонов;
  • активные шаблоны доступны авторизованным пользователям;
  • создание и деактивация шаблонов только администратором;
  • список инстансов с проверкой ownership;
  • администратор видит все инстансы;
  • frontend-формы регистрации и входа.

API текущего этапа

POST   /api/auth/register
POST   /api/auth/login
GET    /api/auth/me
GET    /api/templates
POST   /api/templates              # только admin
DELETE /api/templates/{template_id} # только admin
GET    /api/instances
GET    /api/admin/ping             # только admin

Обновление уже установленной VM

cd ~/Proxmox-VPS-Panel-secure
git pull origin main
docker compose up -d --build
docker compose ps

После запуска таблицы templates и instances создаются автоматически текущим временным механизмом create_all().

Создание VM-шаблона через API

Сначала получите JWT через /api/auth/login, затем выполните:

curl -X POST http://127.0.0.1:5173/api/templates \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "name":"ubuntu-24",
    "description":"Ubuntu 24.04 cloud-init",
    "guest_type":"vm",
    "source_vmid":1000,
    "cores":2,
    "memory_mb":2048,
    "disk_gb":20
  }'

Для LXC вместо source_vmid используется source_template, например local:vztmpl/debian-12-standard.tar.zst.

Следующие этапы

  1. Добавить Alembic-миграции и убрать временный create_all().
  2. Добавить Proxmox client с TLS, таймаутами и ожиданием задач.
  3. Реализовать создание VM/LXC из выбранного шаблона.
  4. Добавить очередь провижининга и резервирование VMID.
  5. Добавить действия start/stop/reboot/delete.
  6. Добавить UI шаблонов и инстансов.
  7. Добавить rate limiting, аудит и автоматические тесты.

Безопасность

Не используйте root@pam для API-токена. Создайте отдельного Proxmox-пользователя с минимальным набором прав. Не публикуйте .env, не отключайте TLS-проверку и настройте резервное копирование PostgreSQL.

S
Description
Защищённая версия self-hosted панели для управления VM и LXC в Proxmox VE
Readme
178 KiB
Languages
Python 66.8%
JavaScript 31.2%
Dockerfile 1.4%
HTML 0.6%