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, аудит и автоматические тесты. ## Безопасность