# 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)