Aplicativo de e-mail de código aberto para chegar à caixa de entrada rapidamente.
Site · Discord · Problemas · Kanban
Inbox Zero é um aplicativo de e-mail de código aberto cujo objetivo é ajudá-lo a chegar rapidamente à caixa de entrada zero com assistência de IA.
Para solicitar um recurso, abra um problema no GitHub. Se você não possui uma conta GitHub, pode solicitar recursos aqui. Ou junte-se ao nosso Discord.
Temos um Kanban público disponível aqui. Junte-se ao nosso Discord para discutir tarefas e verificar o que está sendo trabalhado.
Aqui está um vídeo sobre como configurar o projeto. Abrange as mesmas etapas mencionadas neste documento. Mas entra em mais detalhes sobre a configuração dos serviços externos.
Os serviços externos necessários são:
Usamos Postgres para o banco de dados.
Você pode executar Postgres e Redis localmente usando docker-compose
docker-compose up -d # -d will run the services in the background
Crie seu próprio arquivo .env
:
cp apps/web/.env.example apps/web/.env
cd apps/web
pnpm install
Defina as variáveis de ambiente no .env
recém-criado. Você pode ver uma lista de variáveis obrigatórias em: apps/web/env.ts
.
As variáveis de ambiente necessárias:
NEXTAUTH_SECRET
– pode ser qualquer string aleatória (tente usar openssl rand -hex 32
para uma string aleatória rápida e segura)GOOGLE_CLIENT_ID
– ID do cliente Google OAuth. Mais informações aquiGOOGLE_CLIENT_SECRET
– segredo do cliente Google OAuth. Mais informações aquiOPENAI_API_KEY
-- Chave da API OpenAI.UPSTASH_REDIS_URL
– URL Redis do Upstash.UPSTASH_REDIS_TOKEN
– Token Redis do Upstash.TINYBIRD_TOKEN
– Token de administrador para seu espaço de trabalho Tinybird (certifique-se de criar uma instância na região us-east4
do GCP. Isso também pode ser alterado por meio de seu .env
se você preferir uma região diferente). Você também pode decidir desabilitar o Tinybird e então os recursos de análise e cancelamento de assinatura em massa serão desabilitados. Defina NEXT_PUBLIC_DISABLE_TINYBIRD=true
se você decidir desabilitar o Tinybird.Para executar as migrações:
pnpm prisma migrate dev
Para executar o aplicativo localmente:
pnpm run dev
Ou da raiz do projeto:
turbo dev
Abra http://localhost:3000 para visualizá-lo em seu navegador. Para atualizar para administrador, visite: http://localhost:3000/admin.
Você precisa ativar estes escopos no Console do Google Cloud:
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
Siga as instruções aqui para configurar os pipes
e datasources
.
Opcional: se você também deseja armazenar estatísticas de uso de IA no Tinybird, faça o mesmo em /packages/tinybird-ai-analytics
.
Siga as instruções aqui.
Definir ambiente var GOOGLE_PUBSUB_TOPIC_NAME
. Ao criar a assinatura, selecione Push e o URL deve ser semelhante a: https://www.getinboxzero.com/api/google/webhook?token=TOKEN
ou https://abc.ngrok-free.app/api/google/webhook?token=TOKEN
onde o domínio é o seu domínio. Defina GOOGLE_PUBSUB_VERIFICATION_TOKEN
em seu arquivo .env
como o valor de TOKEN
.
Para executar em desenvolvimento o ngrok pode ser útil:
ngrok http 3000
# or with an ngrok domain to keep your endpoint stable (set `XYZ`):
ngrok http --domain=XYZ.ngrok-free.app 3000
Em seguida, atualize o endpoint do webhook no painel de assinaturas do Google PubSub.
Para começar a assistir e-mails, visite: /api/google/watch/all