Hi there! Welcome to Nodebase. 👋
Think of this as your own personal control center for automating tasks. It's a visual tool (like a whiteboard) where you can connect different services together to make things happen automatically.
Built with the latest and greatest tech (Next.js, React Flow, Inngest), it's designed to be powerful for developers but friendly enough for anyone to understand.
- Visual Building: No complex code. Just drag blocks, drop them, and connect the dots. 🎨
- Reliable: It uses a smart system (Inngest) to make sure your workflows finish their job, even if something hiccups. 🛡️
- Connect Anything: Use "HTTP Request" blocks to talk to almost any service on the internet. 🌐
- Secure: Your data is yours. It comes with built-in login and security. 🔒
- Lookin' Good: It's easy on the eyes, thanks to a modern design. 😎
For the curious developers out there, here's what makes it tick:
- Frontend: Next.js 15, React, TypeScript (The face of the app)
- Visuals: React Flow (The drag-and-drop magic)
- Styling: Tailwind CSS & shadcn/ui (The pretty colors and buttons)
- Backend Engine: Inngest (The brain that runs tasks)
- Database: PostgreSQL with Prisma (The memory)
- Auth: NextAuth.js (The bouncer)
Want to take it for a spin? Here is how to set it up on your machine.
- Node.js (Version 18 or higher)
- A PostgreSQL database active and ready.
npmoryarn(comes with Node.js).
-
Grab the Code:
git clone https://github.com/Mayank-saraswal/n8n.git cd nodebase -
Install the "Parts":
npm install
-
Secrets & Config: We need to tell the app where your database is.
cp .env.example .env.local
Now, open
.env.localand fill in your details (Database URL, Secret keys, etc.). -
Prep the Database:
npx prisma generate npx prisma db push
-
Ignition! 🚀: Start the app:
npm run dev
-
Start the Engine (New Terminal): The app needs the background engine running too.
npx inngest-cli@latest dev
Visit http://localhost:3000 and you're in! 🎉
Go to the Workflows page and hit Create. You'll see a blank canvas. This is your playground.
- Manual Trigger: This is your "Start" button. Every workflow needs a trigger.
- HTTP Request: Want to fetch weather data? Post a tweet? Send a message to Discord? Use this.
- Draw lines between nodes to connect them.
- Click a node to change its settings (like the URL you want to hit).
- Pro Tip: You can use data from previous steps! If your first step got some data, you can use it in the second step like this:
{{stepName.data}}.
Click Execute Workflow and watch the magic happen. You can see the status of every run.
- Workflow not running? Make sure you ran that second terminal command (
npx inngest-cli...). It's the engine! - Database error? Double-check that
DATABASE_URLin your.envfile. It needs to be perfect. - Something else? Open an issue on GitHub, and we'll help you out.
MIT License. Basically, do cool stuff with this project.
To enable the Gmail real-time trigger (fires workflows when new emails arrive), you need to configure Google Cloud Pub/Sub:
-
Create a Pub/Sub topic: Go to Google Cloud Console → Pub/Sub and create a topic named
gmail-notifications. -
Create a push subscription:
- Endpoint URL:
https://YOUR_DOMAIN/api/webhooks/gmail?token=YOUR_VERIFICATION_TOKEN - Replace
YOUR_DOMAINwith your deployed Nodebase URL - Replace
YOUR_VERIFICATION_TOKENwith a random secret string
- Endpoint URL:
-
Grant publish permissions: Add
gmail-api-push@system.gserviceaccount.comwith the Pub/Sub Publisher role on the topic. -
Set environment variables:
GMAIL_PUBSUB_VERIFICATION_TOKEN=your_random_secret_here GMAIL_PUBSUB_TOPIC_NAME=projects/YOUR_PROJECT_ID/topics/gmail-notifications
Once configured, use the activateWatch mutation in the Gmail node to start watching an inbox. Watches are automatically renewed daily by the gmail-watch-renewal cron job.
Made with ❤️ by Mayank Saraswal. Happy Automating!