Introduction
This guide walks you through setting up a local development environment for the Exulu Intelligence Management Platform (IMP). By the end of this guide, you’ll have a fully functional local instance running with both backend and frontend services.Prerequisites
Before you begin, ensure you have the following installed on your machine:- Node.js (we recommend using nvm for version management)
- Docker and Docker Compose
- A code editor (we use Cursor, but any IDE works)
- An NPM token for accessing the private Exulu packages (contact your admin or partner manager)
Step 1: Clone the Repository
Start by cloning the example repository from GitHub:Step 2: Set Up Node Version
The project includes an.nvmrc file that specifies the required Node.js version. If you’re using nvm, simply run:
Step 3: Configure NPM Token
To install private dependencies from the Exulu NPM package repository, you need to create a.npmrc file with your authentication token.
-
Rename the
.npmrc.examplefile to.npmrc: -
Add your NPM token to the
.npmrcfile. The file should look like this:
Step 4: Install Dependencies
With the.npmrc file configured, install all project dependencies:
Step 5: Set Up Environment Variables
The repository includes a.env.example file with default settings for local development.
-
Rename the file to
.env: -
The default settings are pre-configured for localhost and should work out of the box. The file includes:
- Postgres connection settings
- Redis connection settings
- S3 bucket configuration (optional, can be added later)
For most local development setups, you won’t need to modify the default
.env values.Step 6: Run Docker Services
The example repository includes adocker-compose.services.yaml file that provides all required services:
- PostgreSQL with pgvector - Database with vector extension support
- Redis - Caching and session management
- MinIO - S3-compatible object storage (optional)
Step 7: Initialize the Database
Before you can use the backend, you need to initialize the database schema:- Create the database if it doesn’t exist
- Set up all required tables and schemas
- Create a default admin user with credentials:
- Email:
admin@exulu.com - Password:
admin
- Email:
Step 8: Start the Backend Server
Start the backend development server:The development server will automatically restart when you make changes to your code.
Step 9: Start the Frontend
Open a new terminal session (keep the backend server running) and start the frontend. You have three options:Option 1: Using NPX (Recommended for Quick Start)
The easiest way to get started is using the pre-built NPM package:- Install the frontend package locally
- Load your local environment variables
- Make the frontend available on port 3000
Option 2: Using Docker
Alternatively, use the pre-built Docker image:Option 3: Running from Source
For frontend development, clone the open-source frontend repository:Step 10: Login and Verify
Once both the backend and frontend are running:- Open your browser and navigate to http://localhost:3000
- You should see the Exulu IMP login screen
-
Log in using the default admin credentials:
- Email:
admin@exulu.com - Password:
admin
- Email:
-
After logging in, you’ll see the dashboard with all available features:
- Agents
- Chat sessions
- Knowledge bases (Contexts)
- Workflows
- Evaluations
- And more…
Congratulations! Your local Exulu IMP instance is now running successfully.
Next Steps
Now that your development environment is set up, you can:- Create your first agent and customize it for your use case
- Set up knowledge bases to provide context to your agents
- Configure tools to extend agent capabilities
- Explore workflows to automate complex tasks
Troubleshooting
Connection Refused Errors
If you encounter connection refused errors when initializing the database:- Ensure Docker containers are running:
docker ps - Check container logs:
docker logs <container-name> - Restart the PostgreSQL container if needed
Port Conflicts
If ports 3000, 4000, 5432, or 6379 are already in use:- Stop conflicting services
- Or modify the ports in your
.envanddocker-compose.services.yamlfiles
NPM Token Issues
If you get authentication errors duringnpm install:
- Verify your token is correctly formatted in
.npmrc - Ensure the token hasn’t expired
- Contact your admin for a new token if needed
Database Initialization Failures
Ifnpm run utils:init fails:
- Check that PostgreSQL is running and accepting connections
- Verify your database credentials in
.env - Try running the command again (it’s safe to run multiple times)
Development Workflow
When developing with Exulu IMP:- Backend changes: The dev server auto-restarts when you modify code
- Frontend changes: If running from source, Next.js will hot-reload
- Database schema changes: Run migration scripts or re-run
utils:init - Environment changes: Restart both servers after modifying
.env
Keep both terminal sessions open to see logs from both backend and frontend services.