本地部署
本文檔說明如何在本地環境部署和運行花店管理系統。
前置需求
- Java 21+
- Node.js 20+
- PostgreSQL 15+(或使用 Docker)
- Gradle 8+
快速開始
1. 啟動資料庫
使用 Docker:
docker run -d \
--name postgres \
-e POSTGRES_USER=florist \
-e POSTGRES_PASSWORD=florist \
-e POSTGRES_DB=florist \
-p 5432:5432 \
postgres:15
2. 啟動後端
cd app-server
./gradlew bootRun
後端將在 http://localhost:8080 啟動。
3. 啟動前端
cd app-web
npm install
npm run dev
前端將在 http://localhost:5173 啟動。
開發模式配置
後端配置
# app-server/src/main/resources/application-local.yml
spring:
datasource:
url: jdbc:postgresql://localhost:5432/florist
username: florist
password: florist
jpa:
hibernate:
ddl-auto: validate
show-sql: true
app:
cors:
allowed-origins: http://localhost:5173
前端配置
// app-web/vite.config.ts
export default defineConfig({
server: {
port: 5173,
proxy: {
'/api': {
target: 'http://localhost:8080',
changeOrigin: true
}
}
}
});
使用 Mock API
前端可以使用 MSW (Mock Service Worker) 模擬 API:
cd app-web
npm run dev:mock
統一部署模式
如需測試統一部署(WAR 模式):
# 1. 建置前端
cd app-web
npm run build
# 2. 建置並啟動 WAR
cd ../app-web-host
./gradlew bootRun
應用將在 http://localhost:8080 啟動(前後端整合)。
資料初始化
首次啟動會自動建立測試資料:
- 租戶:demo(示範花店)
- 帳號:admin / admin123
- 商品:10 個示範商品
- 客戶:5 個示範客戶
常見問題
資料庫連線失敗
確認 PostgreSQL 正在運行:
docker ps | grep postgres
CORS 錯誤
確認後端已配置允許前端來源:
app:
cors:
allowed-origins: http://localhost:5173
端口被佔用
# 查找佔用端口的程序
lsof -i :8080
lsof -i :5173
# 終止程序
kill -9 <PID>