开始
先在 Panel 开端口,新建 www website, 类型 Proxy 到刚开的端口。
使用
先 SSH 连接到 Serv00,拉取 gemini balance 仓库。
git clone <https://github.com/snailyp/gemini-balance.git>
接着进入 gemini balance 目录下
cd gemini-balance
然后创建虚拟环境来安装 py 依赖
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
还要在当前目录创建一个 .env,填入数据库信息
API_KEYS=["your-gemini-api-key-1","your-gemini-api-key-2"]
ALLOWED_TOKENS=["your-access-token-1","your-access-token-2"]
MYSQL_HOST=修改
MYSQL_PORT=修改
MYSQL_USER=修改
MYSQL_PASSWORD=修改
MYSQL_DATABASE=修改
TZ=Asia/Shanghai
此时已经能够正常启动 gemini balance,启动命令如下
uvicorn app.main:app --host 0.0.0.0 --port [你的端口号]
脚本
个人习惯使用 CF cron 保活,这里提供相关脚本。
注:以下脚本都要赋权,放在 gemini balance 目录下。
start.sh 用于启动服务
#!/bin/bash
# --- 请修改为你在 Serv00 面板获取的端口号 ---
PORT=[你的端口号]
# 项目的绝对路径
PROJECT_DIR="/usr/home/你的Serv00用户名/gemini-balance"
# 日志文件的路径
LOG_FILE="$PROJECT_DIR/run.log"
# 进入项目目录
cd $PROJECT_DIR
# 激活 Python 虚拟环境
source "$PROJECT_DIR/venv/bin/activate"
# 杀死可能已经存在的旧进程(可选,但推荐)
# 这可以防止在手动重启脚本时,因为端口被占用而失败
kill -9 $(lsof -t -i:$PORT) 2>/dev/null
# 启动 Uvicorn 服务,并将所有输出重定向到日志文件
# 'nohup' 和 '&' 让脚本在后台运行,即使您关闭了 SSH
nohup uvicorn app.main:app --host 0.0.0.0 --port $PORT >> $LOG_FILE 2>&1 &
echo "服务已在后台启动,端口号为 $PORT"
echo "日志将记录在 $LOG_FILE"
restart.sh 用于检查服务是否存活
#!/bin/sh
# 将xxx端口替换为你实际使用的端口
PORT=XXX
# Check if the port is in use
check_port() {
sockstat -4l | grep ":${PORT}" >/dev/null 2>&1
return $?
}
# Main logic
if check_port; then
echo "Port ${PORT} is already in use. Exiting."
exit 0
else
echo "Port ${PORT} is not in use. Starting service..."
nohup ./start.sh > "./startup.log" 2>&1 &
echo "Started service using start.sh"
fi
update.sh 用于更新服务
#!/bin/sh
# --- 请修改为您在 Serv00 面板获取的端口号 ---
PORT=[您的端口号]
# 项目的绝对路径
PROJECT_DIR="/usr/home/你的Serv00用户名/gemini-balance"
echo "=== 开始更新 Gemini Balance 项目 ==="
# 进入项目目录
cd $PROJECT_DIR || exit
# --- 1. 停止旧服务 ---
echo ""
echo "--- 步骤 1: 正在停止旧服务 ---"
PID=$(sockstat -4l | grep ":${PORT}" | awk '{print $3}')
if [ -n "$PID" ]; then
echo "找到旧进程 PID: ${PID},正在停止..."
kill -9 ${PID}
sleep 2
echo "旧进程已停止。"
else
echo "服务当前未运行,无需停止。"
fi
# --- 2. 更新代码和依赖 ---
echo ""
echo "--- 步骤 2: 更新代码与依赖 ---"
echo "正在从 Git 拉取最新代码..."
git pull
echo ""
echo "正在激活虚拟环境并更新依赖包..."
source "$PROJECT_DIR/venv/bin/activate"
pip install -r requirements.txt
deactivate
# --- 3. 启动新服务 ---
echo ""
echo "--- 步骤 3: 启动新版服务 ---"
# 使用后台方式运行 start.sh 脚本
nohup ./start.sh > "./update_startup.log" 2>&1 &
echo ""
echo "=== 更新脚本执行完毕 ==="
echo "服务已在后台尝试启动,请使用 'tail -f run.log' 查看实时日志。"
Comments NOTHING