Archived
Расширена документация secure-проекта
This commit is contained in:
@@ -1,3 +1,42 @@
|
||||
# Proxmox-VPS-Panel-secure
|
||||
# Proxmox VPS Panel Secure
|
||||
|
||||
Защищённая версия self-hosted панели для управления VM и LXC в Proxmox VE
|
||||
Защищённая переработка `Proxmox-VPS-Panel`.
|
||||
|
||||
## Реализовано в базовой версии
|
||||
|
||||
- запуск запрещён с демонстрационным `SECRET_KEY`;
|
||||
- TLS-проверка Proxmox включена по умолчанию;
|
||||
- пароли обрабатываются через Argon2id;
|
||||
- access token имеет короткий срок жизни;
|
||||
- CORS принимает только явно заданные origins;
|
||||
- backend работает от non-root пользователя;
|
||||
- backend не публикуется наружу напрямую;
|
||||
- добавлены healthcheck и readiness-проверка PostgreSQL;
|
||||
- добавлены security-заголовки Nginx;
|
||||
- зависимости Python зафиксированы по версиям;
|
||||
- конфигурация отделена от исходного кода.
|
||||
|
||||
## Запуск
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
# задайте SECRET_KEY длиной не менее 32 символов,
|
||||
# POSTGRES_PASSWORD, параметры Proxmox и ALLOW_ORIGINS
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
Frontend будет доступен на `http://host:5173`. Для production следует использовать HTTPS на внешнем reverse-proxy.
|
||||
|
||||
## Следующие этапы переноса функциональности
|
||||
|
||||
1. Перенести модели пользователей, шаблонов и инстансов.
|
||||
2. Добавить Alembic-миграции.
|
||||
3. Реализовать очередь провижининга и резервирование VMID.
|
||||
4. Перенести Proxmox client с ожиданием и повторными попытками задач.
|
||||
5. Передавать VM credentials через cloud-init, а LXC credentials — через API создания контейнера.
|
||||
6. Не хранить пароли гостевых систем после однократной выдачи.
|
||||
7. Добавить rate limiting, аудит и автоматические тесты.
|
||||
|
||||
## Безопасность
|
||||
|
||||
Не используйте `root@pam` для API-токена. Создайте отдельного Proxmox-пользователя с минимальным набором прав. Не публикуйте `.env`, не отключайте TLS-проверку и настройте резервное копирование PostgreSQL.
|
||||
|
||||
Reference in New Issue
Block a user