開源電子郵件應用程式可快速實現收件匣為零。
網站 · Discord · 問題 · 看板
Inbox Zero 是一款開源電子郵件應用程序,其目標是透過 AI 輔助幫助您快速實現收件匣清除。
若要請求功能,請開啟 GitHub 問題。如果您沒有 GitHub 帳戶,您可以在此處要求功能。或加入我們的 Discord。
我們這裡有一個公共看板。加入我們的 Discord 討論任務並檢查正在進行的工作。
這是有關如何設定項目的影片。它涵蓋了本文檔中提到的相同步驟。但更詳細地介紹如何設定外部服務。
所需的外部服務有:
我們使用 Postgres 作為資料庫。
您可以使用docker-compose
在本地運行 Postgres 和 Redis
docker-compose up -d # -d will run the services in the background
建立您自己的.env
檔案:
cp apps/web/.env.example apps/web/.env
cd apps/web
pnpm install
在新建立的.env
中設定環境變數。您可以在以下位置查看所需變數的清單: apps/web/env.ts
。
所需的環境變數:
NEXTAUTH_SECRET
- 可以是任何隨機字串(嘗試使用openssl rand -hex 32
獲得快速安全的隨機字串)GOOGLE_CLIENT_ID
——Google OAuth 用戶端 ID。更多資訊請點這裡GOOGLE_CLIENT_SECRET
-- Google OAuth 客戶端金鑰。更多資訊請點這裡OPENAI_API_KEY
——OpenAI API 金鑰。UPSTASH_REDIS_URL
-- 來自 Upstash 的 Redis URL。UPSTASH_REDIS_TOKEN
-- 來自 Upstash 的 Redis 令牌。TINYBIRD_TOKEN
- Tinybird 工作區的管理令牌(請務必在 GCP us-east4
區域中建立一個實例。如果您喜歡不同的區域,也可以透過.env
進行更改)。您也可以決定停用 Tinybird,然後分析和批次取消訂閱功能將被停用。如果您決定停用 Tinybird,請設定NEXT_PUBLIC_DISABLE_TINYBIRD=true
。要運行遷移:
pnpm prisma migrate dev
要在本地運行應用程式:
pnpm run dev
或從專案根目錄:
turbo dev
開啟 http://localhost:3000 在瀏覽器中查看。要將自己升級為管理員,請造訪:http://localhost:3000/admin。
您需要在 Google Cloud Console 中啟用這些範圍:
https://www.googleapis.com/auth/userinfo.profile
https://www.googleapis.com/auth/userinfo.email
https://www.googleapis.com/auth/gmail.modify
https://www.googleapis.com/auth/gmail.settings.basic
https://www.googleapis.com/auth/contacts
請按照此處的說明設定pipes
和datasources
。
可選:如果您也想在 Tinybird 中儲存 AI 使用統計信息,請在/packages/tinybird-ai-analytics
中執行相同操作。
請按照此處的說明進行操作。
設定環境變數GOOGLE_PUBSUB_TOPIC_NAME
。建立訂閱時,選擇“推送”,URL 應類似於: https://www.getinboxzero.com/api/google/webhook?token=TOKEN
?token=TOKEN 或https://abc.ngrok-free.app/api/google/webhook?token=TOKEN
其中的網域是您的網域。將.env
檔案中的GOOGLE_PUBSUB_VERIFICATION_TOKEN
設定為TOKEN
的值。
在開發中執行 ngrok 會很有幫助:
ngrok http 3000
# or with an ngrok domain to keep your endpoint stable (set `XYZ`):
ngrok http --domain=XYZ.ngrok-free.app 3000
然後更新 Google PubSub 訂閱儀表板中的 Webhook 端點。
要開始觀看電子郵件,請造訪: /api/google/watch/all