sub2api/reset-password.sh
win f5abc62fd3
Some checks failed
CI / test (push) Failing after 12s
CI / golangci-lint (push) Failing after 6s
Security Scan / backend-security (push) Failing after 5s
Security Scan / frontend-security (push) Failing after 5s
fix: 三节点部署脚本修复 + sub2api 容器代理透传
- GOST 下载 URL 修复:补全版本号 (gost_3.2.6_linux_amd64.tar.gz)
- CN 中转机服务名改为 gost-sub2api-relay,避免与现有 gost-relay 冲突
- CN 中转机监听协议改为 http(兼容 node-tls-proxy 的 HTTP CONNECT)
- 美国落地机服务名改为 gost-sub2api-exit
- sub2api 容器透传 HTTPS_PROXY/HTTP_PROXY 环境变量(解决 OAuth 超时)
- ops_cleanup 日志字段名避免触发 ERROR 误判
- 添加密码重置脚本和 SOCKS5 服务文件
2026-03-26 12:09:05 +08:00

52 lines
1.7 KiB
Bash

#!/usr/bin/env bash
# 重置用户密码脚本
# 用法: bash reset-password.sh
set -euo pipefail
EMAIL="zfc9393@163.com"
PASSWORD="zfc123.."
DB_USER="sub2api"
DB_NAME="sub2api"
# 自动查找 docker-compose 文件所在目录
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
COMPOSE_DIR="$SCRIPT_DIR/deploy"
if [ ! -f "$COMPOSE_DIR/docker-compose.yml" ]; then
COMPOSE_DIR="$SCRIPT_DIR"
fi
cd "$COMPOSE_DIR"
echo "=== 重置密码: $EMAIL ==="
# 1. 确保 pgcrypto 扩展存在
docker compose exec -T postgres psql -U "$DB_USER" -d "$DB_NAME" -c \
"CREATE EXTENSION IF NOT EXISTS pgcrypto;" 2>/dev/null
# 2. 检查用户是否存在
EXISTS=$(docker compose exec -T postgres psql -U "$DB_USER" -d "$DB_NAME" -t -A -c \
"SELECT COUNT(1) FROM users WHERE email = '$EMAIL';")
if [ "$EXISTS" -gt 0 ]; then
# 用户存在 → 更新密码
docker compose exec -T postgres psql -U "$DB_USER" -d "$DB_NAME" -c \
"UPDATE users SET password_hash = crypt('$PASSWORD', gen_salt('bf', 10)), updated_at = NOW() WHERE email = '$EMAIL';"
echo "✅ 密码已重置"
else
# 用户不存在 → 创建管理员
docker compose exec -T postgres psql -U "$DB_USER" -d "$DB_NAME" -c \
"INSERT INTO users (email, password_hash, role, balance, concurrency, status, created_at, updated_at)
VALUES ('$EMAIL', crypt('$PASSWORD', gen_salt('bf', 10)), 'admin', 0, 5, 'active', NOW(), NOW());"
echo "✅ 管理员用户已创建"
fi
# 3. 验证
echo ""
echo "=== 用户信息 ==="
docker compose exec -T postgres psql -U "$DB_USER" -d "$DB_NAME" -c \
"SELECT id, email, role, status FROM users WHERE email = '$EMAIL';"
echo ""
echo "登录信息:"
echo " 邮箱: $EMAIL"
echo " 密码: $PASSWORD"