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.
Files
Proxmox-VPS-Panel-secure/README.md
T

77 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Proxmox VPS Panel Secure
Защищённая переработка `Proxmox-VPS-Panel`.
## Реализовано
- регистрация и OAuth2 password login;
- Argon2id-хеширование паролей;
- короткоживущий Bearer JWT;
- SQLAlchemy-модель пользователя;
- модели `Template` и `Instance`;
- строгая валидация ресурсов шаблонов;
- активные шаблоны доступны авторизованным пользователям;
- создание и деактивация шаблонов только администратором;
- список инстансов с проверкой ownership;
- администратор видит все инстансы;
- frontend-формы регистрации и входа.
## API текущего этапа
```text
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
```bash
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`, затем выполните:
```bash
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.