-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathserver-trojan.sh
executable file
·77 lines (68 loc) · 1.31 KB
/
server-trojan.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/bin/bash
DIR=`dirname $0`
DIR="$(cd $DIR; pwd)"
SVCID="trojan"
CTNNAME="server-$SVCID"
IMGNAME="samuelhbne/server-trojan"
ARCH=`uname -m`
case $ARCH in
x86_64|i686|i386)
TARGET=amd64
;;
aarch64)
# Amazon A1 instance
TARGET=arm64
;;
armv6l|armv7l)
# Raspberry Pi
TARGET=arm
;;
*)
echo "Unsupported arch"
exit 255
;;
esac
while [[ $# > 0 ]]; do
case $1 in
--from-src)
docker build -t $IMGNAME:$TARGET -f $DIR/Dockerfile.$TARGET $DIR
break
;;
*)
shift
;;
esac
done
. $DIR/$CTNNAME.env
case $DNSUPDATE in
duckdns)
echo "Update $DUCKDNSDOMAIN.duckdns.org IP address..."
RESULT=`curl -sSL "https://duckdns.org/update/$DUCKDNSDOMAIN/$DUCKDNSTOKEN"`
echo "$RESULT"
if [ "$RESULT" != "OK" ]; then
echo "DNS update failed."
exit 253
fi
TRJDOMAIN="${DUCKDNSDOMAIN}.duckdns.org"
echo "Domain-name $TRJDOMAIN updated."
echo
;;
*)
echo "Unsupported DNS update service."
exit 254
;;
esac
echo "Starting $CTNNAME..."
docker run --name $CTNNAME -p 80:80 -p $TRJPORT:443 -d $IMGNAME:$TARGET \
-d ${TRJDOMAIN} -w $TRJPASS -f $TRJFAKEDOMAIN
echo
sleep 5
CNT=`docker ps|grep $IMGNAME:$TARGET|grep $CTNNAME -c`
if [ $CNT > 0 ]; then
echo "$CTNNAME started."
echo "Done"
exit 0
else
echo "Starting $CTNNAME failed. Check detail with \"docker logs $CTNNAME\""
exit 252
fi