Decoy

Reverse-proxy written in python and ready to deploy on Google App Engine platform.

2 minute read

Required expertise level : Intermediate / Advanced

Platform : Gnu/Linux | macOS | MS Windows | Android | BSD


Decoy is a reverse-proxy written in python and ready to deploy on Google App Engine platform. It can be configured to serve a specific website through App Engine.

The main advantage Decoy provides is the ability to serve the configured website through GAE platform - Google App Engine, using a sub-domain under *.appspot.com.

Decoy will proxy all URLs which contains the configured domain in config.py file automatically, any other URL will be opened normally without proxy.

Usage

  1. Clone the project

    git clone https://github.com/icaruslab/decoy.git

  2. Create an account on Google Cloud Platform

  3. After accessing Google Cloud Console create a new project

New Project

  1. Install Google Cloud SDK
  2. Replace the url variable in config.py with your website domain name
  3. Use your terminal to go the project’s directory
  4. Run gcloud init to configure GCloud SDK and login to your account.
  5. Select the project you created earlier using gcloud config set project [ProjectID]

Set project ID

  1. Run gcloud app deploy and follow the instructions to deploy the app

Deploy

  1. Finally you can confirm your mirror is running by visiting [youprojectname].appspot.com

Why Google App Engine?

The main advantage of having the mirror traffic routed through GAE, is the ability to use a sub-domain under appspot.com to access the mirror.

As the same domain is associated with many other Google cloud services it’d be difficult to block it entirely.

However, it’s possible to block the sub-domain without having to block the entire domain name, in which case you’ll be able to get a new mirror up and running in less than two minutes by simply creating a new project with a different name and ID and repeating steps 8:10

Attribution

This project was inspired and built on mirrorrr project.

Disclaimer

This project and all Icarus Project’s related code and guides are developed for the sole purpose of Internet censorship circumvention, more specifically in human rights and independent media context.

Icarus Project is not responsible for any abuse and/or malicious use of any of its published research results.

Todo

  • Rewrite in Python3
Last modified September 20, 2020: Hello world (17bfe5c)