-
Notifications
You must be signed in to change notification settings - Fork 65
/
Copy pathinstall.sh
137 lines (128 loc) · 3.95 KB
/
install.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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/bin/bash
SH_PATH=$(cd "$(dirname "$0")";pwd)
cd ${SH_PATH}
create_mainfest_file(){
echo "进行配置。。。"
read -p "请输入你的应用名称:" IBM_APP_NAME
echo "应用名称:${IBM_APP_NAME}"
read -p "请输入你的应用内存大小(默认256):" IBM_MEM_SIZE
if [ -z "${IBM_MEM_SIZE}" ];then
IBM_MEM_SIZE=256
fi
echo "内存大小:${IBM_MEM_SIZE}"
read -p "指定UUID(不指定將隨機生成):" UUID
if [ -z "${UUID}" ];then
UUID=$(cat /proc/sys/kernel/random/uuid)
fi
echo "UUID:${UUID}"
read -p "指定WebSocket路徑(不指定將隨機生成):" WSPATH
if [ -z "${WSPATH}" ];then
WSPATH=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 16)
fi
echo "WebSocket路径:${WSPATH}"
cat > ${SH_PATH}/IBM-cloudfoundry-continue/cloudfoundry/manifest.yml << EOF
applications:
- path: .
name: ${IBM_APP_NAME}
random-route: true
memory: ${IBM_MEM_SIZE}M
buildpacks:
- python_buildpack
EOF
cat > ${SH_PATH}/IBM-cloudfoundry-continue/cloudfoundry/fullaccesstointernet/config.json << EOF
{
"inbounds": [
{
"port": 8080,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "${UUID}",
"alterId": 64
}
]
},
"streamSettings": {
"network":"ws",
"wsSettings": {
"path": "${WSPATH}"
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
}
]
}
EOF
echo "配置完成。"
}
clone_repo(){
echo "进行初始化。。。"
rm -rf IBM-cloudfoundry-continue
git clone https://github.com/rootmelo92118/IBM-cloudfoundry-continue
cd IBM-cloudfoundry-continue
git submodule update --init --recursive
cd cloudfoundry/fullaccesstointernet/
# Upgrade V2Ray to the latest version
rm v2ray v2ctl
# Script from https://github.com/v2fly/fhs-install-v2ray/blob/master/install-release.sh
# Get V2Ray release version number
TMP_FILE="$(mktemp)"
if ! curl -s -o "$TMP_FILE" 'https://api.github.com/repos/v2fly/v2ray-core/releases/latest'; then
rm "$TMP_FILE"
echo 'error: 获取最新V2Ray版本号失败。请重试'
exit 1
fi
RELEASE_LATEST="$(sed 'y/,/\n/' "$TMP_FILE" | grep 'tag_name' | awk -F '"' '{print $4}')"
rm "$TMP_FILE"
echo "当前最新V2Ray版本为$RELEASE_LATEST"
# Download latest release
DOWNLOAD_LINK="https://github.com/v2fly/v2ray-core/releases/download/$RELEASE_LATEST/v2ray-linux-64.zip"
if ! curl -L -H 'Cache-Control: no-cache' -o "latest-v2ray.zip" "$DOWNLOAD_LINK"; then
echo 'error: 下载V2Ray失败,请重试'
return 1
fi
unzip latest-v2ray.zip v2ray v2ctl geoip.dat geosite.dat
rm latest-v2ray.zip
chmod 0755 ./*
cd ${SH_PATH}/IBM-cloudfoundry-continue/cloudfoundry
echo "初始化完成。"
}
install(){
echo "进行安装。。。"
cd ${SH_PATH}/IBM-cloudfoundry-continue/cloudfoundry
ibmcloud target --cf
echo "N"|ibmcloud cf install
ibmcloud cf push
echo "安装完成。"
echo "UUID:${UUID}"
echo "WebSocket路径:${WSPATH}"
VMESSCODE=$(base64 -w 0 << EOF
{
"v": "2",
"ps": "v2ray-WebSocket+TLS IBM United States",
"add": "${IBM_APP_NAME}.us-south.cf.appdomain.cloud",
"port": "443",
"id": "${UUID}",
"aid": "64",
"net": "ws",
"type": "none",
"host": "",
"path": "${WSPATH}",
"tls": "tls"
}
EOF
)
echo "配置链接:"
echo vmess://${VMESSCODE}
}
ibmcloud login -a "https://cloud.ibm.com" -r "us-south"
clone_repo
create_mainfest_file
install
exit 0