Status: Beta - Ready for early adopters. APIs might change.
- π Documentation
- π¬ Discord Community
- π Issue Tracker
- π€ Contributing Guide
Our Dashboard is a modern, feature-rich web application built to manage and monitor E2B services. Built with Next.js 15 and React 19, it provides a seamless user experience for managing sandboxes, API keys, and usage analytics.
- Modern Stack: Built with Next.js 15, React 19, and TypeScript
- Real-time Analytics: Monitor your sandbox usage and performance
- Authentication: Secure authentication powered by Supabase
- Documentation: Integrated MDX documentation support
- Type Safety: Full TypeScript support throughout the codebase
- Node.js 18+
- Git
- Vercel account
- Supabase account
- PostHog account (optional for analytics)
- Clone the repository
git clone https://github.com/e2b-dev/dashboard.git
cd dashboard
- Install dependencies
# Using Bun (recommended)
bun install
# Using npm
npm install
- Set up required services:
# Install Vercel CLI
npm i -g vercel
# Link project to Vercel
vercel link
# Set up Vercel KV
vercel storage add
# Select "KV" and follow the prompts
- Create a new Supabase project
- Go to Project Settings > API
- Copy the
anon key
andservice_role key
- Copy the project URL
- Retrieve the
POSTGRES_CONNECTION_STRING
from the Supabase project settings - Run the migrations by running the following command:
bun run db:migrations:apply
- Go to Storage > Buckets
- Create a new public bucket named
profile-pictures
# Copy the example env file
cp .env.example .env.local
The dashboard uses encrypted cookies for secure data storage. You'll need to set up a COOKIE_ENCRYPTION_KEY
:
# Generate a secure encryption key
node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
# Add the generated key to your .env.local file
COOKIE_ENCRYPTION_KEY=your_generated_base64_key
This key must be:
- 32 bytes (256 bits) encoded in base64
- Unique per environment (development/staging/production)
- Kept secret and never committed to version control
- Start the development server
# Using Bun (recommended)
bun run dev
# Using npm
npm run dev
The application will be available at http://localhost:3000
# Using Bun (recommended)
bun run dev # Start development server
bun run build # Create production build
bun run start # Start production server
bun run preview # Build and preview production
bun run lint # Run ESLint
bun run lint:fix # Auto-fix ESLint issues
bun run storybook # Launch Storybook
bun run db:types # Generate DB types
bun run db:migration # Create migration
# All commands work with npm as well:
npm run dev
# etc...
src/
βββ app/ # Next.js app router pages
βββ features/ # Feature-specific components
βββ ui/ # Reusable UI components
βββ lib/ # Utility functions and shared logic
βββ styles/ # Global styles and Tailwind config
βββ types/ # TypeScript type definitions
βββ server/ # Server only logic & actions
βββ __test__/ # Test files and utilities
We use a comprehensive testing strategy with integration tests and plans for E2E tests. For detailed information about our testing approach, environment setup, and best practices, see the Testing README.
See src/lib/env.ts
for all required environment variables and their validation schemas.
This application is optimized for deployment on Vercel:
- Push your changes to GitHub
- Import your repository in Vercel
- Deploy!
Note: The application uses Partial Prerendering (PPR) which is currently only supported on Vercel's infrastructure. This can be turned off inside
next.config.mjs
.
We welcome contributions! Please see our Contributing Guide for details.
If you need help or have questions:
- Check our Documentation
- Join our Discord Community
- Open an Issue
This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details.
Copyright 2025 FoundryLabs, Inc.