proxy2vpn


Nameproxy2vpn JSON
Version 0.11.0 PyPI version JSON
download
home_pageNone
SummaryProxy2VPN Python utilities
upload_time2025-08-12 23:29:31
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords vpn proxy utilities
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Proxy2VPN

Python command-line interface for managing multiple VPN containers with Docker.

## Features
- Manage VPN credentials as reusable profiles
- Create and control VPN services using gluetun containers
- **Fleet management**: Bulk deployment across multiple cities and profiles
- Multi-service control with `--all` flags
- Query and validate provider server locations
- HTTP proxy authentication support
- Server health monitoring and automatic rotation
- Intelligent profile allocation with load balancing

## Requirements
- Docker and Docker Compose
- Python 3.8+

## Installation

Install `proxy2vpn` from [PyPI](https://pypi.org/project/proxy2vpn/) using `uvx`:

### uvx (run without installing)
```bash
uvx proxy2vpn --help
```

> [!NOTE]
> `uvx` is part of the `uv` toolchain. If `uv` isn't installed, get it with:
> ```bash
> curl -LsSf https://astral.sh/uv/install.sh | sh
> ```

## Quick Start
1. Initialize the compose file:
   ```bash
   proxy2vpn system init
   ```

2. Create a profile file with your VPN credentials:
   ```bash
   mkdir -p profiles
   cat <<'EOF' > profiles/myprofile.env
   OPENVPN_USER=your_username
   OPENVPN_PASSWORD=your_password
   HTTPPROXY=on
   HTTPPROXY_USER=your_proxy_username
   HTTPPROXY_PASSWORD=your_proxy_password
   EOF
   ```

3. Register the profile:
   ```bash
   proxy2vpn profile create myprofile profiles/myprofile.env
   ```

4. Create and start a VPN service:
   ```bash
   proxy2vpn vpn create vpn1 myprofile --port 8888 --provider protonvpn --location "New York"
   proxy2vpn profile apply myprofile vpn1 --port 8888
   proxy2vpn vpn start vpn1
   ```

5. View status and test connectivity:
   ```bash
   proxy2vpn vpn list
   proxy2vpn vpn test vpn1
   ```

## Fleet Management

For enterprise-scale deployment across multiple cities and VPN accounts:

1. Create multiple profiles with different account credentials:
   ```bash
   # Create profiles for different VPN accounts
   proxy2vpn profile create account1 profiles/account1.env
   proxy2vpn profile create account2 profiles/account2.env  
   ```

2. Plan a fleet deployment across countries:
   ```bash
   # Deploy across Germany and France with 2 slots on account1, 8 on account2
   proxy2vpn fleet plan --countries "Germany,France,Netherlands" --profiles "account1:2,account2:8" --unique-ips
   ```

3. Deploy the planned fleet:
   ```bash
   proxy2vpn fleet deploy --parallel
   ```

4. Monitor and manage the fleet:
   ```bash
   # View fleet status with profile allocation
   proxy2vpn fleet status --show-allocation
   
   # Rotate failed servers automatically
   proxy2vpn fleet rotate --dry-run
   ```

## Command overview

### System operations
- `proxy2vpn system init [--force]`
- `proxy2vpn system validate`
- `proxy2vpn system diagnose [--lines N] [--all] [--verbose] [--json]`

### Profiles
- `proxy2vpn profile create NAME ENV_FILE`
- `proxy2vpn profile list`
- `proxy2vpn profile delete NAME`
- `proxy2vpn profile apply PROFILE SERVICE [--port PORT]`

### VPN services
- `proxy2vpn vpn create NAME PROFILE [--port PORT] [--provider PROVIDER] [--location LOCATION]`
- `proxy2vpn vpn list [--diagnose] [--ips-only]`
- `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`

### 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]`
- `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
```

## 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/4a/6c/8e8cc2ecaa12af7e63a24ec2be1229d3bfacfe0fc1d7040814b713e776af/proxy2vpn-0.11.0.tar.gz",
    "platform": null,
    "description": "# Proxy2VPN\n\nPython command-line interface for managing multiple VPN containers with Docker.\n\n## Features\n- Manage VPN credentials as reusable profiles\n- Create and control VPN services using gluetun containers\n- **Fleet management**: Bulk deployment across multiple cities and profiles\n- Multi-service control with `--all` flags\n- Query and validate provider server locations\n- HTTP proxy authentication support\n- Server health monitoring and automatic rotation\n- Intelligent profile allocation with load balancing\n\n## Requirements\n- Docker and Docker Compose\n- Python 3.8+\n\n## Installation\n\nInstall `proxy2vpn` from [PyPI](https://pypi.org/project/proxy2vpn/) using `uvx`:\n\n### uvx (run without installing)\n```bash\nuvx proxy2vpn --help\n```\n\n> [!NOTE]\n> `uvx` is part of the `uv` toolchain. If `uv` isn't installed, get it with:\n> ```bash\n> curl -LsSf https://astral.sh/uv/install.sh | sh\n> ```\n\n## Quick Start\n1. Initialize the compose file:\n   ```bash\n   proxy2vpn system init\n   ```\n\n2. Create a profile file with your VPN credentials:\n   ```bash\n   mkdir -p profiles\n   cat <<'EOF' > profiles/myprofile.env\n   OPENVPN_USER=your_username\n   OPENVPN_PASSWORD=your_password\n   HTTPPROXY=on\n   HTTPPROXY_USER=your_proxy_username\n   HTTPPROXY_PASSWORD=your_proxy_password\n   EOF\n   ```\n\n3. Register the profile:\n   ```bash\n   proxy2vpn profile create myprofile profiles/myprofile.env\n   ```\n\n4. Create and start a VPN service:\n   ```bash\n   proxy2vpn vpn create vpn1 myprofile --port 8888 --provider protonvpn --location \"New York\"\n   proxy2vpn profile apply myprofile vpn1 --port 8888\n   proxy2vpn vpn start vpn1\n   ```\n\n5. View status and test connectivity:\n   ```bash\n   proxy2vpn vpn list\n   proxy2vpn vpn test vpn1\n   ```\n\n## Fleet Management\n\nFor enterprise-scale deployment across multiple cities and VPN accounts:\n\n1. Create multiple profiles with different account credentials:\n   ```bash\n   # Create profiles for different VPN accounts\n   proxy2vpn profile create account1 profiles/account1.env\n   proxy2vpn profile create account2 profiles/account2.env  \n   ```\n\n2. Plan a fleet deployment across countries:\n   ```bash\n   # Deploy across Germany and France with 2 slots on account1, 8 on account2\n   proxy2vpn fleet plan --countries \"Germany,France,Netherlands\" --profiles \"account1:2,account2:8\" --unique-ips\n   ```\n\n3. Deploy the planned fleet:\n   ```bash\n   proxy2vpn fleet deploy --parallel\n   ```\n\n4. Monitor and manage the fleet:\n   ```bash\n   # View fleet status with profile allocation\n   proxy2vpn fleet status --show-allocation\n   \n   # Rotate failed servers automatically\n   proxy2vpn fleet rotate --dry-run\n   ```\n\n## Command overview\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 ENV_FILE`\n- `proxy2vpn profile list`\n- `proxy2vpn profile delete NAME`\n- `proxy2vpn profile apply PROFILE SERVICE [--port PORT]`\n\n### VPN services\n- `proxy2vpn vpn create NAME PROFILE [--port PORT] [--provider PROVIDER] [--location LOCATION]`\n- `proxy2vpn vpn list [--diagnose] [--ips-only]`\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\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]`\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\n## License\nMIT\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Proxy2VPN Python utilities",
    "version": "0.11.0",
    "project_urls": null,
    "split_keywords": [
        "vpn",
        " proxy",
        " utilities"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a19b7d942e27b0d1989af8e5e15463e1fee97d30ce8b365f30e95f9415d3c95f",
                "md5": "b51ef9e9250e8052036a54901ba26731",
                "sha256": "3a60af9a1936edc3f699b39ff55e30f9af78c6cff02e7afe8328ce3dbd1e4a86"
            },
            "downloads": -1,
            "filename": "proxy2vpn-0.11.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b51ef9e9250e8052036a54901ba26731",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 49737,
            "upload_time": "2025-08-12T23:29:30",
            "upload_time_iso_8601": "2025-08-12T23:29:30.487041Z",
            "url": "https://files.pythonhosted.org/packages/a1/9b/7d942e27b0d1989af8e5e15463e1fee97d30ce8b365f30e95f9415d3c95f/proxy2vpn-0.11.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4a6c8e8cc2ecaa12af7e63a24ec2be1229d3bfacfe0fc1d7040814b713e776af",
                "md5": "e26796453476b2c582a323ec0c20edac",
                "sha256": "ded6435ef2c334c6243241e2f2aba20915449743d03fbc9c5359b1bef7796100"
            },
            "downloads": -1,
            "filename": "proxy2vpn-0.11.0.tar.gz",
            "has_sig": false,
            "md5_digest": "e26796453476b2c582a323ec0c20edac",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 54109,
            "upload_time": "2025-08-12T23:29:31",
            "upload_time_iso_8601": "2025-08-12T23:29:31.615278Z",
            "url": "https://files.pythonhosted.org/packages/4a/6c/8e8cc2ecaa12af7e63a24ec2be1229d3bfacfe0fc1d7040814b713e776af/proxy2vpn-0.11.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-12 23:29:31",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "proxy2vpn"
}
        
Elapsed time: 0.55205s