2ND
This commit is contained in:
206
start-windows.bat
Normal file
206
start-windows.bat
Normal file
@@ -0,0 +1,206 @@
|
||||
@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
|
Reference in New Issue
Block a user