diff --git a/.gitignore b/.gitignore index 496ee2c..efcb0e7 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ -.DS_Store \ No newline at end of file +.DS_Store + +# local environment +.env diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..267d3a8 --- /dev/null +++ b/Makefile @@ -0,0 +1,47 @@ +include .env +export + + +# Operating with simple Docker container +# -------------------------------------- + +run: + docker run -d -p ${TOR_ENTRY_PORT}:5566 -p ${HAPROXY_PORT}:4444 --env tors=${TOR_INSTANCES} --name ${CONTAINER_NAME} ${IMAGE_NAME} + +ps: + docker ps -a | grep "${CONTAINER_NAME}" + +log: + docker logs ${CONTAINER_NAME} + +flog: + docker logs --follow ${CONTAINER_NAME} + +stop: + docker stop ${CONTAINER_NAME} + +rm: + docker rm ${CONTAINER_NAME} + +remove: + make stop + make rm + + +# Operating with Docker service +# ----------------------------- + +service: + docker service create -p ${TOR_ENTRY_PORT}:5566 -p ${HAPROXY_PORT}:4444 --env tors=${TOR_INSTANCES} --name ${SERVICE_NAME} ${IMAGE_NAME} + +service-ls: + docker service ls | grep "${SERVICE_NAME}" + +service-log: + docker service logs ${SERVICE_NAME} + +service-flog: + docker service logs --follow ${SERVICE_NAME} + +service-rm: + docker service rm ${SERVICE_NAME} diff --git a/README.md b/README.md index 6d3f907..9d4ed81 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,26 @@ curl --proxy 127.0.0.1:5566 http://header.jsontest.com http://127.0.0.1:4444/haproxy?stats ``` +Usage with make +--------------- + +1. Install `make` command line utility + +2. Copy `example.env` as `.env` and edit settings + +3. Use `make` commands +```bash +# start docker container +make run + +# stop and remove container +make remove + +# Alternatively, using Docker Service +make service +``` + +See `Makefile` for full list of available shortcuts. Further Readings ---------------- diff --git a/example.env b/example.env new file mode 100644 index 0000000..5fd3e2f --- /dev/null +++ b/example.env @@ -0,0 +1,18 @@ + +# Docker image name +IMAGE_NAME=mattes/rotating-proxy + +# Docker container name +CONTAINER_NAME=rotating-proxy + +# Docker service name +SERVICE_NAME=rotating-proxy + +# How many parallel Tor instances to create +TOR_INSTANCES=16 + +# Entry port for Tor (http proxy) +TOR_ENTRY_PORT=5566 + +# Haproxy monitoring port +HAPROXY_PORT=4444