75 lines
2.5 KiB
Bash
Executable File
75 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# CloudSearch 一键部署脚本
|
|
# 用法: curl -sS https://gitea.timxx.cn/admin/CloudSearch/raw/branch/master/source_clean/deploy.sh | bash
|
|
#
|
|
# 可选环境变量:
|
|
# CORS_ORIGIN - CORS 域名 (默认: https://zy.hk.timxx.cn)
|
|
# JWT_SECRET - JWT 密钥 (留空自动生成)
|
|
# ADMIN_PASSWORD - 管理员密码 (留空自动生成)
|
|
# DEPLOY_DIR - 部署目录 (默认: /opt/cloudsearch)
|
|
|
|
REPO_URL="https://gitea.timxx.cn/admin/CloudSearch.git"
|
|
DEPLOY_DIR="${DEPLOY_DIR:-/opt/cloudsearch}"
|
|
|
|
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; NC='\033[0m'
|
|
info() { echo -e "${GREEN}[INFO]${NC} $*"; }
|
|
err() { echo -e "${RED}[ERROR]${NC} $*"; }
|
|
|
|
command -v docker &>/dev/null || { err "Docker 未安装"; exit 1; }
|
|
|
|
info "拉取仓库..."
|
|
if [ -d "$DEPLOY_DIR/.git" ]; then
|
|
cd "$DEPLOY_DIR" && git pull --ff-only origin master 2>/dev/null || true
|
|
else
|
|
rm -rf "$DEPLOY_DIR"
|
|
git clone --depth 1 "$REPO_URL" "$DEPLOY_DIR"
|
|
fi
|
|
cd "$DEPLOY_DIR/source_clean"
|
|
|
|
info "配置镜像模式..."
|
|
if grep -q '^ build:' docker-compose.yml 2>/dev/null; then
|
|
sed -i 's/^ build:/ # build:/' docker-compose.yml
|
|
sed -i 's/^ context:/ # context:/' docker-compose.yml
|
|
sed -i 's/^ dockerfile:/ # dockerfile:/' docker-compose.yml
|
|
sed -i 's|^ # image: gitea.timxx.cn/admin/cloudsearch:latest| image: gitea.timxx.cn/admin/cloudsearch:latest|' docker-compose.yml
|
|
fi
|
|
|
|
if [ ! -f .env ]; then
|
|
JWT_SECRET="${JWT_SECRET:-$(openssl rand -hex 32)}"
|
|
ADMIN_PASSWORD="${ADMIN_PASSWORD:-$(openssl rand -base64 12)}"
|
|
cat > .env <<ENVEOF
|
|
CORS_ORIGIN=${CORS_ORIGIN:-https://zy.hk.timxx.cn}
|
|
JWT_SECRET=${JWT_SECRET}
|
|
ADMIN_PASSWORD=${ADMIN_PASSWORD}
|
|
REDIS_URL=${REDIS_URL:-redis://redis:6379}
|
|
LOG_LEVEL=${LOG_LEVEL:-info}
|
|
ENVEOF
|
|
info "管理员: admin / ${ADMIN_PASSWORD}"
|
|
else
|
|
info ".env 已存在,跳过"
|
|
fi
|
|
|
|
info "拉取镜像..."
|
|
docker compose pull app 2>/dev/null || true
|
|
|
|
info "启动服务..."
|
|
docker compose down --remove-orphans 2>/dev/null || true
|
|
docker compose up -d
|
|
|
|
sleep 3
|
|
if docker compose ps | grep -q 'Up'; then
|
|
echo ""
|
|
echo "=============================================="
|
|
echo -e " \033[0;32m✅ CloudSearch 部署完成\033[0m"
|
|
echo "=============================================="
|
|
docker compose ps
|
|
echo ""
|
|
echo " 管理后台: ${CORS_ORIGIN:-https://zy.hk.timxx.cn}/admin/login"
|
|
echo " 用户名: admin"
|
|
else
|
|
err "启动失败: docker compose logs"
|
|
exit 1
|
|
fi
|