File size: 5,314 Bytes
5ef6e9d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
# Hugging Face Spaces 部署檢查清單

## 部署前檢查

### 必要檔案
- [ ] `Dockerfile` - Docker 建置配置
- [ ] `README.md` - Space 配置檔(包含 YAML front matter)
- [ ] `.dockerignore` - 排除不需要的檔案
- [ ] `.env.example` - 環境變數範例
- [ ] `DEPLOYMENT.md` - 部署指南

### 專案檔案
- [ ] `package.json` - 根目錄 workspace 配置
- [ ] `pnpm-lock.yaml` - 依賴鎖定檔
- [ ] `pnpm-workspace.yaml` - Workspace 配置
- [ ] `tsconfig.base.json` - TypeScript 基礎配置
- [ ] `tsconfig.json` - TypeScript 配置

### 後端檔案
- [ ] `artifacts/api-server/` - 完整後端程式碼
- [ ] `artifacts/api-server/src/index.ts` - 已移除背景 token refresh
- [ ] `artifacts/api-server/src/lib/localTempStorage.ts` - 本地暫存邏輯

### 前端檔案
- [ ] `artifacts/image-gen/` - 完整前端程式碼
- [ ] `artifacts/image-gen/dist/` - 建置後會自動生成

### 資料庫檔案
- [ ] `lib/db/` - 資料庫層
- [ ] `lib/db/package.json` - 已更新為 better-sqlite3
- [ ] `lib/db/drizzle.config.ts` - 已改為 SQLite 配置
- [ ] `lib/db/src/index.ts` - 已改為 SQLite 連接

### 共享庫
- [ ] `lib/api-client-react/` - React API 客戶端
- [ ] `lib/api-spec/` - OpenAPI 規格
- [ ] `lib/api-zod/` - Zod 驗證

## 環境變數設定

### 必要變數(在 Space Settings 中設定)
- [ ] `JWT_SECRET` - JWT 密鑰(至少 32 字元隨機字串)
- [ ] `ENCRYPTION_KEY` - 加密密鑰(必須是 32 字元)

### 可選變數
- [ ] `DATABASE_URL` - 資料庫路徑(預設:file:/data/sqlite.db)
- [ ] `TEMP_STORAGE_PATH` - 暫存路徑(預設:/app/temp-storage)
- [ ] `TURNSTILE_SOLVER_URL` - Turnstile 服務 URL(如有)

## Space 設定

### 基本設定
- [ ] Space SDK 選擇 "Docker"
- [ ] Space hardware 選擇 "CPU basic"(免費)
- [ ] License 設定為 "MIT"

### Persistent Storage
- [ ] 啟用 Persistent Storage
- [ ] 掛載路徑設定為 `/data`
- [ ] 確認容量足夠(免費版有限制)

## 建置檢查

### Docker 建置
- [ ] Dockerfile 語法正確
- [ ] 所有依賴都能正確安裝
- [ ] 前端建置成功
- [ ] 後端建置成功
- [ ] 暴露端口 7860

### 執行時檢查
- [ ] 伺服器能正常啟動
- [ ] 資料庫檔案能正確建立
- [ ] 暫存目錄能正確建立
- [ ] 日誌輸出正常

## 功能測試

### 基本功能
- [ ] 首頁能正常載入
- [ ] 用戶註冊功能正常
- [ ] 用戶登入功能正常
- [ ] 第一個用戶成為管理員

### 管理功能
- [ ] 能進入管理後台
- [ ] 能設定 geminigen.ai 憑證
- [ ] 能查看系統狀態
- [ ] 能管理用戶

### 圖像生成
- [ ] 能輸入提示詞
- [ ] 能選擇模型
- [ ] 能選擇風格和比例
- [ ] 能上傳參考圖像
- [ ] 能成功生成圖像
- [ ] 圖像能正常顯示

### 影片生成
- [ ] 能輸入提示詞
- [ ] 能選擇模型(Grok-3 / Veo 3.1)
- [ ] 能設定進階選項
- [ ] 能上傳參考圖像
- [ ] 能成功生成影片
- [ ] 進度追蹤正常
- [ ] 影片能正常播放

### 歷史記錄
- [ ] 圖像歷史能正常顯示
- [ ] 影片歷史能正常顯示
- [ ] 能刪除記錄
- [ ] 私密/公開過濾正常

## 效能檢查

### 資源使用
- [ ] CPU 使用率合理
- [ ] 記憶體使用率合理
- [ ] 磁碟空間足夠

### 回應時間
- [ ] 頁面載入速度可接受
- [ ] API 回應時間合理
- [ ] 圖像生成時間正常
- [ ] 影片生成時間正常

## 維護檢查

### 自動清理
- [ ] 舊檔案能自動清理(24 小時)
- [ ] 清理日誌正常輸出
- [ ] 磁碟空間不會持續增長

### 日誌監控
- [ ] 能在 Space Logs 查看日誌
- [ ] 錯誤日誌清晰可讀
- [ ] 無異常錯誤持續出現

### 備份
- [ ] 知道如何備份資料庫
- [ ] 知道如何還原資料庫
- [ ] 定期備份計畫已建立

## 安全檢查

### 憑證安全
- [ ] JWT_SECRET 是隨機生成的
- [ ] ENCRYPTION_KEY 是隨機生成的
- [ ] 不在程式碼中硬編碼敏感資訊
- [ ] .env 檔案已加入 .gitignore

### 存取控制
- [ ] 管理功能需要管理員權限
- [ ] 私密內容只有擁有者能查看
- [ ] API 端點有適當的認證

## 文件檢查

### 使用者文件
- [ ] README.md 說明清楚
- [ ] DEPLOYMENT.md 步驟完整
- [ ] .env.example 註解清楚

### 開發文件
- [ ] 程式碼註解充足
- [ ] 關鍵邏輯有說明
- [ ] 已知限制有記錄

## 部署後驗證

### 立即檢查
- [ ] Space 狀態為 "Running"
- [ ] 能訪問 Space URL
- [ ] 首頁正常顯示
- [ ] 無 JavaScript 錯誤

### 24 小時後檢查
- [ ] Space 仍在運行
- [ ] 資料庫資料保存正常
- [ ] 舊檔案已自動清理
- [ ] 無記憶體洩漏

### 一週後檢查
- [ ] 長期穩定性良好
- [ ] 磁碟空間使用穩定
- [ ] 無異常錯誤累積
- [ ] 用戶回饋正面

## 問題排查

### 常見問題
- [ ] 知道如何查看日誌
- [ ] 知道如何重啟 Space
- [ ] 知道如何還原資料
- [ ] 知道如何聯繫支援

### 緊急處理
- [ ] 有備份還原計畫
- [ ] 有降級方案
- [ ] 有聯繫管道

## 完成確認

- [ ] 所有檢查項目都已完成
- [ ] 所有功能都正常運作
- [ ] 文件都已更新
- [ ] 團隊成員都已知悉

---

**部署日期**: _______________

**部署人員**: _______________

**Space URL**: _______________

**備註**: