Quick Start Guide
Get Project Noir running locally in under 10 minutes. This guide covers the dashboard setup. Voice agent and Telegram worker are optional for initial setup.
Prerequisites
Node.js 20+
Required for the Next.js dashboard
Python 3.11+
Required for voice agent and Telegram worker
PostgreSQL
Or a Neon account for serverless
Service Accounts
Clerk, Stripe, Twilio, Deepgram, ElevenLabs, OpenRouter, Resend
Setup Steps
Clone and Install
Clone the repository and install dependencies for the Next.js dashboard.
cd telephonia-react cp .env.example .env.local # Fill in all values npm install
Configure Environment Variables
Copy .env.example to .env.local and fill in all required values. At minimum you need:
# Database DATABASE_URL="postgresql://..." # Clerk Authentication NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY="pk_..." CLERK_SECRET_KEY="sk_..." # Optional for full functionality: STRIPE_SECRET_KEY="sk_..." TWILIO_ACCOUNT_SID="AC..." TWILIO_AUTH_TOKEN="..." RESEND_API_KEY="re_..." OPENROUTER_API_KEY="sk-or-..." RAILWAY_VOICE_AGENT_URL="https://..." SENTRY_DSN="https://..."
Set Up Database
Push the Drizzle schema to your Neon PostgreSQL database.
npx drizzle-kit push # Push schema to database npx drizzle-kit studio # (Optional) Visual database browser
Start the Dashboard
Run the Next.js development server.
npm run dev # http://localhost:3000
Visit http://localhost:3000 to see the landing page. Sign up via Clerk to access the dashboard.
(Optional) Start Voice Agent
Set up the Python voice agent for AI phone calls.
cd voice-agent python -m venv venv && source venv/bin/activate pip install -r requirements.txt cp .env.example .env # Fill in all values python server.py -t daily --host 0.0.0.0 --port 7860
(Optional) Start Telegram Worker
Set up the Python Telegram worker for automated messaging.
cd telegram-worker python -m venv venv && source venv/bin/activate pip install -r requirements.txt cp .env.example .env # Fill in all values uvicorn main:app --host 0.0.0.0 --port 7861
Database Migrations
Use Drizzle Kit to manage database schema changes.
cd telephonia-react npx drizzle-kit generate # Generate migration from schema changes npx drizzle-kit push # Push schema directly (dev mode) npx drizzle-kit studio # Visual database browser
Plan Limits
Usage is tracked per-organization per calendar month. Campaign execution automatically pauses when limits are reached.
| Feature | Free | Starter | Growth | Enterprise |
|---|---|---|---|---|
| Voice minutes/mo | 0 | 500 | 2,000 | Unlimited |
| Telegram messages/mo | 0 | 100 | 500 | Unlimited |
| Emails/mo | 0 | 500 | 2,000 | Unlimited |
| Price (USD) | Free | $40/mo | $99/mo | $299/mo |
| Price (UAH) | Free | 1,650 | 4,100 | 12,300 |