Archived
43 lines
2.4 KiB
Markdown
43 lines
2.4 KiB
Markdown
# Proxmox VPS Panel Secure
|
||
|
||
Защищённая переработка `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.
|