#!/bin/bash set -e SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" cd "$SCRIPT_DIR" echo "==========================================" echo " 债务管理系统 v2.2 安装脚本" echo "==========================================" # Detect architecture ARCH=$(uname -m) case "$ARCH" in x86_64|amd64) ARCH_NAME="x86" COMPOSE_FILE="docker-compose.x86.yml" BACKEND_IMAGE="debt-manager-backend:x86" FRONTEND_IMAGE="debt-manager-frontend:x86" BACKEND_TAR="debt-manager-backend-x86.tar.gz" FRONTEND_TAR="debt-manager-frontend-x86.tar.gz" ;; aarch64|arm64) ARCH_NAME="arm64" COMPOSE_FILE="docker-compose.arm64.yml" BACKEND_IMAGE="debt-manager-backend:latest" FRONTEND_IMAGE="debt-manager-frontend:latest" BACKEND_TAR="debt-manager-backend-arm64.tar.gz" FRONTEND_TAR="debt-manager-frontend-arm64.tar.gz" ;; *) echo "不支持的架构: $ARCH" exit 1 ;; esac echo "检测到架构: $ARCH_NAME ($ARCH)" echo "" # Load images echo "加载 Docker 镜像..." docker load < "$BACKEND_TAR" docker load < "$FRONTEND_TAR" docker load < postgres-15-alpine.tar.gz # Generate secure keys SECRET_KEY=$(python3 -c "import secrets; print(secrets.token_hex(32))" 2>/dev/null || openssl rand -hex 32) DB_PASSWORD=$(python3 -c "import secrets; print(secrets.token_hex(16))" 2>/dev/null || openssl rand -hex 16) echo "" echo "生成安全密钥..." # Create .env file cat > .env << EOF POSTGRES_DB=debt_manager POSTGRES_USER=postgres POSTGRES_PASSWORD=$DB_PASSWORD DATABASE_URL=postgresql+asyncpg://postgres:$DB_PASSWORD@db:5432/debt_manager SECRET_KEY=$SECRET_KEY ADMIN_PASSWORD=Admin123! EOF echo "配置文件已创建" echo "" echo "==========================================" echo " 安装完成!" echo "==========================================" echo "" echo "启动命令: docker compose -f $COMPOSE_FILE up -d" echo "" echo "访问地址:" echo " 前台: http://localhost:806" echo " 后台: http://localhost:806/admin.html" echo "" echo "管理员账号: admin" echo "管理员密码: Admin123!" echo "" echo "请务必修改默认密码!"