Aplicación de correo electrónico de código abierto para llegar rápidamente a la bandeja de entrada cero.
Sitio web · Discord · Problemas · Kanban
Inbox Zero es una aplicación de correo electrónico de código abierto cuyo objetivo es ayudarlo a llegar rápidamente a la bandeja de entrada cero con asistencia de IA.
Para solicitar una función, abra una edición de GitHub. Si no tiene una cuenta de GitHub, puede solicitar funciones aquí. O únete a nuestro Discord.
Tenemos un Kanban público disponible aquí. Únase a nuestro Discord para discutir tareas y comprobar en qué se está trabajando.
Aquí hay un vídeo sobre cómo configurar el proyecto. Cubre los mismos pasos mencionados en este documento. Pero entra en mayor detalle sobre la configuración de los servicios externos.
Los servicios externos que se requieren son:
Usamos Postgres para la base de datos.
Puede ejecutar Postgres y Redis localmente usando docker-compose
docker-compose up -d # -d will run the services in the background
Crea tu propio archivo .env
:
cp apps/web/.env.example apps/web/.env
cd apps/web
pnpm install
Establezca las variables de entorno en el .env
recién creado. Puede ver una lista de variables requeridas en: apps/web/env.ts
.
Las variables de entorno requeridas:
NEXTAUTH_SECRET
: puede ser cualquier cadena aleatoria (intente usar openssl rand -hex 32
para obtener una cadena aleatoria rápida y segura)GOOGLE_CLIENT_ID
: ID de cliente de Google OAuth. Más información aquíGOOGLE_CLIENT_SECRET
: secreto del cliente Google OAuth. Más información aquíOPENAI_API_KEY
: clave API de OpenAI.UPSTASH_REDIS_URL
: URL de Redis desde Upstash.UPSTASH_REDIS_TOKEN
: token de Redis de Upstash.TINYBIRD_TOKEN
: token de administrador para su espacio de trabajo de Tinybird (asegúrese de crear una instancia en la región GCP us-east4
. Esto también se puede cambiar a través de su .env
si prefiere una región diferente). También puede decidir deshabilitar Tinybird y luego se deshabilitarán las funciones de análisis y cancelación masiva de suscripción. Establece NEXT_PUBLIC_DISABLE_TINYBIRD=true
si decides desactivar Tinybird.Para ejecutar las migraciones:
pnpm prisma migrate dev
Para ejecutar la aplicación localmente:
pnpm run dev
O desde la raíz del proyecto:
turbo dev
Abra http://localhost:3000 para verlo en su navegador. Para actualizarse a administrador, visite: http://localhost:3000/admin.
Debe habilitar estos ámbitos en 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
Siga las instrucciones aquí para configurar las pipes
y datasources
.
Opcional: si también desea almacenar estadísticas de uso de IA en Tinybird, haga lo mismo en /packages/tinybird-ai-analytics
.
Siga las instrucciones aquí.
Establezca la var de entorno GOOGLE_PUBSUB_TOPIC_NAME
. Al crear la suscripción, seleccione Push y la URL debería verse así: https://www.getinboxzero.com/api/google/webhook?token=TOKEN
o https://abc.ngrok-free.app/api/google/webhook?token=TOKEN
donde el dominio es su dominio. Establezca GOOGLE_PUBSUB_VERIFICATION_TOKEN
en su archivo .env
como el valor de TOKEN
.
Para ejecutar ngrok en desarrollo puede resultar útil:
ngrok http 3000
# or with an ngrok domain to keep your endpoint stable (set `XYZ`):
ngrok http --domain=XYZ.ngrok-free.app 3000
Y luego actualice el punto final del webhook en el panel de suscripciones de Google PubSub.
Para comenzar a ver correos electrónicos, visite: /api/google/watch/all