- ⛏️📧 Extract contacts from your mailbox
- 🧹💌 Clean your email list
To give it a try without the hassle of installation, simply use leadminer.io. For development purposes, jump directly to Running with Supabase locally.
Note that this project integrates with third-party services for email cleaning and enrichment.
node -v
npm -v
docker -v
docker-compose -v
git clone https://github.com/ankaboot-source/leadminer
cd leadminer
npm run install-deps
Run the below commands to generate a pre-configured .env
file with credentials and API mocks, optimized for local development and testing. Expect 3 .env
files created in ./backend
./frontend
./supabase/functions
If you encounter OAuth issues during sign-in and sign-up, Contact [email protected] to add your email to the whitelist or refer to Running with Supabase SaaS to learn how you can create your own OAuth credentials.
npm run dev:generate-env
cp ./supabase/functions/.env.dev ./supabase/functions/.env
3. Setup third-party services (optional)
External services for email verification.
-
Reacher: Use the SaaS version or self-host. Refer to Reacher's documentation for setup.
Note: Refer to .env.master.prod and .env.master.dev according to your environment
-
MailerCheck: Sign up, then update
MAILERCHECK_API_KEY
in the.env
file.Refer to .env.master.prod for guidance.
-
Zero bounce: Sign up, then update
ZEROBOUNCE_API_KEY
in the.env
file.Refer to .env.master.prod for guidance.
You could either set-up leadminer using Supabase locally or Supabase SaaS. We recommend Supabase locally for now.
Running with Supabase SaaS
-
Setup Supabase Instance:
-
Create an account here and create a project.
-
Obtain the following values from your dashboard:
- Project URL: Found under Settings -> API in the "Project URL" section.
- Project API key: Found under Settings -> API in the "Project API keys" section. Use the
service_role
secret. - Project Anon key: Found under Settings -> API in the "Project API keys" section. Use the
anon
public
key. - Postgres Connection string: Found under Settings -> Database in the "Connection string" section. Select the URI option.
-
Configuring authentication with OAuth:
Note: Currently, Leadminer only supports Google and Azure as third-party OAuth providers. Use "google" for the "PROVIDER_NAME" if integrating Google OAuth and "azure" if integrating Azure.
- Enable third-party providers in your Supabase dashboard. Refer to the documentation for instructions.
- Under the "Social Auth" section, select the provider you want to configure and follow the provided instructions.
- After creating an OAuth app, go to your app dashboard and add the following URI under the "REDIRECT URI's" section:
http://localhost:8081/api/imap/mine/sources/PROVIDER_NAME/callback
.
-
-
Deploy secrets, migrations, edge-functions:
Configure the variables inside
./supabase/functions/.env
with supabase credentials from step 1, for other variables reference the backend, frontend .env files to copy the value.npx supabase login npx supabase link --project-ref <supabase_project_id> npx supabase secrets set --env-file ./supabase/functions/.env npx supabase db push npx supabase functions deploy
-
Start docker-compose :
docker-compose up --build --force-recreate -d
Running with Supabase locally
-
Start Supabase services:
npm run dev:supabase
-
Start Redis services:
If you prefer to run a Redis container, use the command below. Otherwise, ensure Redis is installed on your machine and skip this step.
Note: If you encounter issues connecting to the redis container, make sure to update
REDIS_HOST
in the.env
file.docker-compose -f docker-compose.dev.yml up -d
-
Start your environment:
Start frontend, backend and supabase edge-functions services:
npm run dev:all
Finally, launch the app at: http://localhost:8082/
Thank you for taking the time to contribute! Please refer to our CONTRIBUTING.md for guidelines and more information on how to get started.
For any specific requests or suggestions regarding the roadmap, please feel free to contact ankaboot professional services or check the open issues for ongoing discussions and updates.
If you encounter any issues, please check the issues tab to see if it has already been reported and resolved. Ensure that you are using the latest version before reporting an issue. If the problem persists, feel free to open a new issue.
Please note that this app is provided for free and without any guarantee or official support. If you require additional assistance, you can contact ankaboot professional services for help.
This software is dual-licensed under GNU AGPL v3.