Application de messagerie open source pour atteindre rapidement zéro boîte de réception.
Site Web · Discord · Problèmes · Kanban
Inbox Zero est une application de messagerie open source dont l'objectif est de vous aider à atteindre rapidement la boîte de réception zéro grâce à l'assistance de l'IA.
Pour demander une fonctionnalité, ouvrez un ticket GitHub. Si vous n'avez pas de compte GitHub, vous pouvez demander des fonctionnalités ici. Ou rejoignez notre Discord.
Nous avons un Kanban public disponible ici. Rejoignez notre Discord pour discuter des tâches et vérifier sur quoi on travaille.
Voici une vidéo sur la façon de mettre en place le projet. Il couvre les mêmes étapes mentionnées dans ce document. Mais entre plus en détail sur la mise en place des services externes.
Les services externes requis sont :
Nous utilisons Postgres pour la base de données.
Vous pouvez exécuter Postgres et Redis localement en utilisant docker-compose
docker-compose up -d # -d will run the services in the background
Créez votre propre fichier .env
:
cp apps/web/.env.example apps/web/.env
cd apps/web
pnpm install
Définissez les variables d'environnement dans le .env
nouvellement créé. Vous pouvez voir une liste des variables requises dans : apps/web/env.ts
.
Les variables d'environnement requises :
NEXTAUTH_SECRET
-- peut être n'importe quelle chaîne aléatoire (essayez d'utiliser openssl rand -hex 32
pour une chaîne aléatoire sécurisée rapide)GOOGLE_CLIENT_ID
– ID client Google OAuth. Plus d'infos iciGOOGLE_CLIENT_SECRET
– Secret client Google OAuth. Plus d'infos iciOPENAI_API_KEY
-- Clé API OpenAI.UPSTASH_REDIS_URL
– URL Redis d'Upstash.UPSTASH_REDIS_TOKEN
-- Jeton Redis d'Upstash.TINYBIRD_TOKEN
- Jeton d'administration pour votre espace de travail Tinybird (assurez-vous de créer une instance dans la région GCP us-east4
. Cela peut également être modifié via votre .env
si vous préférez une région différente). Vous pouvez également décider de désactiver Tinybird, puis les fonctionnalités d'analyse et de désabonnement groupé seront désactivées. Définissez NEXT_PUBLIC_DISABLE_TINYBIRD=true
si vous décidez de désactiver Tinybird.Pour exécuter les migrations :
pnpm prisma migrate dev
Pour exécuter l'application localement :
pnpm run dev
Ou depuis la racine du projet :
turbo dev
Ouvrez http://localhost:3000 pour l'afficher dans votre navigateur. Pour passer au niveau administrateur, visitez : http://localhost:3000/admin.
Vous devez activer ces champs d'application dans 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
Suivez les instructions ici pour configurer les pipes
et datasources
.
Facultatif : si vous souhaitez également stocker les statistiques d'utilisation de l'IA dans Tinybird, faites de même dans /packages/tinybird-ai-analytics
.
Suivez les instructions ici.
Définissez la variable d'environnement GOOGLE_PUBSUB_TOPIC_NAME
. Lors de la création de l'abonnement, sélectionnez Push et l'URL devrait ressembler à : https://www.getinboxzero.com/api/google/webhook?token=TOKEN
ou https://abc.ngrok-free.app/api/google/webhook?token=TOKEN
où le domaine est votre domaine. Définissez GOOGLE_PUBSUB_VERIFICATION_TOKEN
dans votre fichier .env
sur la valeur de TOKEN
.
Exécuter ngrok en développement peut être utile :
ngrok http 3000
# or with an ngrok domain to keep your endpoint stable (set `XYZ`):
ngrok http --domain=XYZ.ngrok-free.app 3000
Ensuite, mettez à jour le point de terminaison du webhook dans le tableau de bord des abonnements Google PubSub.
Pour commencer à regarder vos e-mails, visitez : /api/google/watch/all