#!/bin/bash set -e # Awesome Index 启动脚本 DEPLOY_PATH="$(cd "$(dirname "$0")" && pwd)" cd "$DEPLOY_PATH" # 检查 .env 文件 if [ ! -f .env ]; then echo "错误: 缺少 .env 文件,请从 .env.example 复制并修改" exit 1 fi # 停止旧容器 echo "停止旧容器..." docker compose down --remove-orphans 2>/dev/null || true # 启动新容器 echo "启动 Awesome Index..." docker compose up -d # 健康检查 echo "等待服务就绪..." sleep 5 MAX_RETRIES=10 RETRY_COUNT=0 while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do if curl -sf http://localhost:3000/healthz > /dev/null 2>&1; then echo "✓ 服务已启动: http://localhost:3000" echo "" echo "管理后台: http://localhost:3000/admin" echo "默认账号: admin / (见 .env 中的 ADMIN_INIT_PASSWORD)" exit 0 fi RETRY_COUNT=$((RETRY_COUNT + 1)) sleep 2 done echo "✗ 服务启动失败,请检查日志: docker compose logs" exit 1