Skip to content
Merged
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
133 changes: 22 additions & 111 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,123 +1,34 @@
### =================================
### REQUIRED SERVER ENVIRONMENT VARIABLES
### REQUIRED ENVIRONMENT VARIABLES
### =================================

### Dashboard API admin token used for user bootstrap and creator email hydration
DASHBOARD_API_ADMIN_TOKEN=your_dashboard_api_admin_token

### JWE key for the encrypted e2b_session cookie (carries the Hydra OIDC tokens).
### Generate with `openssl rand -hex 32`.
E2B_SESSION_SECRET=your_e2b_session_secret

### Ory Network configuration
ORY_SDK_URL=https://your-project.projects.oryapis.com
### OIDC issuer for the OAuth client. Falls back to ORY_SDK_URL on Ory Network;
### set explicitly for self-hosted Hydra (e.g. http://localhost:4444).
# ORY_HYDRA_PUBLIC_URL=http://localhost:4444
ORY_OAUTH2_CLIENT_ID=your_ory_oauth2_client_id
ORY_OAUTH2_CLIENT_SECRET=your_ory_oauth2_client_secret
### OAuth2 public client for CLI token issuance (no secret needed)
ORY_OAUTH2_CLI_CLIENT_ID=your_cli_public_client_id
### Access-token audience requested from Ory. Must match the backend JWT audience configuration.
ORY_OAUTH2_AUDIENCE=https://api.e2b.dev
### Ory project admin API token used for IdentityApi lookups
ORY_PROJECT_API_TOKEN=your_ory_project_api_token

### Browser-facing Kratos public URL for the Elements UI (self-hosted :4433; falls back to ORY_SDK_URL).
# NEXT_PUBLIC_ORY_SDK_URL=http://localhost:4433

### Domain for the E2B cluster
# Resolves Infrastructure and Dashboard API + E2B SDK configuration
### Domain for the E2B cluster.
### Resolves infra-api (`https://api.<domain>`) and dashboard-api
### (`https://dashboard-api.<domain>`) unless overridden below.
NEXT_PUBLIC_E2B_DOMAIN=e2b.dev
# Optional sandbox traffic base URL for local development proxies.
# NEXT_PUBLIC_E2B_SANDBOX_URL=http://sandbox.lvh.me:3002

### =================================
### REQUIRED CLIENT ENVIRONMENT VARIABLES
### =================================

### OPTIONAL ENVIRONMENT VARIABLES
### =================================
### OPTIONAL SERVER ENVIRONMENT VARIABLES
### =================================

### Self-hosted Ory admin endpoints (alternative to ORY_PROJECT_API_TOKEN).
### Set both when running self-hosted; leave unset to use Ory Network with the PAT above.
# ORY_KRATOS_ADMIN_URL=http://localhost:4434
# ORY_HYDRA_ADMIN_URL=http://localhost:4445

### Fixed host whose OAuth callback/logout relays are registered in Hydra. Set on
### preview deployments only (dynamic preview hosts can't register their own
### redirect URIs); leave unset on staging/production/local, where sign-in stays
### host-direct. The relay paths (/api/auth/oauth/relay, /api/auth/oauth/logout-relay)
### must be added to the OAuth2 client's redirect_uris / post_logout_redirect_uris.
# ORY_OAUTH_RELAY_ORIGIN=https://e2b-staging.dev

### Billing API URL (Required if NEXT_PUBLIC_INCLUDE_BILLING=1)
# BILLING_API_URL=https://billing.e2b.dev

### GA4 Measurement Protocol credentials for server-emitted events (sign_up).
### Create the secret in GA4 Admin -> Data streams -> <stream> -> Measurement
### Protocol API secrets. Set in production only.
# GA4_MEASUREMENT_ID=
# GA4_API_SECRET=

### Vercel URL (automatically set in Vercel deployments)
# VERCEL_URL=

### Development infrastructure API domain
# DEVELOPMENT_INFRA_API_DOMAIN=
### Pre-authenticate the dashboard with a fixed team API key. When set, the
### key form on "/" is skipped entirely (single-user self-hosted deployments)
### and sign-out is hidden.
# E2B_API_KEY=e2b_your_team_api_key

### Plain API key for customer support integration
# (Required if NEXT_PUBLIC_INCLUDE_REPORT_ISSUE=1)
# PLAIN_API_KEY=
### Explicit API base URLs (override the NEXT_PUBLIC_E2B_DOMAIN resolution;
### useful for local infra development).
# NEXT_PUBLIC_INFRA_API_URL=http://localhost:3000
# NEXT_PUBLIC_DASHBOARD_API_URL=http://localhost:3001

### LaunchDarkly feature flags
### Use the SDK key for the desired LaunchDarkly environment.
# LAUNCHDARKLY_SDK_KEY=
### Optional sandbox traffic base URL for local development proxies.
# NEXT_PUBLIC_E2B_SANDBOX_URL=http://sandbox.lvh.me:3002

### OTEL Configuration
# OTEL_SERVICE_NAME=
# OTEL_EXPORTER_OTLP_ENDPOINT=
# OTEL_EXPORTER_OTLP_PROTOCOL=
### OpenTelemetry (disabled unless the endpoint is set).
# OTEL_SERVICE_NAME=e2b-dashboard
# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
# OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
# OTEL_EXPORTER_OTLP_HEADERS=
# OTEL_TRACES_EXPORTER=
# OTEL_METRICS_EXPORTER=
# OTEL_LOGS_EXPORTER=
# OTEL_NODE_RESOURCE_DETECTORS=
# OTEL_RESOURCE_ATTRIBUTES=

### =================================
### OPTIONAL CLIENT ENVIRONMENT VARIABLES
### =================================

### Google Tag Manager container ID (set in production only)
# NEXT_PUBLIC_GTM_ID=

### PostHog analytics project key
# NEXT_PUBLIC_POSTHOG_KEY=

### PostHog source map upload (build-time only, used by @posthog/nextjs-config).
### Configure these as build env vars in the Vercel project settings (production,
### and optionally preview) — they are not needed for local development.
### POSTHOG_API_KEY is a personal API key with "error tracking: write" and
### "organization: read" scopes. POSTHOG_PROJECT_ID is found in project settings.
# POSTHOG_API_KEY=
# POSTHOG_PROJECT_ID=

### Enable billing features: set to 1 to enable
### When enabled, both BILLING_API_URL and NEXT_PUBLIC_STRIPE_BILLING_URL must be provided
# NEXT_PUBLIC_INCLUDE_BILLING=0

### Enable report issue feature: set to 1 to enable
### When enabled, PLAIN_API_KEY must be provided
# NEXT_PUBLIC_INCLUDE_REPORT_ISSUE=0

### Enable dashboard status indicator feature: set to 1 to enable
### When enabled, the E2B status is read from the incident.io summary API
# NEXT_PUBLIC_INCLUDE_STATUS_INDICATOR=0

### Set to 1 to use mock data
# NEXT_PUBLIC_MOCK_DATA=0

### Set to 1 to enable verbose logging
# NEXT_PUBLIC_VERBOSE=0
# OTEL_TRACES_EXPORTER=otlp
# OTEL_METRICS_EXPORTER=otlp
# OTEL_LOGS_EXPORTER=otlp
88 changes: 0 additions & 88 deletions .github/workflows/preview.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/sync-infra-specs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ jobs:
- name: Autofix generated type files
if: steps.check-spec-changes.outputs.has_changes == 'true'
run: |
GENERATED_TYPE_FILES=$(git diff --name-only -- src/types/infra-api.types.ts src/types/dashboard-api.types.ts | tr '\n' ' ')
GENERATED_TYPE_FILES=$(git diff --name-only -- src/core/shared/contracts/infra-api.types.ts src/core/shared/contracts/dashboard-api.types.ts | tr '\n' ' ')

if [[ -z "${GENERATED_TYPE_FILES}" ]]; then
echo "No generated type changes detected; skipping autofix."
Expand Down
13 changes: 0 additions & 13 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,20 +45,7 @@ jobs:
runs-on: ubuntu-latest
needs: unit-tests
env:
E2B_SESSION_SECRET: test-session-secret
ORY_SDK_URL: https://test-ory.projects.oryapis.com
ORY_OAUTH2_CLIENT_ID: test-ory-client-id
ORY_OAUTH2_CLIENT_SECRET: test-ory-client-secret
ORY_OAUTH2_CLI_CLIENT_ID: test-ory-cli-client-id
ORY_OAUTH2_AUDIENCE: https://api.e2b-test.dev
ORY_PROJECT_API_TOKEN: test-ory-project-api-token
DASHBOARD_API_ADMIN_TOKEN: test-dashboard-admin-token
BILLING_API_URL: https://billing.e2b-test.dev
NEXT_PUBLIC_E2B_DOMAIN: e2b-test.dev
NEXT_PUBLIC_POSTHOG_KEY: test-posthog-key
NEXT_PUBLIC_STRIPE_BILLING_URL: https://test-stripe-billing.example.com
NEXT_PUBLIC_SCAN: 0
NEXT_PUBLIC_MOCK_DATA: 1

steps:
- name: Checkout code
Expand Down
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@

# testing
/coverage
/playwright-report
/test-results
/.playwright

# next.js
/.next/
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# E2B Dashboard

A web application for managing and monitoring E2B services — sandboxes, API keys, and usage analytics. Built with Next.js, React, and TypeScript.
Open-source dashboard for self-hosted E2B infrastructure — sandboxes and templates, authenticated with a single team API key (httpOnly `e2b_api_key` cookie or `E2B_API_KEY` env). Built with Next.js, React, and TypeScript.

## Comments

Expand Down
Loading
Loading