From 79a3614a59c35034877dab75bc71521efae509d7 Mon Sep 17 00:00:00 2001 From: host Date: Sun, 9 Aug 2026 14:23:44 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=20=D1=8D=D1=82=D0=B0?= =?UTF-8?q?=D0=BF=20=D0=B0=D0=B2=D1=82=D0=BE=D1=80=D0=B8=D0=B7=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 63 ++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 44 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 2780ec9..45c07dd 100644 --- a/README.md +++ b/README.md @@ -2,19 +2,28 @@ Защищённая переработка `Proxmox-VPS-Panel`. -## Реализовано в базовой версии +## Текущий этап: авторизация -- запуск запрещён с демонстрационным `SECRET_KEY`; -- TLS-проверка Proxmox включена по умолчанию; -- пароли обрабатываются через Argon2id; -- access token имеет короткий срок жизни; -- CORS принимает только явно заданные origins; -- backend работает от non-root пользователя; -- backend не публикуется наружу напрямую; -- добавлены healthcheck и readiness-проверка PostgreSQL; -- добавлены security-заголовки Nginx; -- зависимости Python зафиксированы по версиям; -- конфигурация отделена от исходного кода. +Добавлены: + +- SQLAlchemy-модель `User`; +- PostgreSQL-сессии; +- регистрация пользователей; +- автоматическое назначение роли `admin` первому пользовователю; +- Argon2id-хеширование паролей; +- OAuth2 password login; +- короткоживущий Bearer JWT; +- endpoint `/auth/me`; +- проверка активного пользователя; +- frontend-формы регистрации и входа. + +API-пути доступны через frontend-прокси: + +```text +POST /api/auth/register +POST /api/auth/login +GET /api/auth/me +``` ## Запуск @@ -25,16 +34,32 @@ cp .env.example .env docker compose up -d --build ``` -Frontend будет доступен на `http://host:5173`. Для production следует использовать HTTPS на внешнем reverse-proxy. +Frontend будет доступен на `http://IP-АДРЕС-VM:5173`. -## Следующие этапы переноса функциональности +## Проверка регистрации через curl -1. Перенести модели пользователей, шаблонов и инстансов. -2. Добавить Alembic-миграции. +```bash +curl -X POST http://127.0.0.1:5173/api/auth/register \ + -H 'Content-Type: application/json' \ + -d '{"email":"admin@example.local","password":"ChangeMe-Strong-123"}' +``` + +Проверка входа: + +```bash +curl -X POST http://127.0.0.1:5173/api/auth/login \ + -H 'Content-Type: application/x-www-form-urlencoded' \ + -d 'username=admin@example.local&password=ChangeMe-Strong-123' +``` + +## Следующие этапы + +1. Перенести модели шаблонов и инстансов. +2. Добавить Alembic-миграции вместо временного `create_all()`. 3. Реализовать очередь провижининга и резервирование VMID. -4. Перенести Proxmox client с ожиданием и повторными попытками задач. -5. Передавать VM credentials через cloud-init, а LXC credentials — через API создания контейнера. -6. Не хранить пароли гостевых систем после однократной выдачи. +4. Добавить Proxmox client с ожиданием и повторными попытками задач. +5. Реализовать административную панель пользователей и шаблонов. +6. Добавить создание и управление VM/LXC. 7. Добавить rate limiting, аудит и автоматические тесты. ## Безопасность