Welcome to Proxy Tester! Proxy Tester is written in TypeScript and Node.js and is primarily intended to assist in testing the intermediary proxies and their ability to pass HTTP status and other header information back to a client.
- Handles every valid HTTP status code from 100-599 for testing.
- For request
/<statuscode>, responds with the corresponding status code, the type of the status code, client's IP and headers sent by the client. - For status codes in the 300 range, redirects to
/redirected/<statuscode>and responds with client's IP and headers sent by the client. - Provides detailed debug logs for incoming request IPs and User-Agents.
- Uses automated GitHub Actions Workflows to build and push docker images to GitHub Container Registry.
Before we get started, make sure you have Node.js (preferably the latest version) installed. You will also need to have yarn installed.
First, clone this repository to your local machine. Use the following command to clone it using HTTPS:
git clone https://github.com/aperim/proxy-tester.gitOnce you've cloned the repository, navigate to the project root:
cd proxy-testerOpen Terminal, change to the project directory (i.e., proxy-tester), and execute the following command to install the project dependencies:
yarn installTo build application execute the following command:
yarn buildBuild results will be output to a build/src directory in the root of the project.
To run the built application use:
yarn startThe server will start running on port 3000 and is accessible at http://localhost:3000
This project comes equipped with a Dockerfile for building a Docker image of the app, and can be built with Docker running using the following command:
yarn container:buildThis repository uses automated GitHub Actions Workflows to automatically run tests and build a Docker image whenever code is pushed to the repository. It also labels and pushes the Docker image to GitHub Container Registry.
Whether you notice a bug, want to add a feature, or even improve the README, we would appreciate it if you could create an issue so that we could discuss the changes further.
Licensed under the MIT license.