---
# System prepended metadata

title: 'Zeabur 部署(docker, nodejs, postgresql)'

---

# Zeabur 部署(docker, nodejs, postgresql)
環境建置分 一、資料庫建置跟 二、github 專案建置兩個階段

一、資料庫建置
===

**1. 點擊建立服務**

![zeabur (1)](https://hackmd.io/_uploads/rJQ_6Enllg.png)

**2. 選擇 Docker 容器映像**

![zeabur (2)](https://hackmd.io/_uploads/ByCgs72gex.png)


**3. 輸入 posgres, 一鍵部署**

![zeabur (4)](https://hackmd.io/_uploads/rJRloQhgle.png)

**4. 點擊檔案，可檢視系統檔案**

![zeabur (5)](https://hackmd.io/_uploads/r1AgsX3glg.png)

![zeabur (9)](https://hackmd.io/_uploads/Bypxo72lll.png)

**5. 點擊紀錄，可檢視環境建置 log**

![zeabur (6)](https://hackmd.io/_uploads/HkAxj72ggg.png)

![zeabur (10)](https://hackmd.io/_uploads/Hy0lsXhlgg.png)

**6. 點擊指令，可輸入指令**

![zeabur (7)](https://hackmd.io/_uploads/SJCxjQ3llx.png)

![zeabur (11)](https://hackmd.io/_uploads/rkaeoXnlex.png)

**7. posgresql 環境建置完成**

![zeabur (8)](https://hackmd.io/_uploads/rJCeim3ggl.png)

**8. 檢視環境變數，紅框變數資料將在第二階段 github 專案建置時使用**

![zeabur (12)](https://hackmd.io/_uploads/rJAgjX3exx.png)

**9. 檢視網路，網域跟連接埠將在第二階段 github 專案建置時使用**

![zeabur (13)](https://hackmd.io/_uploads/ByAlom3llg.png)


二、github 專案建置
===

**10. 點擊建立服務**

![image](https://hackmd.io/_uploads/BJx6fZE2xlx.png)

**11. 選擇 Github**

![zeabur (18)](https://hackmd.io/_uploads/B10ximhxgx.png)

**12. 設定 Github 儲存庫**

![zeabur (19)](https://hackmd.io/_uploads/Hy0go73ele.png)

**13. 輸入 github 密碼**

![zeabur (20)](https://hackmd.io/_uploads/Syago73lxg.png)

**14. Select repositories 選擇要部署的 github 專案**

![zeabur (21)](https://hackmd.io/_uploads/Hk0xo72ele.png)

**15. 回到 zeabur，選擇剛剛選取的 github 專案**

![image](https://hackmd.io/_uploads/H1NAW43gel.png)

**16. 點擊部署**

![zeabur (23)](https://hackmd.io/_uploads/rJCximnglx.png)

**17. github 專案環境建置中**

![zeabur (24)](https://hackmd.io/_uploads/S1x0xom3xgx.png)

**18. 點擊設定**

![image](https://hackmd.io/_uploads/S18SzV3xgg.png)

**19. 設定預算**

![zeabur (26)](https://hackmd.io/_uploads/rJg0gsm2xex.png)

**20. 因為 github 專案還未設定環境變數，會顯示崩潰重試中**

![zeabur (27)](https://hackmd.io/_uploads/SJxAljX2exx.png)

**21. 回到剛剛建置的 postgresql 環境，檢視環境變數，記下紅框變數資料**

![zeabur (28)](https://hackmd.io/_uploads/HyCxs73ggg.png)

**22. 檢視網路，記下網域跟連接埠資料**

![zeabur (29)](https://hackmd.io/_uploads/rkeAeoQ3xle.png)

**23. 回到 github 專案環境**

![zeabur (30)](https://hackmd.io/_uploads/rkxAxsX2xle.png)

**24. 檢視網路，點擊綁定 Zeabur 子網域，Zeabur 有提供免費網域，設定網域，點擊確認綁定**

![zeabur (31)](https://hackmd.io/_uploads/r1xCxi7heel.png)

**25. 網域綁定成功，之後要設定新網域，刪除舊網域重新設定新的就可以**

![image](https://hackmd.io/_uploads/H1ze4V2exl.png)

**26. google 第三方登入設定剛剛綁定的網域網址**

![zeabur (33)](https://hackmd.io/_uploads/SJAeoXhexx.png)

**27. Google Cloud Platform API 服務，設定 google 第三方登入 callback 網址，點擊編輯按鈕(紅框)**

![image](https://hackmd.io/_uploads/rJYs442ggl.png)

**28. 設定重新導向 URI**

![image](https://hackmd.io/_uploads/rklepGQ-xe.png)


**29. 回到 github 環境專案環境，設定環境變數**

```
DB_DATABASE = (Zeabur postgresql 環境的 DB 名稱，變數值位置: 環境變數 => POSTGRES_DB 值)

DB_ENABLE_SSL = false

DB_HOST = (Zeabur postgresql 環境的網域，變數值位置: 網路=>網域)

DB_PASSWORD = (Zeabur postgresql 環境的 DB 名稱，變數值位置: 環境變數 => PASSWORD 值)

DB_PORT = (Zeabur postgresql 環境的網域，變數值位置: 網路=>連接埠)

DB_SYNCHRONIZE = true

DB_USERNAME = (Zeabur postgresql 環境的網域，變數值位置: 環境變數 => POSTGRES_USER 值)

GOOGLE_CALLBACK_URL = http://butter-sugar-test.zeabur.app/api/v1/users/auth/google/callback

GOOGLE_CLIENT_ID = (Google Cloud Platform API 服務憑證設定值)

GOOGLE_CLIENT_SECRET = (Google Cloud Platform API 服務憑證設定值)

JWT_SECRET = (自己設個亂數)

LOG_LEVEL = debug

SESSION_SECRET = (自己設個亂數)
```

![zeabur (36)](https://hackmd.io/_uploads/rygRgimhexx.png)

**30. 環境變數設定完後，點擊重啟目前版本重新部署**

![zeabur (38)](https://hackmd.io/_uploads/ByeRgom2xeg.png)

**31. 重新部署中**

![zeabur (39)](https://hackmd.io/_uploads/HJgAxo72lgg.png)

**32. 發現 crash**

![zeabur (40)](https://hackmd.io/_uploads/SJeReiQ2geg.png)

**33. 檢視 log，發現資料庫出現問題**

![zeabur (41)](https://hackmd.io/_uploads/rygAesm2xel.png)

**34. 資料庫crash 了，回到 postgresql-tic 環境，儀錶板會顯示重新建置按鈕，點擊後，重新生成 postgresql-que 環境**

![zeabur (39)](https://hackmd.io/_uploads/HJgAxo72lgg.png)

**35. 回到 github 專案，點擊重新部署**

![zeabur (39)](https://hackmd.io/_uploads/HJgAxo72lgg.png)

**36. github 專案部署成功**

![zeabur (43)](https://hackmd.io/_uploads/HJCes72exe.png)

**37. 簡易前端測試， Open with Live Server**

![zeabur (44)](https://hackmd.io/_uploads/rygRxjXnexl.png)

**38. 點擊連結**
![螢幕擷取畫面 2025-05-10 111401](https://hackmd.io/_uploads/ByMoNS2xgl.png)

**39. 選擇要登入的 Email**

![zeabur (45)](https://hackmd.io/_uploads/H1TlsXhggx.png)

**40. 登入成功**

![zeabur (46)](https://hackmd.io/_uploads/r1aloQ2xxx.png)

**41. Postman 測試 API - 取得學生資料**

![zeabur (47)](https://hackmd.io/_uploads/ryJbom3leg.png)

**42. Postman 測試 API - 更新學生資料**

![zeabur (48)](https://hackmd.io/_uploads/ByJWsm3lgx.png)

**43. Postman 測試 API - 更新的學生資料**

![zeabur (49)](https://hackmd.io/_uploads/Byy-sQhgex.png)

**44. Postman 測試 API - 驗證是否登入**

![zeabur (50)](https://hackmd.io/_uploads/Bk1WsQ3gex.png)


