Современная веб-платформа для изучения основ информационной безопасности и пентестинга, построенная на FastAPI и Next.js.
- FastAPI - современный веб-фреймворк для Python
- SQLModel - ORM для работы с базой данных
- PostgreSQL - реляционная база данных
- JWT - аутентификация и авторизация
- Alembic - миграции базы данных
- Next.js 14 - React фреймворк с App Router
- TypeScript - типизированный JavaScript
- Tailwind CSS - utility-first CSS фреймворк
- Shadcn UI - компоненты пользовательского интерфейса
- Zustand - управление состоянием
- React Hook Form - работа с формами
- Docker & Docker Compose - контейнеризация
- Nginx - reverse proxy
- PostgreSQL - база данных в контейнере
PlatformForPentest/
├── server/ # Backend (FastAPI)
│ ├── app/
│ │ ├── core/ # Конфигурация и инициализация
│ │ ├── models/ # SQLModel модели
│ │ ├── schemas/ # Pydantic схемы
│ │ ├── api/ # API роуты
│ │ ├── services/ # Бизнес-логика
│ │ ├── utils/ # Вспомогательные функции
│ │ └── main.py # Точка входа приложения
│ ├── Dockerfile
│ └── requirements.txt
├── frontend/ # Frontend (Next.js)
│ ├── app/ # Next.js App Router
│ ├── components/ # React компоненты
│ ├── lib/ # Утилиты и API клиент
│ ├── types/ # TypeScript типы
│ ├── styles/ # Глобальные стили
│ ├── Dockerfile
│ └── package.json
├── nginx/ # Nginx конфигурация
│ └── nginx.conf
└── docker-compose.yml # Docker Compose конфигурация
- Docker и Docker Compose (или Docker Compose V2:
docker compose) - Git
- На Windows: установлен и запущен Docker Desktop (WSL2 включён)
git clone <repository-url>
cd PlatformForPentestcp server/.env.example server/.envОтредактируйте server/.env:
DATABASE_URL=postgresql://postgres:postgres@db:5432/pentest_platform
SECRET_KEY=your-very-secure-secret-key-here
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
REFRESH_TOKEN_EXPIRE_DAYS=7
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=admin123
ADMIN_FULL_NAME=System Administrator
ENVIRONMENT=developmentcp frontend/.env.example frontend/.env.localОтредактируйте frontend/.env.local:
NEXT_PUBLIC_API_URL=http://localhost/api/v1# Запуск всех сервисов (Compose V2)
docker compose up -d
# Если у вас классическая утилита
docker-compose up -d
# Просмотр логов
# (Compose V2)
docker compose logs -f
# (классическая утилита)
docker-compose logs -f
# Остановка сервисов
# (Compose V2)
docker compose down
# (классическая утилита)
docker-compose downЕсли вы используете Windows и получаете ошибку вида
open //./pipe/dockerDesktopLinuxEngine: The system cannot find the file specified —
убедитесь, что Docker Desktop запущен, затем:
- Откройте Docker Desktop → Settings → General → включите "Use the WSL 2 based engine"
- Проверьте
docker info(должен показывать состояние демона) - Перезапустите Docker Desktop и попробуйте снова
docker compose up -d
После запуска контейнеров база данных автоматически инициализируется с созданием администратора.
- Frontend: http://localhost:3000
- Backend API (через Nginx): http://localhost/api/v1
- Прямой Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
- Email: admin@example.com
- Password: secure_admin_password (измените в .env файле)
cd server
pip install -r requirements.txt
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000cd frontend
npm install
npm run dev# Пересборка контейнеров
# (Compose V2)
docker compose build
# (классическая утилита)
docker-compose build
# Запуск только базы данных
# (Compose V2)
docker compose up db
# (классическая утилита)
docker-compose up db
# Просмотр статуса контейнеров
# (Compose V2)
docker compose ps
# (классическая утилита)
docker-compose ps
# Выполнение команд в контейнере
# (Compose V2)
docker compose exec backend bash
# (классическая утилита)
docker-compose exec backend bash
# Очистка volumes
# (Compose V2)
docker compose down -v
# (классическая утилита)
docker-compose down -vPOST /api/v1/auth/register- Регистрация пользователяPOST /api/v1/auth/login- Вход в системуPOST /api/v1/auth/refresh- Обновление токенаGET /api/v1/auth/me- Получение информации о текущем пользователе
GET /- Корневой эндпоинтGET /health- Проверка состояния API
- ✅ Регистрация и аутентификация
- ✅ Личный профиль с прогрессом
- ✅ Изучение теоретических материалов
- ✅ Выполнение практических лабораторий
- ✅ Отслеживание достижений
- ✅ Панель администратора
- ✅ Управление пользователями
- ✅ Управление контентом
- ✅ Аналитика и отчеты
- ✅ Системные настройки
- JWT токены для аутентификации
- Хеширование паролей с bcrypt
- Ролевая система доступа
- CORS настройки
- Валидация данных на всех уровнях
# Backend тесты
cd server
pytest
# Frontend тесты
cd frontend
npm testЛоги доступны через Docker Compose:
# Все сервисы
# (Compose V2)
docker compose logs
# (классическая утилита)
docker-compose logs
# Конкретный сервис
# (Compose V2)
docker compose logs backend
# (классическая утилита)
docker-compose logs backend
# (Compose V2)
docker compose logs frontend
# (классическая утилита)
docker-compose logs frontend- Измените переменные окружения для продакшн
- Используйте HTTPS сертификаты
- Настройте backup базы данных
- Настройте мониторинг
- Fork репозитория
- Создайте feature branch
- Внесите изменения
- Добавьте тесты
- Создайте Pull Request
MIT License
Если у вас возникли вопросы или проблемы, создайте issue в репозитории.