tor-router/startup.sh
2015-07-06 10:21:09 -04:00

77 lines
2.3 KiB
Bash
Executable file

#!/bin/bash
source env.sh
TEMP_HA_CONFIG=$(mktemp)
TOR_CMD='tor --MaxCircuitDirtiness 60 --RunAsDaemon 0 --CookieAuthentication 0 --controlport 0.0.0.0:9051 --HashedControlPassword 16:4E9480609FC7089F604C83E788481164C25C205288E17D9E5E73EB050B --PidFile tor.pid --SocksPort 0.0.0.0:9150 --DataDirectory /data/tor --ExcludeSingleHopRelays 0 --NewCircuitPeriod 30 --EnforceDistinctSubnets 0 --AllowDotExit 1'
index="0"
#docker -d &
while [ $index -lt $TOR_INSTANCES ]
do
current_instance="$INSTANCE_PREFIX$index"
echo "removing instance $current_instance..."
docker kill $current_instance
docker rm -f $current_instance
echo "instance $current_instance removed"
# control_port=$(cat $2/$current_instance)
echo "instnce $current_instance will be assigned control port control port $control_port"
echo "creating instance $current_instance..."
docker run --name $current_instance -d -v /data --restart="on-failure" nagev/tor $TOR_CMD
echo "instance $current_instance created"
index=$[$index+1]
done
echo "removing haproxy..."
docker kill haproxy
docker rm -f haproxy
echo "writing config..."
cat << EOF > $TEMP_HA_CONFIG
global
user root
group root
defaults
log global
mode http
option dontlognull
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
errorfile 400 /usr/local/etc/haproxy/errors/400.http
errorfile 403 /usr/local/etc/haproxy/errors/403.http
errorfile 408 /usr/local/etc/haproxy/errors/408.http
errorfile 500 /usr/local/etc/haproxy/errors/500.http
errorfile 502 /usr/local/etc/haproxy/errors/502.http
errorfile 503 /usr/local/etc/haproxy/errors/503.http
errorfile 504 /usr/local/etc/haproxy/errors/504.http
EOF
echo "listen socks :$TOR_PORT" > $TEMP_HA_CONFIG
cat <<-EOF >> $TEMP_HA_CONFIG
mode tcp
balance roundrobin
EOF
index="0"
instances=""
while [ $index -lt $TOR_INSTANCES ]
do
current_instance=$INSTANCE_PREFIX$index
instances=$instances" --link $current_instance:$current_instance"
cat <<-EOF >> $TEMP_HA_CONFIG
server $current_instance $current_instance:9150 check
EOF
index=$[$index+1]
done
echo "starting haproxy..."
docker run -d -p 9050:9050 --name haproxy $instances -v $TEMP_HA_CONFIG:/usr/local/etc/haproxy/haproxy.cfg:ro haproxy:1.5.9
echo "tor server setup is complete"
exit 0