|
| 1 | +# Proxy Forge |
| 2 | + |
| 3 | +Proxy Forge is a free and open-source tool that helps you to set up OSI level 4 proxies with rotating IPs on the Digital Ocean platform. It is a powerful and innovative solution that addresses one of the most pressing challenges faced by developers and businesses in today's digital landscape: IP throttling and blacklisting. Proxy Forge empowers you to conquer these obstacles by providing a seamless, reliable, and easy-to-deploy solution. |
| 4 | + |
| 5 | +In simpler terms, Proxy Forge helps you to create a pool of rotating IP addresses that you can use to access the internet. This can be useful for a variety of purposes, such as avoiding IP bans, scraping websites, and testing web applications. |
| 6 | + |
| 7 | +Proxy Forge is a powerful tool that can be used by both developers and businesses. It is easy to use and deploy, and it provides a number of features that make it a valuable tool for anyone who needs to access the internet anonymously or avoid IP bans. |
| 8 | + |
| 9 | +## Features |
| 10 | + |
| 11 | +- **Rotating IPs:** Automatically rotates IP addresses from a set of deployed droplets to avoid detection and blacklisting. |
| 12 | +- **Terraform Scripts:** Provides Terraform scripts for straightforward setup and management. |
| 13 | +- **Scalability:** Easily scale your proxy fleet up or down to handle your specific needs. |
| 14 | +- **Customizable Configuration:** Fine-tune proxy settings to match your requirements. (check [below](#customizations)) |
| 15 | +- **IP Throttling Avoidance:** Effectively bypass IP throttling mechanisms used by websites and services. |
| 16 | +- **Detailed Logging:** Comprehensive logging for monitoring and troubleshooting. |
| 17 | +- **Open Source:** Proxy Forge is open-source, allowing for community contributions and customization. |
| 18 | + |
| 19 | +## Why DigitalOcean? |
| 20 | + |
| 21 | +There are many reasons why you might choose to use DigitalOcean over other cloud providers. Some of the key benefits include: |
| 22 | + |
| 23 | +- **Simplicity:** DigitalOcean is known for its simple and user-friendly interface. It is easy to get started with DigitalOcean, even if you are new to cloud computing. |
| 24 | +- **Affordability:** DigitalOcean offers competitive pricing for its cloud services. It also offers a generous free tier that includes 1 Droplet, 25 GB of storage, and 2 TB of bandwidth per month. |
| 25 | +- **Performance:** DigitalOcean uses high-performance hardware for its Droplets, so you can be sure that your applications will run smoothly. |
| 26 | +- **Reliability:** DigitalOcean has a strong track record of reliability and uptime. |
| 27 | +- **Community:** DigitalOcean has a large and active community of users and developers. This means that there is a wealth of resources available to help you get the most out of your DigitalOcean account. |
| 28 | + |
| 29 | +## Up and Running |
| 30 | + |
| 31 | +### Prerequisites |
| 32 | + |
| 33 | +Before using Proxy Forge, ensure you have the following prerequisites in place: |
| 34 | + |
| 35 | +1. [Digital Ocean Account](https://www.digitalocean.com/?refcode=a7587e994b7e&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge) |
| 36 | +2. [Terraform](https://docs.digitalocean.com/reference/terraform/getting-started/) installed on your local machine |
| 37 | + |
| 38 | +### Steps |
| 39 | + |
| 40 | +1. Clone the repository |
| 41 | + |
| 42 | + ```console |
| 43 | + git clone --depth=1 --branch=main https://github.com/tbhaxor/ProxyForge.git proxyforge |
| 44 | + cd proxyforge |
| 45 | + ``` |
| 46 | + |
| 47 | +2. Create a file for terraform variables. |
| 48 | + |
| 49 | + ```console |
| 50 | + touch terraform.tfvars |
| 51 | + ``` |
| 52 | + |
| 53 | + > **Note** Skip it, if you wish to provide the variables and values from [environment config](https://developer.hashicorp.com/terraform/cli/config/environment-variables#tf_var_name). |
| 54 | + |
| 55 | +3. Setup at least `token` and `region` in the file. See [variables](#variables) section below. |
| 56 | + |
| 57 | +4. Initialize the provider, plan and apply the changes |
| 58 | + |
| 59 | + ```console |
| 60 | + terraform init |
| 61 | + terraform plan |
| 62 | + terraform apply |
| 63 | + ``` |
| 64 | + |
| 65 | +5. Wait for some time for squid proxy to setup and load balancer to initialize routing. |
| 66 | +6. (Optional) Test the deployment |
| 67 | + |
| 68 | + ```sh |
| 69 | + LOAD_BALANCER_IP=$(terraform output -raw lb-ip) |
| 70 | + SQUID_USERNAME=proxyforge # assuming you did not change squid-credentials.username in the tfvars |
| 71 | + SQUID_PASSWORD=proxyforge # assuming you did not change squid-credentials.password in the tfvars |
| 72 | + |
| 73 | + while true; do curl -x "http://proxyforge:proxyforge@$LOAD_BALANCER_IP:80" https://ifconfig.me; echo; done |
| 74 | + ``` |
| 75 | + |
| 76 | +### Variables |
| 77 | + |
| 78 | +| Variable Name | Default | Description | |
| 79 | +| :-----------------: | :----------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
| 80 | +| `token` | N/A | **Required** API token with read/write permissions. [see more](https://docs.digitalocean.com/reference/api/create-personal-access-token/) | |
| 81 | +| `region` | N/A | **Required** Datacenter region to deploy all the resources. [see more](https://docs.digitalocean.com/products/platform/availability-matrix/) | |
| 82 | +| `ssh-fingerprint` | _`null`_ | SSH fingerprint id for droplets to use. If this is ommited, it will send you one-time-password on the email. Can be obtained from [security tab](https://i.imgur.com/TNTj7D8.png) of [accounts](https://cloud.digitalocean.com/account/security) page. [see also](https://docs.digitalocean.com/products/droplets/how-to/add-ssh-keys/) | |
| 83 | +| `prefix` | _pf_ | A prefix to quickly identify proxy-forge resources. | |
| 84 | +| `slave-count` | _2_ | Number of instances on which squid proxy will be installed. | |
| 85 | +| `lb-count` | _1_ | Number of master nodes to setup for load balancer, min `1` is required. | |
| 86 | +| `tag-name` | _proxy-forge-slave_ | Tag name to group slave droplets. | |
| 87 | +| `droplet-size` | _{ slave = "s-1vcpu-1gb-amd" }_ | Droplet size to use. | |
| 88 | +| `project` | _Proxy Forge_ | Name of the project to associate all the resources. | |
| 89 | +| `squid-credentials` | _{ password = "proxyforge", username = "proxyforge" }_ | Squid proxy HTTP basic authentication.credentials | |
| 90 | + |
| 91 | +## Customizations |
| 92 | + |
| 93 | +Configuring ProxyForge to suit your specific needs is a straightforward process. All you need to do is update the settings in the `terraform.tfvars` file to align with your requirements. This file serves as a central configuration hub, allowing you to tailor ProxyForge precisely to your preferences without diving deep into complex setup procedures. |
| 94 | + |
| 95 | +> **Note** After you choose to make any changes from below, make sure to apply it on digitalocean |
| 96 | +> |
| 97 | +> ```console |
| 98 | +> terraform plan |
| 99 | +> terraform apply |
| 100 | +> ``` |
| 101 | + |
| 102 | +### Change the Squid Credentials |
| 103 | + |
| 104 | +```hcl |
| 105 | +squid-credentials = { |
| 106 | + username = "YOUR NEW USERNAME", |
| 107 | + password = "Y0ur53cr37P@55W0rD" |
| 108 | +} |
| 109 | +``` |
| 110 | + |
| 111 | +### Increase or Decrease Proxy Droplets |
| 112 | + |
| 113 | +``` |
| 114 | +slave-count = 5 |
| 115 | +``` |
| 116 | + |
| 117 | +## Future Plans |
| 118 | + |
| 119 | +- Add a user friendly dashboard for administration of squid accounts |
| 120 | +- Make a master service to destroy and spin-up new droplet in same region |
| 121 | +- Multiple regions support |
| 122 | + |
| 123 | +## License |
| 124 | + |
| 125 | +Proxy Forge is licensed under the **MIT License**. See the [LICENSE](LICENSE) file for details. |
| 126 | + |
| 127 | +## Contact Me |
| 128 | + |
| 129 | +Thank you for choosing Proxy Forge! I hope this tool helps you overcome IP throttling and blacklisting challenges, making your web-related tasks smoother and more efficient. If you have any questions or encounter issues, feel free to reach out to me. Happy proxying! |
| 130 | + |
| 131 | +Website: https://tbhaxor.com <br /> |
| 132 | +Email Address: tbhaxor `at` gmail `dot` com <br /> |
| 133 | +LinkedIn: @tbhaxor <br /> |
| 134 | +Twitter: @tbhaxor <br /> |
| 135 | +Discord: @tbhaxor.com <br /> |
| 136 | +Reddit: @tbhaxor <br /> |
0 commit comments