-
Notifications
You must be signed in to change notification settings - Fork 766
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Auto generate script for all in one configs (#145)
* fixes default template value for password at server.json:237 * Auto config generation script * Readme fix * remove ?ed=2048 * remove h2 tcp
- Loading branch information
Showing
2 changed files
with
175 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,160 @@ | ||
#!/bin/bash | ||
################################# | ||
# main domain # | ||
################################# | ||
export main_domain="your.domain.com" # Change this to the correct value | ||
export main_domain_crt="\/path\/to\/main\/domain\/fullchain.pem" # Change this to the correct value | ||
export main_domain_key="\/path\/to\/main\/domain\/privkey.pem" # Change this to the correct value | ||
|
||
################################# | ||
# behind cdn domain # | ||
################################# | ||
export cdn_domain="" # Change this to the correct value | ||
export cdn_domain_crt="\/path\/to\/cdn\/domain\/fullchain.pem" # Change this to the correct value | ||
export cdn_domain_key="\/path\/to\/cdn\/domain\/privkey.pem" # Change this to the correct value | ||
|
||
################################# | ||
# uuid/pass # | ||
################################# | ||
export myid=`xray uuid` # (optional) Let xray pick a random uuid or change it | ||
export mypass=`date | md5sum | cut -c -15` # (optional) Set a password or let script pick one at random | ||
|
||
|
||
####################################################################################### | ||
####################################################################################### | ||
###### Do not change anything below this line unless you know what you're doing. ###### | ||
####################################################################################### | ||
####################################################################################### | ||
|
||
################################# | ||
# fake data # | ||
################################# | ||
export fake_domain="example.com" | ||
export fake_cdn_domain="behindcdn.com" | ||
export fakepass="desdemona99" | ||
export fakeid="90e4903e-66a4-45f7-abda-fd5d5ed7f797" | ||
export fake_domain_crt_path="\/etc\/ssl\/example.com\/domain.pem" | ||
export fake_domain_key_path="\/etc\/ssl\/example.com\/domain-key.pem" | ||
export fake_cdn_domain_crt_path="\/etc\/ssl\/behindcdn.com\/domain.pem" | ||
export fake_cdn_domain_key_path="\/etc\/ssl\/behindcdn.com\/domain-key.pem" | ||
|
||
Help() | ||
{ | ||
echo "*************************************************************************" | ||
echo "*************************************************************************" | ||
echo "Please read the contents of this file and change all the required fields." | ||
echo "*************************************************************************" | ||
echo "*************************************************************************" | ||
echo | ||
echo | ||
echo "Commands" | ||
echo | ||
echo "m Make and store the configs in result.txt." | ||
echo "r Revert all the changes." | ||
echo "q Print the qr codes of configs in terminal. Run this after running with -m." | ||
echo "b Print one base64 link for all configs in terminal. Run this after running with -m." | ||
echo | ||
echo | ||
echo "Usage: " | ||
echo | ||
echo " bash setup.sh <-command> " | ||
echo | ||
} | ||
|
||
Revert() | ||
{ | ||
git restore client.configs/* server.json nginx.conf | ||
} | ||
|
||
Make() | ||
{ | ||
################################# | ||
# main domain # | ||
################################# | ||
sed -i "s/$fake_domain_crt_path/$main_domain_crt/g" server.json client.configs/* nginx.conf | ||
sed -i "s/$fake_domain_key_path/$main_domain_key/g" server.json client.configs/* nginx.conf | ||
sed -i "s/$fake_domain/$main_domain/g" server.json client.configs/* nginx.conf | ||
|
||
################################# | ||
# behind cdn domain # | ||
################################# | ||
if [ "$cdn_domain" == "" ]; then | ||
echo "No domain behind cdn set. Removing related fields." | ||
sed -i "146 s/.$//" server.json | ||
sed -i "147,152d" server.json | ||
fi | ||
|
||
sed -i "s/$fake_cdn_domain_crt_path/$cdn_domain_crt/g" server.json client.configs/* nginx.conf | ||
sed -i "s/$fake_cdn_domain_key_path/$cdn_domain_key/g" server.json client.configs/* nginx.conf | ||
sed -i "s/$fake_cdn_domain/$cdn_domain/g" server.json client.configs/* nginx.conf | ||
|
||
################################# | ||
# uuid/pass # | ||
################################# | ||
sed -i "s/$fakeid/$myid/g" server.json client.configs/* nginx.conf | ||
sed -i "s/$fakepass/$mypass/g" server.json client.configs/* nginx.conf | ||
|
||
################################# | ||
# configs # | ||
################################# | ||
rm result.txt | ||
touch result.txt | ||
#grep "| Trojan-TCP |" README.md | cut -f2 -d"\`" | sed "s/$fake_domain/$main_domain/g" | sed "s/$fakepass/$mypass/g" >> result.txt | ||
grep "| Trojan-WS |" README.md | cut -f2 -d"\`" | sed "s/$fake_domain/$main_domain/g" | sed "s/$fakepass/$mypass/g" >> result.txt | ||
grep "| Trojan-gRPC |" README.md | cut -f2 -d"\`" | sed "s/$fake_domain/$main_domain/g" | sed "s/$fakepass/$mypass/g" >> result.txt | ||
#grep "| Trojan-H2 |" README.md | cut -f2 -d"\`" | sed "s/$fake_domain/$main_domain/g" | sed "s/$fakepass/$mypass/g" >> result.txt | ||
#grep "| Vless-TCP |" README.md | cut -f2 -d"\`" | sed "s/$fake_domain/$main_domain/g" | sed "s/$fakeid/$myid/g" >> result.txt | ||
grep "| Vless-WS |" README.md | cut -f2 -d"\`" | sed "s/$fake_domain/$main_domain/g" | sed "s/$fakeid/$myid/g" >> result.txt | ||
grep "| Vless-gRPC |" README.md | cut -f2 -d"\`" | sed "s/$fake_domain/$main_domain/g" | sed "s/$fakeid/$myid/g" >> result.txt | ||
#grep "| Vless-H2 |" README.md | cut -f2 -d"\`" | sed "s/$fake_domain/$main_domain/g" | sed "s/$fakeid/$myid/g" >> result.txt | ||
#grep "| VMESS-TCP |" README.md | cut -f2 -d"\`" | cut -c 9- | base64 -d | sed "s/$fake_domain/$main_domain/g" | sed "s/$fakeid/$myid/g" | base64 -w 0 | sed "s/^/vmess:\/\//" >> result.txt | ||
grep "| VMESS-WS |" README.md | cut -f2 -d"\`" | cut -c 9- | base64 -d | sed "s/$fake_domain/$main_domain/g" | sed "s/$fakeid/$myid/g" | base64 -w 0 | sed "s/^/\nvmess:\/\//" >> result.txt | ||
grep "| VMESS-gRPC |" README.md | cut -f2 -d"\`" | cut -c 9- | base64 -d | sed "s/$fake_domain/$main_domain/g" | sed "s/$fakeid/$myid/g" | base64 -w 0 | sed "s/^/\nvmess:\/\//" >> result.txt | ||
#grep "| VMESS-H2 |" README.md | cut -f2 -d"\`" | cut -c 9- | base64 -d | sed "s/$fake_domain/$main_domain/g" | sed "s/$fakeid/$myid/g" | base64 -w 0 | sed "s/^/\nvmess:\/\//" >> result.txt | ||
echo >> result.txt | ||
|
||
} | ||
|
||
Print64() | ||
{ | ||
cat result.txt | base64 -w 0 | ||
echo | ||
} | ||
|
||
Printqr() | ||
{ | ||
while read line; do | ||
export t=`echo $line | cut -c -2` | ||
if [ "$t" == "vm" ]; then | ||
echo $line | cut -c 9- | base64 -d | grep "\"ps\":" | sed -n -e 's/"ps": "//p' | sed -n -e 's/",//p' | sed -n -e 's/ *//p' | ||
curl qrcode.show -d $line | ||
else | ||
echo $line | sed -n -e 's/^.*#//p' | ||
curl qrcode.show -d $line | ||
fi | ||
done < result | ||
} | ||
|
||
while getopts "mrqb" option; do | ||
case $option in | ||
r) | ||
Revert | ||
exit;; | ||
m) | ||
Make | ||
exit;; | ||
b) | ||
Print64 | ||
exit;; | ||
q) | ||
Printqr | ||
exit;; | ||
|
||
\?) | ||
Help | ||
exit;; | ||
esac | ||
done | ||
|
||
Help | ||
|