將Cusdis部署到Vercel和Railway
Cusdis的部署非常簡單,我個人使用官方建議部署到Vercel(網站託管)和Railway(PostgreSQL資料庫)。請參考〈Deploy Cusdis on Vercel〉和〈Deploy Cusdis on Railway〉的解說,很容易就能一鍵部署完成。但是自行部署的Cusdis只能單一使用者自用,無法給其他人用,因為沒有連結其他帳戶服務。
在Railway部署資料庫
Railway雖然可以同時部署網站和資料庫,但不知為何只要開始建置時就會出現Banned Dependency Detected!
,導致無法建置成功。
因為還要查問題,實在太麻煩了,所以我們把該專案的網站刪除,只留資料庫就好。資料庫不用改任何設定。
在Vercel部署網站
到Vercel一鍵部署網站,環境變數只有四個要填寫,其他變數之後再補填。
Cusdis部署完成的畫面。
到Vercel → Dashboard → 專案 → Settings → Environment Variables,填入其他變數。所有變數都是在這裡設定。
Cusdis變數說明
基本的環境變數:
NEXTAUTH_URL
:系統給的網域或自訂的網域,例如:https://foo.vercel.app
。沒填的話,登入管理後台要登入兩次,登入後的網域會不一樣(登入到部署專用的動態網域),會影響很多功能。USERNAME
:登入管理後台的使用者名稱。PASSWORD
:登入管理後台的密碼。DB_URL
:資料庫的連結位址,例如:postgresql://johndoe:randompassword@localhost:5432/mydb
。這裡我們需填入Railway的資料庫連結位址。HOST
:系統給的網域或自訂的網域,例如:foo.vercel.app
。沒填的話,Email Notification的Token連結會無效,信件裡的網域也是錯的(例如取消訂閱連結)。JWT_SECRET
:不知道要填什麼的話,可以使用JWT generator來產生Token。
以下為Email Notification的環境變數,以Gmail為例:
SMTP_HOST
:smtp.gmail.comSMTP_PORT
:465SMTP_SECURE
:trueSMTP_USER
:your gmail emailSMTP_PASSWORD
:<app password>。到Google帳戶設定一組應用程式密碼。SMTP_SENDER
:your gmail email。可給予顯示名稱,例如John Doe <john.doe@gmail.com>
。
以上變數全部都要設定,功能才算完整。設定完成需重新部署(選擇Redeploy或Promote to Production)才可使用。
其他Vercel設定
如果要設定自訂網域,請到Domains設定。
Serverless Function Region:可選擇部署的區域。