Skip to content

Modern dashboard for managing E2B sandboxes and API keys. Built with Next.js 15, React 19, and Supabase.

License

Notifications You must be signed in to change notification settings

e2b-dev/dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dashboard Preview Dark Dashboard Preview Light

E2B Dashboard

License Discord GitHub Stars

Status: Beta - Ready for early adopters. APIs might change.

Quick Links

Overview

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.

Features

  • 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

Getting Started

Prerequisites

  • Node.js 18+
  • Git
  • Vercel account
  • Supabase account
  • PostHog account (optional for analytics)

Local Development Setup

  1. Clone the repository
git clone https://github.com/e2b-dev/dashboard.git
cd dashboard
  1. Install dependencies
# Using Bun (recommended)
bun install

# Using npm
npm install
  1. Set up required services:

a. Vercel & KV Storage

# 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

b. Supabase Setup

  1. Create a new Supabase project
  2. Go to Project Settings > API
  3. Copy the anon key and service_role key
  4. Copy the project URL

c. Database Setup

  1. Retrieve the POSTGRES_CONNECTION_STRING from the Supabase project settings
  2. Run the migrations by running the following command:
bun run db:migrations:apply

d. Supabase Storage Setup

  1. Go to Storage > Buckets
  2. Create a new public bucket named profile-pictures

e. Environment Variables

# Copy the example env file
cp .env.example .env.local

f. Cookie Encryption

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
  1. Start the development server
# Using Bun (recommended)
bun run dev

# Using npm
npm run dev

The application will be available at http://localhost:3000

Development

Available Scripts

# 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...

Project Structure

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

Testing

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.

Environment Variables

See src/lib/env.ts for all required environment variables and their validation schemas.

Production Deployment

This application is optimized for deployment on Vercel:

  1. Push your changes to GitHub
  2. Import your repository in Vercel
  3. 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.

Contributing

We welcome contributions! Please see our Contributing Guide for details.

Support

If you need help or have questions:

  1. Check our Documentation
  2. Join our Discord Community
  3. Open an Issue

License

This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details.

Copyright 2025 FoundryLabs, Inc.