Waku-/Waku.sh

158 lines
4.7 KiB
Bash
Raw Normal View History

2024-07-27 08:50:44 +00:00
#!/bin/bash
2024-07-30 06:32:30 +00:00
# 检查是否以root用户运行脚本
if [ "$(id -u)" != "0" ]; then
echo "此脚本需要以root用户权限运行。"
echo "请尝试使用 'sudo -i' 命令切换到root用户然后再次运行此脚本。"
exit 1
fi
# 脚本保存路径
SCRIPT_PATH="$HOME/Waku.sh"
2024-07-27 08:50:44 +00:00
# 主菜单函数
function main_menu() {
while true; do
clear
echo "脚本由大赌社区哈哈哈哈编写,推特 @ferdie_jhovie免费开源请勿相信收费"
echo "================================================================"
echo "节点社区 Telegram 群组: https://t.me/niuwuriji"
echo "节点社区 Telegram 频道: https://t.me/niuwuriji"
echo "节点社区 Discord 社群: https://discord.gg/GbMV5EcNWF"
echo "退出脚本请按键盘Ctrl+C退出即可"
echo "请选择要执行的操作:"
echo "1. 安装节点"
2024-07-29 15:29:37 +00:00
echo "2. 修复错误(暂不可用,官方脚本有问题)"
2024-07-30 16:58:06 +00:00
echo "3. 更新脚本"
echo "4. 退出"
2024-07-27 08:50:44 +00:00
read -rp "请输入操作选项:" choice
case $choice in
1)
install_node
;;
2)
fix_errors
;;
3)
2024-07-30 16:58:06 +00:00
update_script
;;
4)
2024-07-27 08:50:44 +00:00
echo "退出脚本,谢谢使用!"
exit 0
;;
*)
echo "无效的选择,请重新输入。"
sleep 2
;;
esac
done
}
# 安装节点函数
function install_node() {
# 更新软件源并升级系统软件
sudo apt update && sudo apt upgrade -y
# 安装必要的软件和工具
sudo apt install -y curl iptables build-essential git wget jq make gcc nano tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev
2024-07-30 16:53:30 +00:00
# 检查是否安装了 docker-compose
if ! command -v docker-compose &> /dev/null; then
echo "docker-compose 未安装,请先安装 docker-compose。"
exit 1
fi
2024-07-30 08:58:41 +00:00
# 克隆或更新 nwaku-compose 项目
if [ -d "nwaku-compose" ]; then
echo "更新 nwaku-compose 项目..."
cd nwaku-compose || { echo "进入 nwaku-compose 目录失败,请检查错误信息。"; exit 1; }
git stash push --include-untracked
git pull origin master
cd ..
else
echo "克隆 nwaku-compose 项目 ..."
git clone https://github.com/waku-org/nwaku-compose
2024-07-27 08:50:44 +00:00
fi
2024-07-27 13:46:14 +00:00
# 进入 nwaku-compose 目录
cd nwaku-compose || {
echo "进入 nwaku-compose 目录失败,请检查错误信息。"
exit 1
}
2024-07-27 13:27:25 +00:00
2024-07-27 13:46:14 +00:00
echo "成功进入 nwaku-compose 目录。"
2024-07-27 08:50:44 +00:00
2024-07-27 13:46:14 +00:00
# 复制 .env.example 到 .env
cp .env.example .env
echo "成功复制 .env.example 到 .env 文件。"
# 使用 nano 编辑 .env 文件
echo "现在开始编辑 .env 文件,请完成后按 Ctrl+X 保存并退出。"
nano .env
echo ".env 文件编辑完成。"
2024-07-30 08:51:06 +00:00
# 执行 register_rln.sh 脚本
echo "正在执行 register_rln.sh 脚本..."
./register_rln.sh
echo "register_rln.sh 脚本执行完成。"
# 启动 Docker Compose 服务
echo "启动 Docker Compose 服务..."
docker-compose up -d || { echo "启动 Docker Compose 失败,请检查错误信息。"; exit 1; }
echo "Docker Compose 服务启动完成。"
2024-07-27 08:50:44 +00:00
}
# 修复错误函数
function fix_errors() {
# 停止 Docker Compose 服务
docker-compose down
2024-07-30 08:58:41 +00:00
# 进入 nwaku-compose 目录
cd nwaku-compose || { echo "进入 nwaku-compose 目录失败,请检查错误信息。"; exit 1; }
2024-07-27 08:50:44 +00:00
# 执行 git stash 和 git pull 操作
git stash push --include-untracked
2024-07-30 08:58:41 +00:00
git pull origin master
2024-07-27 08:50:44 +00:00
# 删除 keystore 和 rln_tree 目录
rm -rf keystore rln_tree
# 编辑 .env 文件
2024-07-30 16:53:30 +00:00
echo "请修改 .env 文件中的 ETH_CLIENT_ADDRESS 为 RLN_RELAY_ETH_CLIENT_ADDRESS。"
nano -i .env
2024-07-27 08:50:44 +00:00
# 启动 Docker Compose
2024-07-27 09:22:30 +00:00
docker-compose up -d || { echo "启动 Docker Compose 失败,请检查错误信息。"; exit 1; }
2024-07-27 08:50:44 +00:00
echo "错误修复完成。"
2024-07-27 09:22:30 +00:00
read -rp "按 Enter 返回菜单。"
2024-07-27 08:50:44 +00:00
}
2024-07-30 16:58:06 +00:00
# 更新脚本函数
function update_script() {
echo "正在更新 nwaku-compose 项目..."
# 进入 nwaku-compose 目录
cd nwaku-compose || { echo "进入 nwaku-compose 目录失败,请检查错误信息。"; exit 1; }
# 停止 Docker Compose 服务
docker-compose down
# 更新项目
git pull origin master
# 重新启动 Docker Compose 服务
docker-compose up -d || { echo "启动 Docker Compose 失败,请检查错误信息。"; exit 1; }
echo "脚本更新完成。"
read -rp "按 Enter 返回菜单。"
}
2024-07-27 10:11:55 +00:00
# 主程序开始
2024-07-27 10:08:25 +00:00
main_menu