1.2 KiB
1.2 KiB
VPN Access Server Project Overview
Purpose
This is a VPN Access Server project that extends OpenVPN functionality with custom MAC address validation and session time management. The system integrates with MySQL for data persistence and is designed for deployment on Ubuntu VPN gateways.
Tech Stack
- Python 3.13+ with type hints and docstrings
- MySQL database for data persistence
- FastAPI for API endpoints and client configuration generation
- OpenVPN integration via client-connect/client-disconnect hooks
- uv package manager for dependency management
- pytest for testing
Architecture
The system follows a modular layered architecture:
- access/: Core authentication and session management logic
- util/: Utility modules (client generation, email sending)
- tests/: Unit and integration tests
- scripts/: Database setup and helper scripts
- main.py: FastAPI server entry point
- cli.py: Command-line interface for all operations
Key Features
- User authentication and MAC address validation
- Session time management and limits
- Client configuration generation (.ovpn files)
- Database-backed user and session management
- SMTP email notifications (planned)