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

93 lines
3.0 KiB
Markdown
Raw Permalink 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;
- модели `User`, `Template` и `Instance`;
- строгая валидация ресурсов шаблонов;
- CRUD шаблонов для администратора;
- список инстансов с проверкой ownership;
- Proxmox client через API-токен;
- создание VM из cloud-init-шаблона;
- создание LXC из CT-шаблона;
- настройка DHCP, CPU, RAM и диска;
- frontend-кабинет шаблонов и инстансов.
## Текущий API
```text
POST /api/auth/register
POST /api/auth/login
GET /api/auth/me
GET /api/templates
POST /api/templates
DELETE /api/templates/{template_id}
GET /api/instances
POST /api/instances
GET /api/admin/ping
```
## Настройка Proxmox
В `.env` укажите:
```env
PVE_HOST=https://192.168.31.4:8006
PVE_NODE=pve1
PVE_TOKEN_NAME=panel@pve!panel
PVE_TOKEN_VALUE=...
PVE_VERIFY_SSL=true
PVE_VM_STORAGE=SSD
PVE_LXC_STORAGE=SSD
PVE_BRIDGE=vmbr0
```
Для VM-шаблона укажите `source_vmid`. Для LXC — полный `source_template`, например:
```text
local:vztmpl/debian-12-standard.tar.zst
```
## Создание VPS
```bash
curl -X POST https://cloud.rummail.ru/api/instances \
-H "Authorization: Bearer $TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"name":"test-vm",
"template_id":1,
"username":"paneluser",
"password":"ChangeMe-Strong-123"
}'
```
Операция сейчас синхронная и может занимать несколько минут. Пароль возвращается только в ответе создания и не сохраняется в БД.
## Обновление VM
```bash
cd ~/Proxmox-VPS-Panel-secure
git pull origin main
docker compose up -d --build
docker compose ps
docker compose logs --tail=100 backend
```
## Следующие этапы
1. Добавить очередь провижининга и резервирование VMID.
2. Добавить UI формы создания VPS с одноразовым отображением пароля.
3. Добавить получение IP через QEMU Guest Agent и LXC interfaces.
4. Добавить start/stop/shutdown/reboot/delete.
5. Добавить Alembic-миграции вместо временного `create_all()`.
6. Добавить rate limiting, аудит и тесты.
## Безопасность
Не используйте `root@pam` для API-токена. Создайте отдельного Proxmox-пользователя с минимальным набором прав. Не публикуйте `.env`, не отключайте TLS-проверку и настройте резервное копирование PostgreSQL.