Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 14 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
<!-- <p align="center">
<img width="100" src="/readme-assets/logo-circle.png" alt="e2b logo">
</p> -->
![Dashboard Preview Dark](/readme-assets/dashboard-preview-dark.png#gh-dark-mode-only)
![Dashboard Preview Light](/readme-assets/dashboard-preview-light.png#gh-light-mode-only)

# E2B Dashboard
# Dashboard

[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)
[![Discord](https://img.shields.io/discord/1092455714431180995?color=7289DA&label=Discord&logo=discord&logoColor=white)](https://discord.com/channels/1092455714431180995)
Expand All @@ -17,26 +14,23 @@
- 🤝 [Contributing Guide](CONTRIBUTING.md)

## 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.
Our Dashboard is a modern, feature-rich web application built to manage and monitor E2B services. Built with Next.js 16 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
- **Modern Stack**: Built with Next.js 16, 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

> **Self-hosting Note**: If you're planning to self-host this dashboard, you'll likely want to self-host our infrastructure first. Please refer to our [infrastructure repository](https://github.com/e2b-dev/infra) for guidance on setting up the E2B platform on your own infrastructure.

### Prerequisites
- Node.js 18+
- Node.js 20.9+
- Git
- Vercel account
- Supabase account
- PostHog account (optional for analytics)
- Plain account (optional for customer support)

### Local Development Setup

Expand Down Expand Up @@ -103,18 +97,11 @@ This project requires a Redis-compatible key-value store. You'll need to:
{{ .SiteURL }}/api/auth/confirm?token_hash={{ .TokenHash }}&type=email&next={{ .RedirectTo }}&confirmation_url={{ .ConfirmationURL }}
```

#### c. Database Setup
1. Apply the database migrations manually:
- Navigate to the `/migrations` folder in the project
- Execute each SQL migration file in sequential order against your Supabase database
- You can run these migrations using the Supabase SQL Editor or a PostgreSQL client
- Make sure to apply migrations in the correct order based on their timestamp prefixes

#### d. Supabase Storage Setup
#### c. Supabase Storage Setup
1. Go to Storage > Buckets
2. Create a new **public** bucket named `profile-pictures`

#### e. Start the development server
#### d. Start the development server
```bash
# Using Bun (recommended)
bun run dev
Expand All @@ -138,8 +125,6 @@ bun run lint # Run Biome linter
bun run lint:fix # Auto-fix Biome lint issues
bun run format # Format + organize imports with Biome
bun run check # Run full Biome check (lint + format + imports)
SUPABASE_PROJECT_ID=your-project-id bun run db:types # Generate DB types
bun run db:migration # Create migration

# All commands work with npm as well:
npm run dev
Expand All @@ -149,13 +134,15 @@ npm run dev
### Project Structure
```
src/
├── app/ # Next.js app router pages
├── features/ # Feature-specific components
├── ui/ # Reusable UI components
├── lib/ # Utility functions and shared logic
├── app/ # Next.js App Router pages and layouts
├── configs/ # Global constants, feature flags, and URL maps
├── core/ # Server-side logic: actions, adapters, modules, and shared clients
├── features/ # Domain-specific components (auth, dashboard, billing, etc.)
├── lib/ # Utility functions, hooks, and shared helpers
├── styles/ # Global styles and Tailwind config
└── types/ # TypeScript type definitions
└── server/ # Server only logic & actions
├── trpc/ # tRPC client and server setup
├── types/ # TypeScript type definitions
└── ui/ # Reusable UI primitives and Shadcn components
tests/
├── unit/ # Vitest unit tests
├── integration/ # Vitest integration tests
Expand Down
11 changes: 3 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@
"prebuild": "bun scripts:check-app-env",
"<<<<<<< Development Tools": "",
"scan:local": "bunx react-scan@latest localhost:3000",
"<<<<<<< Database": "",
"db:migrations:create": "bun run scripts:create-migration",
"db:migrations:apply": "bun run scripts:apply-migrations",
"<<<<<<< Gen": "",
"generate:infra": "bunx openapi-typescript ./spec/openapi.infra.yaml -o ./src/core/shared/contracts/infra-api.types.ts",
"generate:dashboard-api": "bunx openapi-typescript ./spec/openapi.dashboard-api.yaml -o ./src/core/shared/contracts/dashboard-api.types.ts",
Expand All @@ -27,16 +24,14 @@
"<<<<<<< Scripts": "",
"scripts:check-app-env": "bun scripts/check-app-env.ts",
"scripts:check-playwright-env": "bun scripts/check-playwright-env.ts",
"scripts:check-all-env": "bun scripts:check-app-env",
"scripts:create-migration": "bun scripts/create-migration.ts",
"<<<<<<< Development": "",
"shad": "bunx shadcn@canary",
"test:dev:traffic": "vitest run tests/development/traffic.test.ts",
"test:dev:build": "vitest run tests/development/template-build.test.ts",
"test:dev:events": "vitest run tests/development/sandbox-events.test.ts",
"clean": "rm -rf .next node_modules && bun install",
"<<<<<<< Testing": "",
"test:run": "bun scripts:check-all-env && vitest run",
"test:run": "bun scripts:check-app-env && vitest run",
"test:integration": "bun scripts:check-app-env && vitest run tests/integration/",
"test:unit": "vitest run tests/unit/",
"e2e:install-browsers": "playwright install chromium --with-deps",
Expand All @@ -46,8 +41,8 @@
"e2e:headed": "PLAYWRIGHT_MODE=dev bun scripts:check-playwright-env && PLAYWRIGHT_MODE=dev playwright test --headed",
"knip": "knip",
"knip:ci": "knip --include files,dependencies --reporter github-actions",
"test:watch": "bun scripts:check-all-env && vitest",
"test:ui": "bun scripts:check-all-env && vitest --ui",
"test:watch": "bun scripts:check-app-env && vitest",
"test:ui": "bun scripts:check-app-env && vitest --ui",
"test:ui:integration": "bun scripts:check-app-env && vitest --ui tests/integration/"
},
"dependencies": {
Expand Down
Binary file removed public/graphics/docs/analyze-data-chart.png
Binary file not shown.
Binary file removed public/graphics/docs/static-chart.png
Binary file not shown.
Binary file removed readme-assets/logo-circle.png
Binary file not shown.
Binary file removed readme-assets/preview.png
Binary file not shown.
32 changes: 0 additions & 32 deletions scripts/create-migration.ts

This file was deleted.

Loading