#!/bin/bash # Sub2API 自动部署脚本 - 端口 2080 # 使用方法: bash deploy.sh set -e echo "=====================================" echo " Sub2API 自动部署脚本" echo " 端口: 2080" echo "=====================================" echo "" # 检查是否在正确的目录 if [ ! -f "docker-compose.2080.yml" ]; then echo "❌ 错误: 请在包含 docker-compose.2080.yml 的目录中运行此脚本" exit 1 fi # 检查 Docker 是否安装 if ! command -v docker &> /dev/null; then echo "❌ Docker 未安装,请先安装 Docker" exit 1 fi if ! command -v docker-compose &> /dev/null; then echo "❌ Docker Compose 未安装,请先安装 Docker Compose" exit 1 fi echo "✅ Docker 环境检查通过" echo "" # 复制配置文件 if [ ! -f ".env" ]; then echo "📝 创建配置文件..." cp .env.2080 .env # 生成随机密码和密钥 echo "🔐 生成安全密钥..." POSTGRES_PASS=$(openssl rand -base64 24) JWT_KEY=$(openssl rand -hex 32) # 更新 .env 文件 sed -i "s/POSTGRES_PASSWORD=.*/POSTGRES_PASSWORD=${POSTGRES_PASS}/" .env sed -i "s/JWT_SECRET=.*/JWT_SECRET=${JWT_KEY}/" .env echo "✅ 配置文件已创建: .env" echo "" echo "📋 生成的密码(请保存):" echo " PostgreSQL 密码: ${POSTGRES_PASS}" echo "" else echo "⚠️ .env 文件已存在,跳过创建" echo "" fi # 复制 docker-compose 文件 if [ ! -f "docker-compose.yml" ]; then echo "📝 创建 docker-compose.yml..." cp docker-compose.2080.yml docker-compose.yml echo "✅ docker-compose.yml 已创建" echo "" fi # 拉取镜像 echo "📥 拉取 Docker 镜像..." docker-compose pull # 启动服务 echo "" echo "🚀 启动服务..." docker-compose up -d # 等待服务启动 echo "" echo "⏳ 等待服务启动..." sleep 10 # 检查服务状态 echo "" echo "📊 服务状态:" docker-compose ps echo "" echo "=====================================" echo " ✅ 部署完成!" echo "=====================================" echo "" echo "📝 访问信息:" echo " URL: http://$(hostname -I | awk '{print $1}'):2080" echo " 管理员邮箱: admin@example.com" echo " 管理员密码: admin123" echo "" echo "⚠️ 安全建议:" echo " 1. 登录后立即修改管理员密码" echo " 2. 如需修改配置,编辑 .env 文件后执行: docker-compose restart" echo "" echo "📋 常用命令:" echo " 查看日志: docker-compose logs -f" echo " 重启服务: docker-compose restart" echo " 停止服务: docker-compose down" echo "" echo "🎉 部署完成!请在浏览器中访问上述 URL"