This commit is contained in:
beabigegg
2025-08-28 08:59:46 +08:00
parent b9557250a4
commit 4f7f46b07a
42 changed files with 4992 additions and 494 deletions

206
start-windows.bat Normal file
View 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 - ONLYOFFICEhttp://localhost:8080
echo - MySQLlocalhost: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 - MySQLlocalhost:3306
echo - ONLYOFFICEhttp://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