diff --git a/README.md b/README.md index c7d3610..e081f87 100644 --- a/README.md +++ b/README.md @@ -27,13 +27,12 @@ ```bash # 1. 进入部署目录 +wget https://github.com/bqlpfy/forward-panel/raw/refs/heads/main/deployment.zip +unzip deployment.zip cd deployment - -# 2. 给脚本添加执行权限 chmod +x deploy.sh - -# 3. 启动所有服务 -./deploy.sh start +# SERVER_HOST是后端地址 就是服务器ip:6365 +DB_NAME=gost DB_USER=gost DB_PASSWORD=yourpwd JWT_SECRET=yoursecret SERVER_HOST=your.server.ip:6365 ./deploy.sh start ``` diff --git a/deployment.zip b/deployment.zip index 2462e51..d35c591 100644 Binary files a/deployment.zip and b/deployment.zip differ diff --git a/deployment/deploy.sh b/deployment/deploy.sh index 8e55dfd..f7627fb 100755 --- a/deployment/deploy.sh +++ b/deployment/deploy.sh @@ -28,19 +28,18 @@ show_help() { echo " -h, --help 显示此帮助信息" echo "" echo "环境变量配置:" - echo " SERVER_HOST 服务器地址 (默认: localhost:6365)" - echo " VUE_APP_API_URL 前端API地址 (默认: http://localhost:6365/api/v1)" - echo " VUE_APP_WS_URL WebSocket地址 (默认: ws://localhost:6365)" + echo " DB_NAME 数据库名 (必须设置)" + echo " DB_USER 数据库用户 (必须设置)" + echo " DB_PASSWORD 数据库密码 (必须设置)" + echo " JWT_SECRET JWT密钥 (必须设置)" + echo " SERVER_HOST 服务器地址 (必须设置,格式: ip:port)" + echo "" + echo -e "${RED}注意: 所有环境变量都是必需的,不提供默认配置!${NC}" echo "" echo "示例:" - echo " # 启动服务" - echo " $0 start" + echo " DB_NAME=gost DB_USER=gost DB_PASSWORD=yourpwd JWT_SECRET=yoursecret SERVER_HOST=192.168.1.100:6365 $0 start" echo "" - echo " # 使用服务器IP启动" - echo " SERVER_HOST=192.168.1.100:6365 $0 start" - echo "" - echo " # 自定义完整地址启动" - echo " VUE_APP_API_URL=http://192.168.1.100:6365/api/v1 VUE_APP_WS_URL=ws://192.168.1.100:6365 $0 start" + } # 检测可用的Docker Compose命令 @@ -95,20 +94,34 @@ get_db_config() { start_services() { echo -e "${GREEN}启动Gost转发面板服务...${NC}" - # 如果设置了 SERVER_HOST,自动生成 API 和 WS 地址 - if [ -n "$SERVER_HOST" ]; then - export VUE_APP_API_URL="http://${SERVER_HOST}/api/v1" - export VUE_APP_WS_URL="ws://${SERVER_HOST}" - else - # 设置默认环境变量 - export VUE_APP_API_URL=${VUE_APP_API_URL:-"http://localhost:6365/api/v1"} - export VUE_APP_WS_URL=${VUE_APP_WS_URL:-"ws://localhost:6365"} + # 检查必需的环境变量 + local missing_vars=() + + [ -z "$DB_NAME" ] && missing_vars+=("DB_NAME") + [ -z "$DB_USER" ] && missing_vars+=("DB_USER") + [ -z "$DB_PASSWORD" ] && missing_vars+=("DB_PASSWORD") + [ -z "$JWT_SECRET" ] && missing_vars+=("JWT_SECRET") + [ -z "$SERVER_HOST" ] && missing_vars+=("SERVER_HOST") + + if [ ${#missing_vars[@]} -gt 0 ]; then + echo -e "${RED}错误: 缺少必需的环境变量!${NC}" + echo -e "${YELLOW}缺少的变量: ${missing_vars[*]}${NC}" + echo "" + echo -e "${YELLOW}使用方法:${NC}" + echo "DB_NAME=gost DB_USER=gost DB_PASSWORD=yourpwd JWT_SECRET=yoursecret SERVER_HOST=your.server.ip:6365 $0 start" + exit 1 fi + # 设置环境变量 + export VUE_APP_API_URL="http://${SERVER_HOST}/api/v1" + export VUE_APP_WS_URL="ws://${SERVER_HOST}" + echo -e "${YELLOW}环境变量配置:${NC}" - if [ -n "$SERVER_HOST" ]; then - echo "SERVER_HOST: $SERVER_HOST" - fi + echo "DB_NAME: $DB_NAME" + echo "DB_USER: $DB_USER" + echo "DB_PASSWORD: $DB_PASSWORD" + echo "JWT_SECRET: $JWT_SECRET" + echo "SERVER_HOST: $SERVER_HOST" echo "VUE_APP_API_URL: $VUE_APP_API_URL" echo "VUE_APP_WS_URL: $VUE_APP_WS_URL" echo "" @@ -143,10 +156,10 @@ EOF DB_PASSWORD=$(get_db_config "MYSQL_PASSWORD") echo -e "${YELLOW}访问地址:${NC}" - echo " 前端界面: http://localhost:${FRONTEND_PORT:-80}" - echo " 后端API: http://localhost:${BACKEND_PORT:-6365}" - echo " 数据库: localhost:${MYSQL_PORT:-3306} (用户名: ${DB_USER:-gost}, 密码: ${DB_PASSWORD:-pwd})" - echo " Redis: localhost:${REDIS_PORT:-6379}" + # 提取IP地址(去掉端口) + SERVER_IP=$(echo "$SERVER_HOST" | cut -d':' -f1) + echo " 前端界面: http://${SERVER_IP}:${FRONTEND_PORT:-80}" + echo " 后端API: http://${SERVER_HOST}" echo "" echo -e "${YELLOW}默认管理员账号:${NC}" echo " 用户名: admin_user" diff --git a/deployment/docker-compose.yml b/deployment/docker-compose.yml index 2f512f1..b29a5b2 100644 --- a/deployment/docker-compose.yml +++ b/deployment/docker-compose.yml @@ -6,13 +6,13 @@ services: container_name: gost-mysql restart: unless-stopped environment: - MYSQL_ROOT_PASSWORD: rootpwd # 数据库密码 - MYSQL_DATABASE: gost # 数据库名 - MYSQL_USER: gost # 数据库用户 - MYSQL_PASSWORD: pwd # 数据库密码 + MYSQL_ROOT_PASSWORD: ${DB_PASSWORD} # 数据库密码 + MYSQL_DATABASE: ${DB_NAME} # 数据库名 + MYSQL_USER: ${DB_USER} # 数据库用户 + MYSQL_PASSWORD: ${DB_PASSWORD} # 数据库密码 TZ: Asia/Shanghai - ports: - - "3306:3306" + # ports: + # - "3306:3306" # 不暴露到公网,只在容器内部访问 volumes: - mysql_data:/var/lib/mysql - ./gost.sql:/docker-entrypoint-initdb.d/init.sql:ro @@ -29,8 +29,8 @@ services: image: redis:alpine container_name: gost-redis restart: unless-stopped - ports: - - "6379:6379" + # ports: + # - "6379:6379" # 不暴露到公网,只在容器内部访问 networks: - gost-network healthcheck: @@ -46,12 +46,12 @@ services: restart: unless-stopped environment: DB_HOST: mysql # 数据库地址 - DB_NAME: gost # 数据库名 - DB_USER: gost # 数据库用户 - DB_PASSWORD: pwd # 数据库密码 - JWT_SECRET: test123 # JWT密钥 + DB_NAME: ${DB_NAME} # 数据库名 + DB_USER: ${DB_USER} # 数据库用户 + DB_PASSWORD: ${DB_PASSWORD} # 数据库密码 + JWT_SECRET: ${JWT_SECRET} # JWT密钥 LOG_DIR: /app/logs # 日志目录 - SERVER_ADDR: 127.0.0.1:6365 # 服务器地址 ip:port 不能套cdn 用于节点连接 + SERVER_ADDR: ${SERVER_HOST} # 服务器地址 ip:port 不能套cdn 用于节点连接 JAVA_OPTS: "-Xms256m -Xmx512m -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Shanghai" ports: - "6365:6365" @@ -84,8 +84,8 @@ services: environment: BACKEND_HOST: backend # 后端地址 BACKEND_PORT: 6365 # 后端端口 - VUE_APP_API_URL: ${VUE_APP_API_URL:-http://localhost:6365/api/v1} # 前端API地址 - VUE_APP_WS_URL: ${VUE_APP_WS_URL:-ws://localhost:6365} # 前端WebSocket地址 + VUE_APP_API_URL: ${VUE_APP_API_URL} # 前端API地址 + VUE_APP_WS_URL: ${VUE_APP_WS_URL} # 前端WebSocket地址 depends_on: backend: condition: service_healthy