openvpn-endpoint-server/client/config.py

61 lines
1.6 KiB
Python

"""Client configuration."""
import os
import sys
from pathlib import Path
# Application info
APP_NAME = "mGuard VPN Client"
APP_VERSION = "1.0.0"
# Default server settings
DEFAULT_SERVER_URL = "http://localhost:8000"
# OpenVPN binary search paths by platform
OPENVPN_PATHS_WINDOWS = [
r"C:\Program Files\OpenVPN\bin\openvpn.exe",
r"C:\Program Files (x86)\OpenVPN\bin\openvpn.exe",
r"C:\Program Files\OpenVPN Connect\ovpnconnector.exe",
]
OPENVPN_PATHS_LINUX = [
"/usr/sbin/openvpn",
"/usr/bin/openvpn",
"/usr/local/sbin/openvpn",
"/usr/local/bin/openvpn",
"/opt/openvpn/sbin/openvpn",
"/snap/bin/openvpn",
]
OPENVPN_PATHS_MACOS = [
"/usr/local/sbin/openvpn",
"/usr/local/bin/openvpn",
"/opt/homebrew/bin/openvpn",
"/opt/homebrew/sbin/openvpn",
"/usr/local/opt/openvpn/sbin/openvpn",
]
# Determine platform
if os.name == 'nt': # Windows
OPENVPN_SEARCH_PATHS = OPENVPN_PATHS_WINDOWS
OPENVPN_CONFIG_DIR = Path.home() / "OpenVPN" / "config"
elif sys.platform == 'darwin': # macOS
OPENVPN_SEARCH_PATHS = OPENVPN_PATHS_MACOS
OPENVPN_CONFIG_DIR = Path.home() / ".openvpn"
else: # Linux
OPENVPN_SEARCH_PATHS = OPENVPN_PATHS_LINUX
OPENVPN_CONFIG_DIR = Path.home() / ".openvpn"
# Legacy variable for compatibility
OPENVPN_EXE = OPENVPN_SEARCH_PATHS[0] if OPENVPN_SEARCH_PATHS else "openvpn"
# Ensure config directory exists
OPENVPN_CONFIG_DIR.mkdir(parents=True, exist_ok=True)
# Local storage
APP_DATA_DIR = Path.home() / ".mguard-vpn"
APP_DATA_DIR.mkdir(parents=True, exist_ok=True)
# Settings file
SETTINGS_FILE = APP_DATA_DIR / "settings.json"