#!/bin/bash # 文件传输服务启动脚本 echo "=== 文件传输服务启动脚本 ===" echo # 检查Docker是否安装 if ! command -v docker &> /dev/null; then echo "❌ Docker 未安装,请先安装Docker" echo "📖 安装指南: https://docs.docker.com/get-docker/" exit 1 fi # 检查docker-compose是否安装 if ! command -v docker-compose &> /dev/null; then echo "❌ docker-compose 未安装,请先安装docker-compose" echo "📖 安装指南: https://docs.docker.com/compose/install/" exit 1 fi # 检查.env文件 if [ ! -f .env ]; then echo "📝 创建环境配置文件..." cp .env.example .env echo "✅ 已创建 .env 文件,请根据需要修改配置" fi # 创建数据目录 echo "📁 创建数据目录..." mkdir -p data/uploads data/logs data/redis data/letsencrypt # 选择启动方式 echo "请选择启动方式:" echo "1) 基础模式 (仅文件传输服务)" echo "2) 完整模式 (包含Traefik反向代理)" echo "3) 集群模式 (包含Redis缓存)" read -p "请输入选择 (1-3): " choice case $choice in 1) echo "🚀 启动基础模式..." docker-compose up -d fileshare ;; 2) echo "🚀 启动完整模式 (包含Traefik)..." docker-compose --profile traefik up -d ;; 3) echo "🚀 启动集群模式 (包含Redis)..." docker-compose --profile redis up -d ;; *) echo "❌ 无效选择,使用基础模式启动..." docker-compose up -d fileshare ;; esac echo echo "⏳ 等待服务启动..." sleep 5 # 检查服务状态 if docker-compose ps | grep -q "Up"; then echo "✅ 服务启动成功!" echo echo "🌐 访问地址:" echo " - API服务: http://localhost:8000" echo " - API文档: http://localhost:8000/docs" if [ "$choice" = "2" ]; then echo " - Traefik面板: http://traefik.localhost:8080" fi echo echo "🔧 常用命令:" echo " - 查看日志: docker-compose logs -f" echo " - 停止服务: docker-compose down" echo " - 重启服务: docker-compose restart" echo echo "💻 CLI工具使用:" echo " - 安装依赖: pip install -r requirements.txt" echo " - 上传文件: python cli.py upload <文件路径>" echo " - 分享文本: python cli.py share-text -t '内容'" echo " - 下载文件: python cli.py download <分享码>" else echo "❌ 服务启动失败,请检查日志:" docker-compose logs fi