VPN/.serena/memories/project_overview.md
2025-10-20 11:47:54 +07:00

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)