Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/iamstoxe/gluecannon
Gluecannon is a script that orchestrates the deployment and configuration of multiple gluetun VPN containers and a single HAProxy container that acts as a proxy for the VPN containers. It allows you to easily manage and scale your VPN setup using Docker Compose.
https://github.com/iamstoxe/gluecannon
docker gluetun networking vpn
Last synced: 18 days ago
JSON representation
Gluecannon is a script that orchestrates the deployment and configuration of multiple gluetun VPN containers and a single HAProxy container that acts as a proxy for the VPN containers. It allows you to easily manage and scale your VPN setup using Docker Compose.
- Host: GitHub
- URL: https://github.com/iamstoxe/gluecannon
- Owner: IAmStoxe
- Created: 2024-06-03T18:36:58.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2024-06-06T15:32:44.000Z (5 months ago)
- Last Synced: 2024-10-11T02:28:08.048Z (about 1 month ago)
- Topics: docker, gluetun, networking, vpn
- Language: Python
- Homepage:
- Size: 9.77 KB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Gluecannon
Gluecannon is a script that orchestrates the deployment and configuration of multiple gluetun VPN containers and a single HAProxy container that acts as a proxy for the VPN containers. It allows you to easily manage and scale your VPN setup using Docker Compose.
## Features
- Load configuration from a YAML file.
- Generate Docker Compose and HAProxy configuration files based on the loaded configuration.
- Manage (start, stop) VPN containers and HAProxy using Docker Compose.
- Run commands through the HAProxy.
- Start an interactive shell through the HAProxy.## Usage
The script is invoked from the command line with an action argument. The available actions are:
- `up`: Start or restart the VPN containers and HAProxy.
- `down`: Stop the VPN containers and HAProxy.
- `list`: List the running services.
- `run`: Run a command through the HAProxy. This action requires an additional argument specifying the command to run.
- `interactive`: Start an interactive shell through the HAProxy.```mermaid
graph LR
subgraph Docker Network
direction LR
subgraph VPN_Providers
direction LR
provider1_0[Provider1_Container0]
provider1_1[Provider1_Container1]
provider2_0[Provider2_Container0]
end
haproxy[HAProxy]
end
haproxy -->|Routes Traffic| provider1_0
haproxy -->|Routes Traffic| provider1_1
haproxy -->|Routes Traffic| provider2_0
subgraph External Network
user[User]
end
user -->|Accesses via Proxy| haproxy```
Example usage:
```bash
python gluecannon.py up
python gluecannon.py run curl ifconfig.me
python gluecannon.py down
```## Configuration
The script reads its configuration from a YAML file (`config.yml` by default). The configuration file specifies the global settings (like the proxy port and Docker image to use), and the settings for each VPN provider (like the number of containers to start and the environment variables to set).
## Dependencies
- Python 3.6 or later
- Docker
- Docker Compose
- Jinja2## Installation
1. Clone the repository.
2. Install the dependencies.
3. Adjust the configuration file to your needs.
4. Run the script with the desired action.## Contributing
Contributions are welcome. Please submit a pull request or create an issue to discuss the changes.
## License
This project is licensed under the MIT License.