206 lines
4.9 KiB
Batchfile
206 lines
4.9 KiB
Batchfile
@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 |