@echo off REM ======================================== REM 暫時規範管理系統 V3 - Windows 啟動腳本 REM ======================================== echo. echo ===================================== echo 暫時規範管理系統 V3 - Windows 啟動 echo ===================================== echo. REM 檢查 Python 是否已安裝 python --version >nul 2>&1 if %ERRORLEVEL% neq 0 ( echo [錯誤] Python 未安裝或未加入 PATH echo 請安裝 Python 3.8+ 並重新執行此腳本 pause exit /b 1 ) REM 檢查 Docker 是否已安裝並運行 docker --version >nul 2>&1 if %ERRORLEVEL% neq 0 ( echo [警告] Docker 未安裝或未運行 echo 如需使用 Docker 模式,請先安裝並啟動 Docker Desktop echo. goto MANUAL_START ) REM 檢查是否存在 docker-compose.yml if not exist "docker-compose.yml" ( echo [警告] 找不到 docker-compose.yml 檔案 goto MANUAL_START ) REM 檢查 .env 檔案 if not exist ".env" ( echo [提示] 未找到 .env 檔案,正在複製範例檔案... copy ".env.example" ".env" echo. echo [重要] 請編輯 .env 檔案並設定正確的參數值: echo - 資料庫連線資訊 echo - LDAP/AD 伺服器設定 echo - SMTP 郵件伺服器設定 echo. set /p confirm="是否已完成 .env 檔案設定?(y/N): " if /i not "%confirm%"=="y" ( echo 請先設定 .env 檔案後再執行此腳本 pause exit /b 1 ) ) REM 提供啟動選項 echo 請選擇啟動模式: echo. echo [1] Docker 容器化部署 (推薦) echo [2] 本地 Python 直接執行 echo [3] 僅啟動外部服務 (MySQL + ONLYOFFICE) echo [4] 生產環境部署 (含 Nginx) echo. set /p choice="請輸入選項 [1-4]: " if "%choice%"=="1" goto DOCKER_START if "%choice%"=="2" goto MANUAL_START if "%choice%"=="3" goto SERVICES_ONLY if "%choice%"=="4" goto PRODUCTION_START goto DOCKER_START :DOCKER_START echo. echo ================================= echo 使用 Docker Compose 啟動系統... echo ================================= echo. REM 停止並清理舊的容器 echo [步驟 1] 清理舊容器... docker-compose down REM 重新構建並啟動服務 echo [步驟 2] 構建並啟動服務... docker-compose up --build -d REM 等待服務啟動 echo [步驟 3] 等待服務啟動... timeout /t 30 /nobreak REM 初始化資料庫 echo [步驟 4] 初始化資料庫... docker-compose exec app python init_db.py --auto-yes REM 顯示狀態 echo [步驟 5] 檢查服務狀態... docker-compose ps echo. echo ============================ echo 系統啟動完成! echo ============================ echo. echo 服務訪問地址: echo - 主系統:http://localhost:5000 echo - ONLYOFFICE:http://localhost:8080 echo - MySQL:localhost:3306 echo. echo 查看日誌:docker-compose logs -f echo 停止服務:docker-compose down echo. goto END :SERVICES_ONLY echo. echo =============================== echo 僅啟動外部服務... echo =============================== echo. docker-compose up -d mysql onlyoffice echo. echo 外部服務已啟動! echo - MySQL:localhost:3306 echo - ONLYOFFICE:http://localhost:8080 echo. echo 請使用以下命令啟動 Flask 應用: echo python app.py echo. goto END :PRODUCTION_START echo. echo =============================== echo 生產環境部署 (含 Nginx)... echo =============================== echo. docker-compose --profile production up --build -d echo. echo 生產環境已啟動! echo - 系統入口:http://localhost (透過 Nginx) echo - 直接訪問:http://localhost:5000 echo. goto END :MANUAL_START echo. echo =============================== echo 本地 Python 環境啟動... echo =============================== echo. REM 檢查虛擬環境 if exist "venv\Scripts\activate.bat" ( echo [步驟 1] 啟用虛擬環境... call venv\Scripts\activate.bat ) else ( echo [警告] 未找到虛擬環境,建議先建立: echo python -m venv venv echo venv\Scripts\activate echo pip install -r requirements.txt echo. ) REM 安裝依賴 echo [步驟 2] 檢查並安裝依賴... pip install -r requirements.txt REM 檢查外部服務 echo [步驟 3] 檢查外部服務... echo. echo [重要提醒] 請確保以下服務已啟動: echo. echo 1. MySQL 資料庫伺服器 echo - 可使用: docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0 echo. echo 2. ONLYOFFICE Document Server echo - 可使用: docker run -d -p 8080:80 onlyoffice/documentserver echo. echo 3. LDAP/AD 伺服器 (如果適用) echo 4. SMTP 郵件伺服器 (如果適用) echo. set /p confirm="外部服務是否已準備就緒?(y/N): " if /i not "%confirm%"=="y" ( echo 請先啟動必要的外部服務 pause exit /b 1 ) REM 初始化資料庫 echo [步驟 4] 初始化資料庫... python init_db.py REM 啟動應用 echo [步驟 5] 啟動 Flask 應用... echo. echo 啟動中... (Ctrl+C 停止) python app.py goto END :END echo. pause