Skip to content

A simple, all-in-one tool for deploying on-demand WireGuard VPN servers on popular VPS providers—no ongoing subscriptions, effortless management, and automatic cleanup when you’re done.

License

Notifications You must be signed in to change notification settings

g1ibby/auto-vpn

Repository files navigation

Auto-VPN: On-Demand WireGuard VPN Server Manager

License: MIT

Deploy your personal WireGuard VPN server with just a few clicks. No subscriptions, no complexity, full control.

Main interface

This project provides an effortless way to spin up your own temporary, cost-effective WireGuard VPN servers on-demand—no long-term subscriptions or complex manual setups required. By leveraging popular VPS providers like Vultr or Linode, it automatically:

🚀 Features

  • On-Demand Deployment: Launch VPN servers instantly on Vultr or Linode
  • Cost-Effective: Pay only for actual usage with automatic server cleanup
  • User-Friendly Interface: Simple GUI for server and profile management
  • Enhanced Privacy: Full control over your VPN infrastructure
  • Automated Setup: Pre-configured WireGuard installation
  • Multi-Provider Support: Works with major VPS providers (Vultr, Linode)

🏃‍♂️ Quick Start

Local Deployment (Docker)

  1. Create a data directory:
mkdir data_layer
  1. Run the container:
docker run --rm -d --pull always --name auto-vpn \
  -e USERNAME=admin \
  -e PASSWORD=qwerty \
  -e VULTR_API_KEY=<your-vultr-api-key> \
  -v $(pwd)/data_layer:/app/data_layer \
  -p 8501:8501 \
  ghcr.io/g1ibby/auto-vpn
  1. Access the interface at http://localhost:8501

Free Cloud Deployment (Render.com)

  1. Create New Web Service

    • Sign in to Render Dashboard
    • Choose "New Web Service"
    • Select Docker runtime
    • Use image: ghcr.io/g1ibby/auto-vpn
  2. Configure Environment Variables

    Required:

    • USERNAME: Admin username
    • PASSWORD: Admin password
    • VULTR_API_KEY or LINODE_API_KEY: VPS provider API key
    • SELF_URL: Your Render service URL (e.g., https://your-service.onrender.com)

    Optional:

    • DATABASE_URL: PostgreSQL connection string (recommended for persistence)
  3. Deploy and Access

    • Service will be available at your Render URL
    • Auto-ping feature keeps the service active on free tier

💻 Environment Variables

Variable Required Description
USERNAME Yes Admin login username
PASSWORD Yes Admin login password
VULTR_API_KEY * Vultr API key
LINODE_API_KEY * Linode API key
SELF_URL No Service URL for auto-ping
DATABASE_URL No PostgreSQL connection string

* Either VULTR_API_KEY or LINODE_API_KEY is required

🏗️ Architecture

Flowchart

The project leverages several powerful technologies:

  • Pulumi: Infrastructure as Code for VPS management
  • WireGuard: Secure VPN protocol
  • Streamlit: Modern web interface
  • Docker: Containerization and easy deployment

🔒 Security Considerations

  • All VPN traffic is encrypted using WireGuard
  • No logs are kept on VPN servers
  • Servers are automatically destroyed after inactivity
  • Full control over infrastructure eliminates third-party trust

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

🗺️ Roadmap

New Cloud Providers

  • DigitalOcean
  • Hetzner
  • AWS

Enhanced User Experience

  • QR code generation for WireGuard peers
    • Easy mobile device configuration
    • One-click peer sharing

🙏 Acknowledgments

  • Pulumi: Handles infrastructure provisioning, making it simple to deploy and tear down VPS instances on-demand.
  • Nyr/wireguard-install: Automates the WireGuard installation process, ensuring a seamless setup experience.
  • Streamlit: GUI

About

A simple, all-in-one tool for deploying on-demand WireGuard VPN servers on popular VPS providers—no ongoing subscriptions, effortless management, and automatic cleanup when you’re done.

Topics

Resources

License

Stars

Watchers

Forks

Packages