友情链接
Last updated
Last updated
#!/usr/bin/env bash
if [[ $EUID -ne 0 ]]; then
echo "é误ï¼æ¬èæ¬éè¦ root æéæ§è¡ã" 1>&2
exit 1
fi
# å建 koipy æ件夹并ä¸è½½ config.yaml
setup_environment () {
if [ ! -d "./koipy" ]; then
mkdir -p ./koipy
echo "åå»ºäº koipy æ件夹ã"
fi
wget -O ./koipy/config.yaml https://raw.githubusercontent.com/detesion/get-koipy/refs/heads/main/config.example.yaml
echo "ä¸è½½ config.yaml æ件ã"
}
welcome () {
echo
echo "å®è£
å³å°å¼å§"
echo "å¦ææ¨æ³åæ¶å®è£
ï¼"
echo "è¯·å¨ 5 ç§éå
æ Ctrl+C ç»æ¢æ¤èæ¬ã"
echo
sleep 5
}
docker_check () {
echo "æ£å¨æ£æ¥ Docker å®è£
æ
åµ . . ."
if command -v docker >> /dev/null 2>&1; then
echo "Docker å·²å®è£
ï¼ç»§ç»å®è£
è¿ç¨ . . ."
else
echo "Docker æªå®è£
å¨æ¤ç³»ç»ä¸"
echo "请å®è£
Docker 并å°èªå·±æ·»å å° Docker ç»ï¼ç¶åéæ°è¿è¡æ¤èæ¬ã"
exit 1
fi
}
access_check () {
echo "æµè¯ Docker ç¯å¢ . . ."
if [ -w /var/run/docker.sock ]; then
echo "å½åç¨æ·å¯ä»¥ä½¿ç¨ Docker,继ç»å®è£
è¿ç¨ . . ."
else
echo "å½åç¨æ·æ æè®¿é® Docker,æè
Docker 没æè¿è¡ã请添å èªå·±å° Docker ç»å¹¶éæ°è¿è¡æ¤èæ¬ã"
exit 1
fi
}
build_docker () {
printf "请è¾å
¥å®¹å¨çå称ï¼"
read -r container_name <&1
echo "æ£å¨æå Docker éå . . ."
docker rm -f "$container_name" > /dev/null 2>&1
docker pull koipy/koipy:latest
}
configure_bot () {
echo "请确ä¿å½åç®å½ä¸æ koipy æ件夹ã"
if [ -d "./koipy" ]; then
# License é
ç½®
printf "请è¾å
¥ License:"
read -r license <&1
# Bot é
ç½®
printf "请è¾å
¥ Bot Token:"
read -r bot_token <&1
printf "请è¾å
¥ API ID:"
read -r api_id <&1
printf "请è¾å
¥ API Hash:"
read -r api_hash <&1
printf "请è¾å
¥ä»£çå°å(é»è®¤ä¸ä½¿ç¨):"
read -r proxy <&1
#proxy=${proxy:-"socks5://127.0.0.1:11112"}
# Network é
ç½®
printf "请è¾å
¥ HTTP 代çå°å(é»è®¤ä¸ä½¿ç¨):"
read -r http_proxy <&1
printf "请è¾å
¥ SOCKS5 代çå°å(é»è®¤ä¸ä½¿ç¨):"
read -r socks5_proxy <&1
#socks5_proxy=${socks5_proxy:-"socks5://127.0.0.1:1080"}
# Slave Config é
ç½®
printf "请è¾å
¥ Slave ID(å端idé便å):"
read -r slave_id <&1
printf "请è¾å
¥ Slave Token(Miaospeedçè¿æ¥token):"
read -r slave_token <&1
printf "请è¾å
¥ Slave Address(é»è®¤127.0.0.1:8765):"
read -r slave_address <&1
slave_address=${slave_address:-"127.0.0.1:8765"}
printf "请è¾å
¥ Slave Path(é»è®¤/):"
read -r slave_path <&1
slave_path=${slave_path:-"/"}
printf "请è¾å
¥ Slave Comment(å端å±ç¤ºå):"
read -r slave_comment <&1
printf "æ¯å¦å¯ç¨ Sub-Store(é»è®¤ä¸å¯ç¨false):"
read -r substore_enable <&1
substore_enable=${substore_enable:-"false"}
printf "æ¯å¦èªå¨é¨ç½² Sub-Store(é»è®¤ä¸å¯ç¨false):"
read -r substore_autoDeploy <&1
substore_autoDeploy=${substore_autoDeploy:-"false"}
# æ´æ° config.yaml æ件
if [[ -f "./koipy/config.yaml" ]]; then
if grep -q "^license: " ./koipy/config.yaml; then
sed -i.bak "s|^license: .*|license: $license|" ./koipy/config.yaml
else
echo "license: $license" >> ./koipy/config.yaml
fi
# æ´æ° bot é
ç½®
sed -i.bak "s|^\( bot-token: \).*|\1$bot_token|" ./koipy/config.yaml
sed -i.bak "s|^\( api-id: \).*|\1\"$api_id\"|" ./koipy/config.yaml # api-id 使ç¨åå¼å·
sed -i.bak "s|^\( api-hash: \).*|\1$api_hash|" ./koipy/config.yaml
sed -i.bak "s|^\( proxy: \).*|\1$proxy|" ./koipy/config.yaml
sed -i.bak "s|^\( httpProxy: \).*|\1$http_proxy|" ./koipy/config.yaml
sed -i.bak "s|^\( socks5Proxy: \).*|\1$socks5_proxy|" ./koipy/config.yaml
# æ´æ° slaveConfig
sed -i.bak "s|^\( slave:\)|\1|" ./koipy/config.yaml
sed -i.bak "s|^\( id: \).*|\1\"$slave_id\"|" ./koipy/config.yaml
sed -i.bak "s|^\( token: \).*|\1'$slave_token'|" ./koipy/config.yaml
sed -i.bak "s|^\( address: \).*|\1\"$slave_address\"|" ./koipy/config.yaml
sed -i.bak "s|^\( path: \).*|\1$slave_path|" ./koipy/config.yaml
sed -i.bak "s|^\( comment: \).*|\1\"$slave_comment\"|" ./koipy/config.yaml
# æ´æ° substore é
ç½®
# æ´æ° substore é
ç½®
if grep -q "substore:" ./koipy/config.yaml; then
sed -i.bak "/substore:/,/^ *[^ ]/{
/^ *enable:/ s|: .*|: $substore_enable|;
}" ./koipy/config.yaml
else
echo -e "substore:\n enable: $substore_enable" >> ./koipy/config.yaml
fi
if grep -q "autoDeploy:" ./koipy/config.yaml; then
sed -i.bak "s|^\( *autoDeploy: \).*|\1$substore_autoDeploy|" ./koipy/config.yaml
else
echo " autoDeploy: $substore_autoDeploy" >> ./koipy/config.yaml
fi
echo "config.yaml å·²æ´æ°ã"
else
echo "缺å°å¿
è¦çé
ç½®æ件ï¼éåºã"
exit 1
fi
else
echo "缺å°å¿
è¦çé
ç½®æ件æç®å½ï¼éåºã"
exit 1
fi
}
start_docker () {
echo "æ£å¨å¯å¨ Docker å®¹å¨ . . ."
docker run -dit --restart=no --name="$container_name" --hostname="$container_name" \
-v ./koipy/config.yaml:/app/config.yaml \
--network host koipy/koipy:latest <&1
echo
echo "Docker 容å¨å·²å¯å¨ã"
echo
}
start_installation () {
setup_environment # å建æ件夹åé
ç½®æ件
welcome
docker_check
access_check
build_docker
configure_bot # è°ç¨é
ç½® Bot Token å API ä¿¡æ¯çå½æ°
start_docker
}
cleanup () {
printf "请è¾å
¥å®¹å¨çå称ï¼"
read -r container_name <&1
echo "å¼å§å é¤ Docker å®¹å¨ . . ."
if docker inspect "$container_name" &>/dev/null; then
docker rm -f "$container_name" &>/dev/null
echo "å®¹å¨ $container_name å·²å é¤ã"
echo
show_online
else
echo "ä¸åå¨å为 $container_name ç容å¨ï¼éåºã"
exit 1
fi
}
stop_koipy () {
printf "请è¾å
¥å®¹å¨çå称ï¼"
read -r container_name <&1
echo "æ£å¨åæ¢ Docker å®¹å¨ . . ."
if docker inspect "$container_name" &>/dev/null; then
docker stop "$container_name" &>/dev/null
echo "å®¹å¨ $container_name å·²åæ¢ã"
echo
show_online
else
echo "ä¸åå¨å为 $container_name ç容å¨ï¼éåºã"
exit 1
fi
}
start_koipy () {
printf "请è¾å
¥å®¹å¨çå称ï¼"
read -r container_name <&1
echo "æ£å¨å¯å¨ Docker å®¹å¨ . . ."
if docker inspect "$container_name" &>/dev/null; then
docker start "$container_name" &>/dev/null
echo "å®¹å¨ $container_name å·²å¯å¨ã"
echo
show_online
else
echo "ä¸åå¨å为 $container_name ç容å¨ï¼éåºã"
exit 1
fi
}
restart_koipy () {
printf "请è¾å
¥å®¹å¨çå称ï¼"
read -r container_name <&1
echo "æ£å¨éæ°å¯å¨ Docker å®¹å¨ . . ."
if docker inspect "$container_name" &>/dev/null; then
docker restart "$container_name" &>/dev/null
echo "å®¹å¨ $container_name å·²éæ°å¯å¨ã"
echo
show_online
else
echo "ä¸åå¨å为 $container_name ç容å¨ï¼éåºã"
exit 1
fi
}
reinstall_koipy () {
cleanup
build_docker
start_docker
data_persistence
}
show_online () {
echo "ä¸é®èæ¬åºç°ä»»ä½é®é¢è¯·è½¬æå¨æ建,æç±è«è½å©"
echo "ä¸é®èæ¬åºç°ä»»ä½é®é¢è¯·è½¬æå¨æ建,æç±è«è½å©"
echo "ä¸é®èæ¬åºç°ä»»ä½é®é¢è¯·è½¬æå¨æ建,æç±è«è½å©"
echo ""
echo ""
echo "欢è¿ä½¿ç¨ Koipy Docker ä¸é®å®è£
èæ¬ã"
echo
echo "请éæ©æ¨éè¦è¿è¡çæä½:"
echo " 1) å®è£
Koipy"
echo " 2) å¸è½½ Koipy"
echo " 3) åæ¢ Koipy"
echo " 4) å¯å¨ Koipy"
echo " 5) éå¯ Koipy"
echo " 6) éè£
Koipy"
echo " 7) éåºèæ¬"
echo
echo " Versionï¼1.0.0"
echo
echo -n "请è¾å
¥ç¼å·: "
read -r N <&1
case $N in
1)
start_installation
;;
2)
cleanup
;;
3)
stop_koipy
;;
4)
start_koipy
;;
5)
restart_koipy
;;
6)
reinstall_koipy
;;
7)
exit 0
;;
*)
echo "è¾å
¥é误!"
sleep 5s
show_online
;;
esac
}
show_online