| Name | proxy2vpn JSON |
| Version |
0.15.0
JSON |
| download |
| home_page | None |
| Summary | Proxy2VPN Python utilities |
| upload_time | 2025-08-26 20:33:27 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | >=3.10 |
| license | None |
| keywords |
vpn
proxy
utilities
|
| VCS |
|
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# Proxy2VPN
[](https://badge.fury.io/py/proxy2vpn)
[](https://www.python.org/downloads/release/python-3100/)
[](https://opensource.org/licenses/MIT)
**Enterprise-grade VPN container orchestration for developers who need reliable proxy infrastructure.**
Stop wrestling with VPN clients that crash, managing multiple accounts manually, or dealing with inconsistent proxy setups. Proxy2VPN turns Docker containers into a fleet of rock-solid VPN endpoints you can deploy, monitor, and scale across dozens of countries in minutes.
## Why Proxy2VPN?
**The Problem**: You need reliable proxy infrastructure for testing, scraping, or accessing geo-restricted content. Traditional VPN clients are unreliable, managing multiple accounts is painful, and scaling across regions is a nightmare.
**The Solution**: Containerized VPN services that just work. Deploy 50 VPN endpoints across 20 countries with a single command. Load-balance across multiple accounts automatically. Monitor health and rotate failed servers without intervention.
**Real-world use cases**:
- Web scraping with rotating IP addresses across multiple countries
- Testing geo-restricted applications from different regions
- Load balancing traffic across multiple VPN accounts
- Creating development environments that mirror production geography
- Building resilient proxy infrastructure for CI/CD pipelines
## Key Features
- **Fleet Management**: Deploy VPN containers across multiple countries and cities in parallel
- **Profile-based Credentials**: Manage multiple VPN accounts as reusable configurations
- **Intelligent Load Balancing**: Distribute connections across accounts automatically
- **Health Monitoring**: Auto-rotate failed servers and maintain uptime
- **HTTP Proxy Support**: Built-in authenticated proxy endpoints for each VPN
- **Provider Agnostic**: Works with ProtonVPN, NordVPN, ExpressVPN, and 30+ providers via gluetun
## Requirements
- Docker and Docker Compose
- Python 3.10+
- A VPN account from any [supported provider](https://github.com/qdm12/gluetun-wiki/tree/main/setup/providers)
## Quick Installation
```bash
# Install via uvx (recommended - no global dependencies)
uvx proxy2vpn --help
# Or install globally
pip install proxy2vpn
```
> **Note**: `uvx` is part of the [uv](https://github.com/astral-sh/uv) toolchain. Install with: `curl -LsSf https://astral.sh/uv/install.sh | sh`
## 5-Minute Quick Start
Get a VPN endpoint running in under 5 minutes:
```bash
# 1. Initialize your workspace
proxy2vpn system init
# 2. Create your first profile with VPN credentials (all fields required)
mkdir -p profiles
cat <<'EOF' > profiles/production.env
VPN_TYPE=openvpn
VPN_SERVICE_PROVIDER=protonvpn
OPENVPN_USER=your_protonvpn_username
OPENVPN_PASSWORD=your_protonvpn_password
HTTPPROXY=on
HTTPPROXY_USER=proxy_user
HTTPPROXY_PASSWORD=proxy_pass
EOF
# 3. Register the profile and create a VPN service
# Option A: Add the env file you just created
proxy2vpn profile add production profiles/production.env
# Option B: Create the env file interactively (no manual file needed)
# proxy2vpn profile create production
# Create a VPN service interactively (choose name/profile/ports when prompted)
proxy2vpn vpn create
# 4. Start and test your VPN
proxy2vpn vpn start london-proxy
proxy2vpn vpn test london-proxy
# 5. Use your proxy (HTTP proxy now available on localhost:8888)
curl --proxy http://proxy_user:proxy_pass@localhost:8888 https://httpbin.org/ip
```
**That's it!** Your VPN container is running and you have an authenticated HTTP proxy endpoint.
## Quickstarts by Use Case (USA)
These short flows cover common US-focused setups. Location names must be valid for your provider (use `proxy2vpn servers list-cities <provider> "United States"` to explore).
### Single US Proxy (Local Dev)
```bash
# 1) Create a profile
proxy2vpn profile create us-dev
# 2) Create a service interactively (choose profile, ports, and location)
proxy2vpn vpn create
# Suggested answers:
# - Service name: us-nyc
# - Profile: us-dev
# - Host port: 8888 (or 0 for auto)
# - Control port: 0 (auto)
# - Location: "New York, United States"
# 3) Start and test
proxy2vpn vpn start us-nyc
proxy2vpn vpn public-ip us-nyc
curl --proxy http://user:pass@localhost:8888 https://httpbin.org/ip
```
### East/West Geo Testing (US)
```bash
# Create two services interactively
proxy2vpn vpn create
# - Service name: us-east
# - Profile: us-dev
# - Host port: 20001 (or auto)
# - Control port: 0 (auto)
# - Location: "New York, United States"
proxy2vpn vpn create
# - Service name: us-west
# - Profile: us-dev
# - Host port: 20002 (or auto)
# - Control port: 0 (auto)
# - Location: "Los Angeles, United States"
# Start and compare
proxy2vpn vpn start --all
proxy2vpn vpn list
```
### US Scraping Fleet (Multiple Endpoints)
```bash
# Plan a small fleet in the US (10 endpoints using a single profile)
proxy2vpn fleet plan --countries "United States" --profiles "us-dev:10" --unique-ips
# Deploy in parallel and check status
proxy2vpn fleet deploy --parallel
proxy2vpn fleet status --show-allocation
```
### CI: Ephemeral US Proxies
```bash
# Generate a reproducible plan file for CI
proxy2vpn fleet plan --countries "United States" --profiles "ci:3" --output ci-us-fleet.yml
# Validate or dry-run during pipeline
proxy2vpn fleet deploy --plan-file ci-us-fleet.yml --dry-run
# Deploy only when needed, then tear down
proxy2vpn fleet deploy --plan-file ci-us-fleet.yml --parallel --validate-first
proxy2vpn fleet scale down --factor 0
```
## Container Management & Monitoring
Each VPN container exposes both HTTP proxy endpoints and control APIs for programmatic management:
```bash
# Check VPN status and public IP
proxy2vpn vpn status london-proxy
proxy2vpn vpn public-ip london-proxy
# Monitor logs and restart tunnels
proxy2vpn vpn logs london-proxy --follow
proxy2vpn vpn restart-tunnel london-proxy
# Bulk operations across all services
proxy2vpn vpn start --all
proxy2vpn vpn list
```
**Docker Integration**: All containers use consistent labeling and networking, making them easy to integrate with existing Docker workflows and monitoring tools.
### Control server authentication
To enable authenticated access to the Gluetun control API, create an auth
configuration file such as:
```toml
[[roles]]
name = "qbittorrent"
routes = ["GET /v1/openvpn/portforwarded"]
auth = "basic"
username = "myusername"
password = "mypassword"
```
Bind mount this file to `/gluetun/auth/config.toml` (or set a custom path via
the `HTTP_CONTROL_SERVER_AUTH_CONFIG_FILEPATH` environment variable) and restart
the container for the configuration to take effect.
## Enterprise Fleet Management
**The real power of Proxy2VPN**: Deploy and manage dozens of VPN endpoints across the globe like infrastructure, not individual connections.
### Multi-Provider Fleet Orchestration (New!)
**Automatic provider orchestration**: Mix ExpressVPN, NordVPN, ProtonVPN in a single deployment. Each profile specifies its provider - the system coordinates everything automatically.
```bash
# Create profiles with provider information
cat <<'EOF' > profiles/expressvpn-main.env
VPN_TYPE=openvpn
VPN_SERVICE_PROVIDER=expressvpn
OPENVPN_USER=your_expressvpn_username
OPENVPN_PASSWORD=your_expressvpn_password
HTTPPROXY=on
HTTPPROXY_USER=proxy_user
HTTPPROXY_PASSWORD=proxy_pass
EOF
cat <<'EOF' > profiles/nordvpn-backup.env
VPN_TYPE=openvpn
VPN_SERVICE_PROVIDER=nordvpn
OPENVPN_USER=your_nordvpn_username
OPENVPN_PASSWORD=your_nordvpn_password
HTTPPROXY=on
HTTPPROXY_USER=proxy_user
HTTPPROXY_PASSWORD=proxy_pass
EOF
# Register profiles
proxy2vpn profile create expressvpn-main profiles/expressvpn-main.env
proxy2vpn profile create nordvpn-backup profiles/nordvpn-backup.env
proxy2vpn profile create protonvpn-fleet profiles/protonvpn-fleet.env
# Single command deploys across ALL providers automatically
proxy2vpn fleet plan \
--countries "Germany,France,Netherlands,United Kingdom,United States" \
--profiles "expressvpn-main:6,nordvpn-backup:4,protonvpn-fleet:8"
# Deploy multi-provider fleet in one operation
proxy2vpn fleet deploy --parallel
```
**Result**: 18 endpoints automatically distributed across 3 VPN providers, with coordinated port allocation and intelligent load balancing.
### Scenario: Global Web Scraping Infrastructure
You need maximum IP diversity for scraping across 15 countries:
```bash
# Plan deployment: 20 endpoints across multiple providers for maximum diversity
proxy2vpn fleet plan \
--countries "Germany,France,Netherlands,United Kingdom,United States,Canada" \
--profiles "expressvpn-main:8,nordvpn-backup:6,protonvpn-fleet:6" \
--unique-ips
# Deploy everything in parallel (typically completes in 2-3 minutes)
proxy2vpn fleet deploy --parallel --validate-first
# Check your fleet status - shows provider distribution
proxy2vpn fleet status --show-allocation
```
**Result**: 20 HTTP proxy endpoints across 3 different VPN providers, each with unique IP addresses for maximum scraping diversity.
### Scenario: CI/CD Pipeline Testing
Your application needs testing from different geographic regions:
```bash
# Create a test fleet for your CI pipeline
proxy2vpn fleet plan \
--countries "Germany,Singapore,United States" \
--profiles "ci-testing:3" \
--output ci-fleet.yaml
# Deploy only when tests run
proxy2vpn fleet deploy --plan-file ci-fleet.yaml --dry-run
```
### Automatic Health Management
Fleet management includes intelligent health monitoring:
```bash
# Monitor and rotate failed endpoints automatically
proxy2vpn fleet rotate --criteria performance
# Scale up during high-demand periods
proxy2vpn fleet scale up --countries "United States,Germany" --factor 2
# Scale down to save resources
proxy2vpn fleet scale down --factor 0.5
```
Fleet management handles the complexity so you focus on your application, not infrastructure.
## Common Use Cases
### Web Scraping at Scale
```bash
# Multiple IPs across regions to avoid rate limiting
proxy2vpn fleet plan --countries "US,UK,DE,FR,CA" --profiles "scraping:10"
proxy2vpn fleet deploy --parallel
# Use any endpoint: curl --proxy http://user:pass@localhost:20001 https://api.example.com
```
### Geo-location Testing
```bash
# Test your app from different countries
proxy2vpn vpn create us-east production --location "New York"
proxy2vpn vpn create eu-west production --location "Amsterdam"
proxy2vpn vpn start --all
```
### CI/CD Pipeline Integration
```bash
# Include in your test pipeline
proxy2vpn fleet plan --countries "Germany,Singapore" --profiles "ci:2" --output tests/fleet.yaml
proxy2vpn fleet deploy --plan-file tests/fleet.yaml --validate-first
# Run your geo-specific tests
proxy2vpn fleet scale down --factor 0 # Clean up after tests
```
### Development Environment
```bash
# Persistent development proxies
proxy2vpn vpn create dev-proxy dev-account --port 8888 --location "Netherlands"
# Always available at localhost:8888 for your development
```
## Essential Commands
### System operations
- `proxy2vpn system init [--force]`
- `proxy2vpn system validate`
- `proxy2vpn system diagnose [--lines N] [--all] [--verbose] [--json]`
### Profiles
- `proxy2vpn profile create NAME` (interactive env file creator)
- `proxy2vpn profile add NAME ENV_FILE`
- `proxy2vpn profile list`
- `proxy2vpn profile remove NAME`
- `proxy2vpn profile delete NAME`
- `proxy2vpn profile apply PROFILE SERVICE [--port PORT]`
### VPN services
- `proxy2vpn vpn create` (interactive)
- `proxy2vpn vpn list`
- `proxy2vpn vpn start [NAME | --all]`
- `proxy2vpn vpn stop [NAME | --all]`
- `proxy2vpn vpn restart [NAME | --all]`
- `proxy2vpn vpn logs NAME [--lines N] [--follow]`
- `proxy2vpn vpn delete [NAME | --all]`
- `proxy2vpn vpn test NAME`
Notes:
- `vpn list` now includes health analysis by default; `--diagnose` and `--ips-only` options were removed.
- Provider is inferred from the selected profile during `vpn create`.
### Server database
- `proxy2vpn servers update`
- `proxy2vpn servers list-providers`
- `proxy2vpn servers list-countries PROVIDER`
- `proxy2vpn servers list-cities PROVIDER COUNTRY`
- `proxy2vpn servers validate-location PROVIDER LOCATION`
### Fleet management
- `proxy2vpn fleet plan --countries "Germany,France" --profiles "acc1:2,acc2:8" [--output PLAN_FILE] [--unique-ips]`
- `proxy2vpn fleet deploy [--plan-file PLAN_FILE] [--parallel] [--validate-first] [--dry-run] [--force]`
- `proxy2vpn fleet status [--format table|json|yaml] [--show-allocation] [--show-health]`
- `proxy2vpn fleet rotate [--country COUNTRY] [--criteria random|performance|load] [--dry-run]`
- `proxy2vpn fleet scale up|down [--countries COUNTRIES] [--factor N]`
## Development
### Setup
```bash
# Install with development dependencies
uv sync
# or
pip install -e ".[dev]"
```
### Testing
```bash
# Run tests (if available)
pytest
```
### Changelog Management
This project uses [Towncrier](https://towncrier.readthedocs.io/) for changelog management:
```bash
# Add a news fragment for your changes
echo "Your feature description" > news/<PR_NUMBER>.feature.md
# Preview the changelog
make changelog-draft
# Build the changelog (maintainers)
make changelog VERSION=x.y.z
```
Recent highlights (see CHANGELOG.md for details):
- Interactive `vpn create` flow replaces argument-based creation.
- Profile lifecycle split: `profile remove` (from compose) and `profile delete` (delete env file).
- Control server auth config created during `system init` and mounted automatically.
- Default health analysis in `vpn list`; removed `--diagnose`/`--ips-only` flags.
---
## Why Proxy2VPN Works
**Infrastructure as Code**: Treat VPN endpoints like any other infrastructure - version controlled, reproducible, and scalable.
**Built for Developers**: No GUI nonsense. Pure command-line interface that integrates with your existing workflows, CI/CD pipelines, and Docker toolchain.
**Production Ready**: Used for large-scale web scraping operations, geo-distributed testing, and enterprise proxy infrastructure. Battle-tested reliability with automatic health monitoring.
**Zero Vendor Lock-in**: Works with 30+ VPN providers. Switch providers, add accounts, or migrate configurations without rewriting your setup.
**From Minutes to Milliseconds**: Stop spending hours configuring VPN clients. Get from zero to working proxy infrastructure in under 5 minutes.
**Scale When You Need**: Start with a single endpoint, scale to hundreds across dozens of countries when your requirements grow.
## Get Started Now
```bash
uvx proxy2vpn system init
uvx proxy2vpn --help
```
Join developers who've eliminated VPN configuration headaches and built reliable proxy infrastructure that just works.
## License
MIT
Raw data
{
"_id": null,
"home_page": null,
"name": "proxy2vpn",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "vpn, proxy, utilities",
"author": null,
"author_email": "Serhii Khalymon <serhii.khalymon@pm.me>",
"download_url": "https://files.pythonhosted.org/packages/26/8b/a3d0a1af787e80555170944449ffb1aa76ee48c6073457956db211abed11/proxy2vpn-0.15.0.tar.gz",
"platform": null,
"description": "# Proxy2VPN\n\n[](https://badge.fury.io/py/proxy2vpn)\n[](https://www.python.org/downloads/release/python-3100/)\n[](https://opensource.org/licenses/MIT)\n\n**Enterprise-grade VPN container orchestration for developers who need reliable proxy infrastructure.**\n\nStop wrestling with VPN clients that crash, managing multiple accounts manually, or dealing with inconsistent proxy setups. Proxy2VPN turns Docker containers into a fleet of rock-solid VPN endpoints you can deploy, monitor, and scale across dozens of countries in minutes.\n\n## Why Proxy2VPN?\n\n**The Problem**: You need reliable proxy infrastructure for testing, scraping, or accessing geo-restricted content. Traditional VPN clients are unreliable, managing multiple accounts is painful, and scaling across regions is a nightmare.\n\n**The Solution**: Containerized VPN services that just work. Deploy 50 VPN endpoints across 20 countries with a single command. Load-balance across multiple accounts automatically. Monitor health and rotate failed servers without intervention.\n\n**Real-world use cases**:\n- Web scraping with rotating IP addresses across multiple countries\n- Testing geo-restricted applications from different regions \n- Load balancing traffic across multiple VPN accounts\n- Creating development environments that mirror production geography\n- Building resilient proxy infrastructure for CI/CD pipelines\n\n## Key Features\n\n- **Fleet Management**: Deploy VPN containers across multiple countries and cities in parallel\n- **Profile-based Credentials**: Manage multiple VPN accounts as reusable configurations\n- **Intelligent Load Balancing**: Distribute connections across accounts automatically\n- **Health Monitoring**: Auto-rotate failed servers and maintain uptime\n- **HTTP Proxy Support**: Built-in authenticated proxy endpoints for each VPN\n- **Provider Agnostic**: Works with ProtonVPN, NordVPN, ExpressVPN, and 30+ providers via gluetun\n\n## Requirements\n\n- Docker and Docker Compose\n- Python 3.10+\n- A VPN account from any [supported provider](https://github.com/qdm12/gluetun-wiki/tree/main/setup/providers)\n\n## Quick Installation\n\n```bash\n# Install via uvx (recommended - no global dependencies)\nuvx proxy2vpn --help\n\n# Or install globally\npip install proxy2vpn\n```\n\n> **Note**: `uvx` is part of the [uv](https://github.com/astral-sh/uv) toolchain. Install with: `curl -LsSf https://astral.sh/uv/install.sh | sh`\n\n## 5-Minute Quick Start\n\nGet a VPN endpoint running in under 5 minutes:\n\n```bash\n# 1. Initialize your workspace\nproxy2vpn system init\n\n# 2. Create your first profile with VPN credentials (all fields required)\nmkdir -p profiles\ncat <<'EOF' > profiles/production.env\nVPN_TYPE=openvpn\nVPN_SERVICE_PROVIDER=protonvpn\nOPENVPN_USER=your_protonvpn_username\nOPENVPN_PASSWORD=your_protonvpn_password\nHTTPPROXY=on\nHTTPPROXY_USER=proxy_user\nHTTPPROXY_PASSWORD=proxy_pass\nEOF\n\n# 3. Register the profile and create a VPN service\n# Option A: Add the env file you just created\nproxy2vpn profile add production profiles/production.env\n\n# Option B: Create the env file interactively (no manual file needed)\n# proxy2vpn profile create production\n\n# Create a VPN service interactively (choose name/profile/ports when prompted)\nproxy2vpn vpn create\n\n# 4. Start and test your VPN\nproxy2vpn vpn start london-proxy\nproxy2vpn vpn test london-proxy\n\n# 5. Use your proxy (HTTP proxy now available on localhost:8888)\ncurl --proxy http://proxy_user:proxy_pass@localhost:8888 https://httpbin.org/ip\n```\n\n**That's it!** Your VPN container is running and you have an authenticated HTTP proxy endpoint.\n\n## Quickstarts by Use Case (USA)\n\nThese short flows cover common US-focused setups. Location names must be valid for your provider (use `proxy2vpn servers list-cities <provider> \"United States\"` to explore).\n\n### Single US Proxy (Local Dev)\n\n```bash\n# 1) Create a profile\nproxy2vpn profile create us-dev\n\n# 2) Create a service interactively (choose profile, ports, and location)\nproxy2vpn vpn create\n# Suggested answers:\n# - Service name: us-nyc\n# - Profile: us-dev\n# - Host port: 8888 (or 0 for auto)\n# - Control port: 0 (auto)\n# - Location: \"New York, United States\"\n\n# 3) Start and test\nproxy2vpn vpn start us-nyc\nproxy2vpn vpn public-ip us-nyc\ncurl --proxy http://user:pass@localhost:8888 https://httpbin.org/ip\n```\n\n### East/West Geo Testing (US)\n\n```bash\n# Create two services interactively\nproxy2vpn vpn create\n# - Service name: us-east\n# - Profile: us-dev\n# - Host port: 20001 (or auto)\n# - Control port: 0 (auto)\n# - Location: \"New York, United States\"\n\nproxy2vpn vpn create\n# - Service name: us-west\n# - Profile: us-dev\n# - Host port: 20002 (or auto)\n# - Control port: 0 (auto)\n# - Location: \"Los Angeles, United States\"\n\n# Start and compare\nproxy2vpn vpn start --all\nproxy2vpn vpn list\n```\n\n### US Scraping Fleet (Multiple Endpoints)\n\n```bash\n# Plan a small fleet in the US (10 endpoints using a single profile)\nproxy2vpn fleet plan --countries \"United States\" --profiles \"us-dev:10\" --unique-ips\n\n# Deploy in parallel and check status\nproxy2vpn fleet deploy --parallel\nproxy2vpn fleet status --show-allocation\n```\n\n### CI: Ephemeral US Proxies\n\n```bash\n# Generate a reproducible plan file for CI\nproxy2vpn fleet plan --countries \"United States\" --profiles \"ci:3\" --output ci-us-fleet.yml\n\n# Validate or dry-run during pipeline\nproxy2vpn fleet deploy --plan-file ci-us-fleet.yml --dry-run\n\n# Deploy only when needed, then tear down\nproxy2vpn fleet deploy --plan-file ci-us-fleet.yml --parallel --validate-first\nproxy2vpn fleet scale down --factor 0\n```\n\n## Container Management & Monitoring\n\nEach VPN container exposes both HTTP proxy endpoints and control APIs for programmatic management:\n\n```bash\n# Check VPN status and public IP\nproxy2vpn vpn status london-proxy\nproxy2vpn vpn public-ip london-proxy\n\n# Monitor logs and restart tunnels\nproxy2vpn vpn logs london-proxy --follow\nproxy2vpn vpn restart-tunnel london-proxy\n\n# Bulk operations across all services\nproxy2vpn vpn start --all\nproxy2vpn vpn list\n```\n\n**Docker Integration**: All containers use consistent labeling and networking, making them easy to integrate with existing Docker workflows and monitoring tools.\n\n### Control server authentication\n\nTo enable authenticated access to the Gluetun control API, create an auth\nconfiguration file such as:\n\n```toml\n[[roles]]\nname = \"qbittorrent\"\nroutes = [\"GET /v1/openvpn/portforwarded\"]\nauth = \"basic\"\nusername = \"myusername\"\npassword = \"mypassword\"\n```\n\nBind mount this file to `/gluetun/auth/config.toml` (or set a custom path via\nthe `HTTP_CONTROL_SERVER_AUTH_CONFIG_FILEPATH` environment variable) and restart\nthe container for the configuration to take effect.\n\n## Enterprise Fleet Management\n\n**The real power of Proxy2VPN**: Deploy and manage dozens of VPN endpoints across the globe like infrastructure, not individual connections.\n\n### Multi-Provider Fleet Orchestration (New!)\n\n**Automatic provider orchestration**: Mix ExpressVPN, NordVPN, ProtonVPN in a single deployment. Each profile specifies its provider - the system coordinates everything automatically.\n\n```bash\n# Create profiles with provider information\ncat <<'EOF' > profiles/expressvpn-main.env\nVPN_TYPE=openvpn\nVPN_SERVICE_PROVIDER=expressvpn\nOPENVPN_USER=your_expressvpn_username\nOPENVPN_PASSWORD=your_expressvpn_password\nHTTPPROXY=on\nHTTPPROXY_USER=proxy_user\nHTTPPROXY_PASSWORD=proxy_pass\nEOF\n\ncat <<'EOF' > profiles/nordvpn-backup.env\nVPN_TYPE=openvpn\nVPN_SERVICE_PROVIDER=nordvpn\nOPENVPN_USER=your_nordvpn_username\nOPENVPN_PASSWORD=your_nordvpn_password\nHTTPPROXY=on\nHTTPPROXY_USER=proxy_user\nHTTPPROXY_PASSWORD=proxy_pass\nEOF\n\n# Register profiles\nproxy2vpn profile create expressvpn-main profiles/expressvpn-main.env\nproxy2vpn profile create nordvpn-backup profiles/nordvpn-backup.env\nproxy2vpn profile create protonvpn-fleet profiles/protonvpn-fleet.env\n\n# Single command deploys across ALL providers automatically\nproxy2vpn fleet plan \\\n --countries \"Germany,France,Netherlands,United Kingdom,United States\" \\\n --profiles \"expressvpn-main:6,nordvpn-backup:4,protonvpn-fleet:8\"\n\n# Deploy multi-provider fleet in one operation\nproxy2vpn fleet deploy --parallel\n```\n\n**Result**: 18 endpoints automatically distributed across 3 VPN providers, with coordinated port allocation and intelligent load balancing.\n\n### Scenario: Global Web Scraping Infrastructure\n\nYou need maximum IP diversity for scraping across 15 countries:\n\n```bash\n# Plan deployment: 20 endpoints across multiple providers for maximum diversity\nproxy2vpn fleet plan \\\n --countries \"Germany,France,Netherlands,United Kingdom,United States,Canada\" \\\n --profiles \"expressvpn-main:8,nordvpn-backup:6,protonvpn-fleet:6\" \\\n --unique-ips\n\n# Deploy everything in parallel (typically completes in 2-3 minutes)\nproxy2vpn fleet deploy --parallel --validate-first\n\n# Check your fleet status - shows provider distribution\nproxy2vpn fleet status --show-allocation\n```\n\n**Result**: 20 HTTP proxy endpoints across 3 different VPN providers, each with unique IP addresses for maximum scraping diversity.\n\n### Scenario: CI/CD Pipeline Testing\n\nYour application needs testing from different geographic regions:\n\n```bash\n# Create a test fleet for your CI pipeline\nproxy2vpn fleet plan \\\n --countries \"Germany,Singapore,United States\" \\\n --profiles \"ci-testing:3\" \\\n --output ci-fleet.yaml\n\n# Deploy only when tests run\nproxy2vpn fleet deploy --plan-file ci-fleet.yaml --dry-run\n```\n\n### Automatic Health Management\n\nFleet management includes intelligent health monitoring:\n\n```bash\n# Monitor and rotate failed endpoints automatically\nproxy2vpn fleet rotate --criteria performance\n\n# Scale up during high-demand periods\nproxy2vpn fleet scale up --countries \"United States,Germany\" --factor 2\n\n# Scale down to save resources\nproxy2vpn fleet scale down --factor 0.5\n```\n\nFleet management handles the complexity so you focus on your application, not infrastructure.\n\n## Common Use Cases\n\n### Web Scraping at Scale\n```bash\n# Multiple IPs across regions to avoid rate limiting\nproxy2vpn fleet plan --countries \"US,UK,DE,FR,CA\" --profiles \"scraping:10\"\nproxy2vpn fleet deploy --parallel\n\n# Use any endpoint: curl --proxy http://user:pass@localhost:20001 https://api.example.com\n```\n\n### Geo-location Testing\n```bash\n# Test your app from different countries\nproxy2vpn vpn create us-east production --location \"New York\"\nproxy2vpn vpn create eu-west production --location \"Amsterdam\"\nproxy2vpn vpn start --all\n```\n\n### CI/CD Pipeline Integration\n```bash\n# Include in your test pipeline\nproxy2vpn fleet plan --countries \"Germany,Singapore\" --profiles \"ci:2\" --output tests/fleet.yaml\nproxy2vpn fleet deploy --plan-file tests/fleet.yaml --validate-first\n# Run your geo-specific tests\nproxy2vpn fleet scale down --factor 0 # Clean up after tests\n```\n\n### Development Environment\n```bash\n# Persistent development proxies\nproxy2vpn vpn create dev-proxy dev-account --port 8888 --location \"Netherlands\"\n# Always available at localhost:8888 for your development\n```\n\n## Essential Commands\n\n### System operations\n- `proxy2vpn system init [--force]`\n- `proxy2vpn system validate`\n- `proxy2vpn system diagnose [--lines N] [--all] [--verbose] [--json]`\n\n### Profiles\n- `proxy2vpn profile create NAME` (interactive env file creator)\n- `proxy2vpn profile add NAME ENV_FILE`\n- `proxy2vpn profile list`\n- `proxy2vpn profile remove NAME`\n- `proxy2vpn profile delete NAME`\n- `proxy2vpn profile apply PROFILE SERVICE [--port PORT]`\n\n### VPN services\n- `proxy2vpn vpn create` (interactive)\n- `proxy2vpn vpn list`\n- `proxy2vpn vpn start [NAME | --all]`\n- `proxy2vpn vpn stop [NAME | --all]`\n- `proxy2vpn vpn restart [NAME | --all]`\n- `proxy2vpn vpn logs NAME [--lines N] [--follow]`\n- `proxy2vpn vpn delete [NAME | --all]`\n- `proxy2vpn vpn test NAME`\n\nNotes:\n- `vpn list` now includes health analysis by default; `--diagnose` and `--ips-only` options were removed.\n- Provider is inferred from the selected profile during `vpn create`.\n\n### Server database\n- `proxy2vpn servers update`\n- `proxy2vpn servers list-providers`\n- `proxy2vpn servers list-countries PROVIDER`\n- `proxy2vpn servers list-cities PROVIDER COUNTRY`\n- `proxy2vpn servers validate-location PROVIDER LOCATION`\n\n### Fleet management\n- `proxy2vpn fleet plan --countries \"Germany,France\" --profiles \"acc1:2,acc2:8\" [--output PLAN_FILE] [--unique-ips]`\n- `proxy2vpn fleet deploy [--plan-file PLAN_FILE] [--parallel] [--validate-first] [--dry-run] [--force]`\n- `proxy2vpn fleet status [--format table|json|yaml] [--show-allocation] [--show-health]`\n- `proxy2vpn fleet rotate [--country COUNTRY] [--criteria random|performance|load] [--dry-run]`\n- `proxy2vpn fleet scale up|down [--countries COUNTRIES] [--factor N]`\n\n## Development\n\n### Setup\n```bash\n# Install with development dependencies\nuv sync\n# or\npip install -e \".[dev]\"\n```\n\n### Testing\n```bash\n# Run tests (if available)\npytest\n```\n\n### Changelog Management\nThis project uses [Towncrier](https://towncrier.readthedocs.io/) for changelog management:\n\n```bash\n# Add a news fragment for your changes\necho \"Your feature description\" > news/<PR_NUMBER>.feature.md\n\n# Preview the changelog\nmake changelog-draft\n\n# Build the changelog (maintainers)\nmake changelog VERSION=x.y.z\n```\n\nRecent highlights (see CHANGELOG.md for details):\n- Interactive `vpn create` flow replaces argument-based creation.\n- Profile lifecycle split: `profile remove` (from compose) and `profile delete` (delete env file).\n- Control server auth config created during `system init` and mounted automatically.\n- Default health analysis in `vpn list`; removed `--diagnose`/`--ips-only` flags.\n\n---\n\n## Why Proxy2VPN Works\n\n**Infrastructure as Code**: Treat VPN endpoints like any other infrastructure - version controlled, reproducible, and scalable.\n\n**Built for Developers**: No GUI nonsense. Pure command-line interface that integrates with your existing workflows, CI/CD pipelines, and Docker toolchain.\n\n**Production Ready**: Used for large-scale web scraping operations, geo-distributed testing, and enterprise proxy infrastructure. Battle-tested reliability with automatic health monitoring.\n\n**Zero Vendor Lock-in**: Works with 30+ VPN providers. Switch providers, add accounts, or migrate configurations without rewriting your setup.\n\n**From Minutes to Milliseconds**: Stop spending hours configuring VPN clients. Get from zero to working proxy infrastructure in under 5 minutes.\n\n**Scale When You Need**: Start with a single endpoint, scale to hundreds across dozens of countries when your requirements grow.\n\n## Get Started Now\n\n```bash\nuvx proxy2vpn system init\nuvx proxy2vpn --help\n```\n\nJoin developers who've eliminated VPN configuration headaches and built reliable proxy infrastructure that just works.\n\n## License\n\nMIT\n",
"bugtrack_url": null,
"license": null,
"summary": "Proxy2VPN Python utilities",
"version": "0.15.0",
"project_urls": null,
"split_keywords": [
"vpn",
" proxy",
" utilities"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "5d54a605007f273fd77526925608ecfe48e4f1dc60fe7f8dae9de6ac675cf465",
"md5": "baabcbfeb96e1a35253c61d13512424c",
"sha256": "e7b3477ea8c91fb7a28a35893871a8521ee2be2ede3177e0b80750d15223f143"
},
"downloads": -1,
"filename": "proxy2vpn-0.15.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "baabcbfeb96e1a35253c61d13512424c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 75520,
"upload_time": "2025-08-26T20:33:26",
"upload_time_iso_8601": "2025-08-26T20:33:26.502994Z",
"url": "https://files.pythonhosted.org/packages/5d/54/a605007f273fd77526925608ecfe48e4f1dc60fe7f8dae9de6ac675cf465/proxy2vpn-0.15.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "268ba3d0a1af787e80555170944449ffb1aa76ee48c6073457956db211abed11",
"md5": "04da489991c3a45c223216a9fd231ac8",
"sha256": "968c627c2c0ab11e7c695e0b235cc2dcb4e061e6d08d7a4df2fd69fd5aed165c"
},
"downloads": -1,
"filename": "proxy2vpn-0.15.0.tar.gz",
"has_sig": false,
"md5_digest": "04da489991c3a45c223216a9fd231ac8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 88894,
"upload_time": "2025-08-26T20:33:27",
"upload_time_iso_8601": "2025-08-26T20:33:27.954519Z",
"url": "https://files.pythonhosted.org/packages/26/8b/a3d0a1af787e80555170944449ffb1aa76ee48c6073457956db211abed11/proxy2vpn-0.15.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-26 20:33:27",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "proxy2vpn"
}