Zapeit is a microservices-based automation platform replicating Zapier's core functionalities. It enables users to create automated workflows (Zaps) triggered by webhooks, performing actions like sending emails. The system features a scalable microservices architecture and an event-driven design.
- Apache Kafka: Reliable event streaming.
- Docker: Consistent deployment environments.
- Next.js: React framework for frontend.
- Express.js: API handling and routing.
- Prisma ORM: Type-safe database access.
- PostgreSQL: Robust relational database.
To get started with Zapeit, follow these steps:
Ensure you have Docker installed on your machine. You can download Docker from here.
-
Clone the repository:
git clone https://github.com/krishmakhijani/zapeit.git cd zapeit
-
Start PostgreSQL:
docker run -p 5432:5432 --name zapier_postgres -e POSTGRES_USER=zapeit -e POSTGRES_PASSWORD=zapeit -e POSTGRES_DB=zapeit_db postgres:13
-
Start Apache Kafka:
docker run --name zapier_kafka -p -d 9092:9092 apache/kafka:latest
-
Get shell access to the Kafka container:
docker ps docker exec -it zapeit_kafka /bin/bash
-
Create a Kafka topic:
Inside the Kafka container:
cd /opt/kafka/bin ./kafka-topics.sh --create --topic zap-events --bootstrap-server localhost:9092
Navigate to each service directory and install the required dependencies:
cd hooks
npm install
cd worker
npm install
cd processor
npm install
cd primary-backend
npm install
To start each service, use the following commands:
-
Hook Service:
cd hooks npm run start
-
Worker Service:
cd worker npm run start
-
Processor Service:
cd processor npm run start
-
Primary Backend:
cd primary-backend npm run start
-
Frontend:
Navigate to your frontend directory and start the frontend server:
cd frontend npm run dev