跳至主要内容

本地部署

本文檔說明如何在本地環境部署和運行花店管理系統。

前置需求

  • 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>

下一步