@@ -56,11 +56,14 @@ check_dependencies() {
5656 fi
5757 done
5858
59- # 检查1Panel OpenResty是否安装
60- if [[ ! -d " /opt/1panel/apps/openresty" ]]; then
61- log_error " 未检测到1Panel OpenResty安装,请先在1Panel面板中安装OpenResty"
62- exit 1
63- fi
59+ # 检查1Panel OpenResty是否安装 (可通过环境变量跳过)
60+ if [[ ! -d " /opt/1panel/apps/openresty" ]] && [[ " ${SKIP_1PANEL_CHECK:- false} " != " true" ]]; then
61+ log_warning " 未检测到1Panel OpenResty安装"
62+ log_info " 如果您在开发环境中运行,可以使用以下命令跳过检查:"
63+ log_info " SKIP_1PANEL_CHECK=true ./deploy-1panel.sh setup prod"
64+ log_info " 或者请在服务器上先安装1Panel面板和OpenResty"
65+ exit 1
66+ fi
6467
6568 log_success " 依赖检查完成"
6669}
@@ -93,22 +96,25 @@ setup_env() {
9396
9497 # 生成随机密码
9598 if ! grep -q " POSTGRES_PASSWORD=" .env || grep -q " secure_password_change_me" .env; then
96- local postgres_pass=$( openssl rand -base64 32)
97- sed -i " s/POSTGRES_PASSWORD=.*/POSTGRES_PASSWORD=${postgres_pass} /" .env
99+ local postgres_pass=$( openssl rand -hex 32)
100+ # 使用临时文件避免sed特殊字符问题
101+ sed " s/POSTGRES_PASSWORD=.*/POSTGRES_PASSWORD=${postgres_pass} /" .env > .env.tmp && mv .env.tmp .env
98102 log_success " 已生成新的数据库密码"
99103 fi
100104
101105 if ! grep -q " JWT_SECRET=" .env || grep -q " your_super_secret_jwt_key" .env; then
102- local jwt_secret=$( openssl rand -base64 64)
103- sed -i " s/JWT_SECRET=.*/JWT_SECRET=${jwt_secret} /" .env
106+ local jwt_secret=$( openssl rand -hex 64)
107+ # 使用临时文件避免sed特殊字符问题
108+ sed " s/JWT_SECRET=.*/JWT_SECRET=${jwt_secret} /" .env > .env.tmp && mv .env.tmp .env
104109 log_success " 已生成新的JWT密钥"
105110 fi
106111
107112 # 更新API地址为生产环境
108113 if [[ " $1 " == " prod" ]]; then
109114 read -p " 请输入您的域名 (例如: yourdomain.com): " domain
110115 if [[ -n " $domain " ]]; then
111- sed -i " s|PUBLIC_API_BASE_URL=.*|PUBLIC_API_BASE_URL=https://${domain} /api|" .env
116+ # 使用临时文件避免sed特殊字符问题
117+ sed " s|PUBLIC_API_BASE_URL=.*|PUBLIC_API_BASE_URL=https://${domain} /api|" .env > .env.tmp && mv .env.tmp .env
112118 log_success " 已更新API地址为: https://${domain} /api"
113119 fi
114120 fi
@@ -424,7 +430,21 @@ main() {
424430 case " ${1:- help} " in
425431 " setup" )
426432 check_root
427- check_dependencies
433+ if [[ " ${SKIP_1PANEL_CHECK:- false} " != " true" ]]; then
434+ check_dependencies
435+ else
436+ log_warning " 跳过1Panel检查 - 开发环境模式"
437+ # 只检查基本依赖
438+ log_info " 检查基本依赖..."
439+ local deps=(" docker" " docker-compose" )
440+ for dep in " ${deps[@]} " ; do
441+ if ! command -v " $dep " & > /dev/null; then
442+ log_error " $dep 未安装,请先安装后再运行此脚本"
443+ exit 1
444+ fi
445+ done
446+ log_success " 基本依赖检查完成"
447+ fi
428448 setup_env " ${2:- dev} "
429449 create_directories
430450 ;;
0 commit comments