#!/bin/bash set -e SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" INSTALL_DIR="/opt/debt-manager" echo "==========================================" echo " 债务管理系统 v2.3 安装脚本" echo "==========================================" echo "" # 检测架构 ARCH=$(uname -m) case "$ARCH" in x86_64|amd64) ARCH_NAME="x86" BACKEND_TAR="debt-manager-backend-x86.tar.gz" FRONTEND_TAR="debt-manager-frontend-x86.tar.gz" ;; aarch64|arm64) ARCH_NAME="arm64" 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 "" # 检查 Docker if ! command -v docker &> /dev/null; then echo "请先安装 Docker" exit 1 fi if ! docker compose version &> /dev/null; then echo "请先安装 Docker Compose" exit 1 fi # 创建安装目录 mkdir -p "$INSTALL_DIR" cd "$INSTALL_DIR" # 复制文件 echo "复制文件..." cp "$SCRIPT_DIR/docker-compose.yml" . cp "$SCRIPT_DIR/$BACKEND_TAR" . cp "$SCRIPT_DIR/$FRONTEND_TAR" . cp "$SCRIPT_DIR/postgres-15-alpine.tar.gz" . # 生成安全密钥 echo "生成安全密钥..." DB_PASSWORD=$(openssl rand -hex 16) SECRET_KEY=$(openssl rand -hex 32) # 创建 .env 文件 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 EOF # 更新 docker-compose 使用 .env sed -i "s/postgres:postgres@db:5432/postgres:\$DB_PASSWORD@db:5432/g" docker-compose.yml 2>/dev/null || true # 加载镜像 echo "加载 Docker 镜像..." docker load < "$BACKEND_TAR" docker load < "$FRONTEND_TAR" docker load < postgres-15-alpine.tar.gz echo "" echo "==========================================" echo " 安装完成!" echo "==========================================" echo "" echo "启动命令: cd $INSTALL_DIR && docker compose up -d" echo "" echo "访问地址:" echo " 前台: http://localhost:806" echo " 后台: http://localhost:806/admin.html" echo "" echo "管理员账号: admin" echo "管理员密码: admin123" echo "" echo "请务必修改默认密码!"