Skip to content

ankaboot-source/leadminer

Repository files navigation

Maintainability

Leadminer Logo

Leadminer

Extract, clean and enrich email addresses from your own mailbox.

✨ Features

  • ⛏️📧 Extract contacts from your mailbox
  • 🧹💌 Clean your email list

📑 Table of contents

📦 How to run?

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.

Prerequisites: Make sure all the prerequisites are installed on your system
node -v
npm -v
docker -v
docker-compose -v
1. Clone the repository & install dependencies:
git clone https://github.com/ankaboot-source/leadminer
cd leadminer
npm run install-deps
2. Generate environment variables:

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.

4. Running with Supabase
You could either set-up leadminer using Supabase locally or Supabase SaaS. We recommend Supabase locally for now.
Running with Supabase SaaS
  1. 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.
  2. 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
  3. Start docker-compose :

    docker-compose up --build --force-recreate -d
Running with Supabase locally
  1. Start Supabase services:

    npm run dev:supabase
  2. 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
  3. Start your environment:

    Start frontend, backend and supabase edge-functions services:

    npm run dev:all
5. Launch the app:

Finally, launch the app at: http://localhost:8082/

🤝 Contributing

Thank you for taking the time to contribute! Please refer to our CONTRIBUTING.md for guidelines and more information on how to get started.

🎯 Roadmap

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.

🛠️ Support

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.

📜 License

This software is dual-licensed under GNU AGPL v3.