c1d302f03ebc1b157ab77adf78f1133110f24920
Star ERP (Koori ERP)
Star ERP 是一個基於 Laravel 12、Inertia.js (React) 與 Tailwind CSS 構建的現代化多租戶 ERP 系統。 本專案專為高效能、SaaS 架構設計,並預設配置了完整的 Docker 開發環境。
🌟 專案架構
- 核心框架: Laravel 12 (PHP 8.5)
- 多租戶引擎: stancl/tenancy (Single Database per Tenant)
- 前端架構: React 18, Inertia.js (單體式/Monolith)
- UI 框架: Tailwind CSS
- 基礎設施: Docker (Laravel Sail), Nginx Reverse Proxy, MySQL 8.0, Redis
📂 系統選單結構 (Sidebar)
以下為 ERP 系統之側邊導覽結構及其對應之權限:
- 🏠 儀表板 (
/) - 📦 商品與庫存管理
- 📄 商品資料管理 (
/products) -products.view - 🏢 倉庫管理 (
/warehouses) -warehouses.view
- 📄 商品資料管理 (
- 🚚 廠商管理
- 👥 廠商資料管理 (
/vendors) -vendors.view
- 👥 廠商資料管理 (
- 🛒 採購管理
- 📝 採購單管理 (
/purchase-orders) -purchase_orders.view
- 📝 採購單管理 (
- ⚙️ 系統管理
- 👤 使用者管理 (
/admin/users) -users.view - 🛡️ 角色與權限 (
/admin/roles) -roles.view - 📜 操作紀錄 (
/admin/activity-logs) -system.view_logs
- 👤 使用者管理 (
🚀 快速開始
1. 環境準備
請確保您的開發環境已安裝:
- Docker Desktop 或 Docker Engine
- Git
- WSL2 (Windows 用戶建議)
2. 初始化專案
# 1. 下載專案
git clone <repository_url> star-erp
cd star-erp
# 2. 設定環境變數
cp .env.example .env
# 請檢查 .env 內容,本機開發預設配置:
# APP_PORT=8080 (總後台)
# DEMO_TENANT_PORT=8081 (租戶測試)
# VITE_PORT=5174
# 3. 啟動容器
docker compose up -d --build
3. 安裝依賴與初始化
# 安裝 PHP 依賴
docker exec -it star-erp-laravel composer install
# 生成 Application Key
docker exec -it star-erp-laravel php artisan key:generate
# 執行資料庫遷移與種子資料 (建立基礎表格)
docker exec -it star-erp-laravel php artisan migrate --seed
# 安裝與編譯前端資源
docker exec -it star-erp-laravel npm install
docker exec -it star-erp-laravel npm run dev
🌐 服務訪問 (開發與 Demo 模式)
本專案使用獨立的 Nginx 容器 (star-erp-proxy) 進行反向代理,以模擬多租戶環境的分流。
| 服務 | URL | 說明 |
|---|---|---|
| 總後台 (Landlord) | http://localhost:8080 |
中央管理介面,用於新增與管理租戶 |
| 租戶演示 (Demo) | http://localhost:8081 |
模擬租戶環境,預設存取 koori 租戶 |
| Vite HMR | http://localhost:5174 |
前端開發熱更新服務 |
開發小撇步:為了方便測試,本機與 Demo 環境啟用了
DEMO_TENANT_PORT=8081功能,允許透過端口直接識別租戶,無需修改 hosts 檔案。
🏢 正式環境運作流程
在正式環境 (Production) 下,系統採用標準的 域名識別 (Domain Identification) 模式:
- 進入總後台:透過中央域名登入 (如
admin.star-erp.com)。 - 新增租戶:在總後台建立新租戶 (例如 ID:
client-a),並綁定專屬域名 (如erp.client-a.com)。 - DNS 設定:在 DNS 服務商將該租戶域名 (CNAME 或 A 紀錄) 指向伺服器 IP。
- 訪問:使用者直接瀏覽
http://erp.client-a.com,系統會自動切換至該租戶的專屬資料庫。
🛠 常用指令
# 進入 Laravel 容器 Shell
docker exec -it star-erp-laravel bash
# 清除快取 (Config/Route/View) - 修改 .env 後建議執行
docker exec -it star-erp-laravel php artisan optimize:clear
# 執行 Tinker (互動式 Shell)
docker exec -it star-erp-laravel php artisan tinker
# 停止容器
docker compose down
🧪 開發規範
- 後端: Follow Laravel 12 最佳實踐,使用 Service/Action 模式處理複雜邏輯。
- 前端: React Functional Components + Hooks。UI 元件位於
resources/js/Components。 - 樣式: 全面使用 Tailwind CSS,避免手寫 CSS。
- 多租戶:
- 中央邏輯 (Landlord) 與租戶邏輯 (Tenant) 分離。
- 租戶路由定義於
routes/tenant.php(但在本專案架構中,大部分路由在web.php並透過 Middleware 判斷環境)。
Description
Languages
TypeScript
69.3%
PHP
21.7%
CSS
8.2%
Dockerfile
0.5%
Shell
0.2%