Implementation:Helicone Helicone Env File Setup
| Knowledge Sources | |
|---|---|
| Domains | Local Development, Configuration |
| Last Updated | 2026-02-14 00:00 GMT |
Overview
Concrete tool for populating environment variable files across the Helicone monorepo by copying .env.example templates, provided by the standard cp shell command.
Description
Helicone uses the cp .env.example .env pattern in multiple directories. The root .env.example contains 14 variables for the web and jawn services, while docker/.env.example contains approximately 151 lines covering infrastructure secrets, database credentials, worker ports, Supabase configuration, and email settings. Both files include sensible local development defaults that work with the Docker Compose stack out of the box.
Usage
Run the copy commands once after cloning the repository. Re-run if you delete your .env files or when new variables are added to the example files upstream.
Code Reference
Source Location
- Repository: Helicone
- File:
.env.example(lines 1-14),docker/.env.example(lines 1-151)
Signature
cp .env.example .env
Import
# No installation required - uses standard shell commands
# The .env.example files are checked into the repository
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| .env.example | file | Yes | Template file with placeholder environment variable values |
| target path | string | No | Destination path (defaults to .env in the same directory)
|
Outputs
| Name | Type | Description |
|---|---|---|
| .env | file | Local environment file loaded by dotenv at service startup |
Usage Examples
Basic Usage
# From repository root: set up web/jawn environment
cp .env.example .env
# Set up Docker infrastructure environment
cp docker/.env.example docker/.env
Root .env.example Contents
The root .env.example provides these key variables:
VERCEL="1"
VERCEL_ENV="development"
DATABASE_URL="postgresql://postgres:postgres@localhost:54322/postgres"
NEXT_PUBLIC_SUPABASE_ANON_KEY="eyJhbGciOiJIUzI1NiIs..."
NEXT_PUBLIC_SUPABASE_URL="http://localhost:54321"
SUPABASE_SERVICE_KEY="eyJhbGciOiJIUzI1NiIs..."
SUPABASE_URL="http://localhost:54321"
NEXT_PUBLIC_HELICONE_JAWN_SERVICE="http://localhost:8585"
Docker .env.example Key Sections
The docker/.env.example is organized into sections:
# Secrets
BETTER_AUTH_SECRET="MKUcaeqyMD7UBkGeFYY5hwxKS1aB6Vsi"
POSTGRES_PASSWORD=your-super-secret-and-long-postgres-password
JWT_SECRET=your-super-secret-jwt-token-with-at-least-32-characters-long
S3_ACCESS_KEY="minioadmin"
S3_SECRET_KEY="minioadmin"
# ClickHouse Database
CLICKHOUSE_HOST=clickhouse-db
CLICKHOUSE_PORT=8123
CLICKHOUSE_USER=default
CLICKHOUSE_PASSWORD=
# Workers
OPENAI_PROXY_PORT=8787
HELICONE_API_PORT=8788
# Jawn
JAWN_PORT=8585
JAWN_PUBLIC_URL=http://localhost:8585
# Supabase
POSTGRES_HOST=db
POSTGRES_DB=postgres
POSTGRES_PORT=5432
Customizing for Non-Default Ports
# If you need Jawn on a different port, edit docker/.env after copying:
cp docker/.env.example docker/.env
# Then modify:
# JAWN_PORT=9090
# JAWN_PUBLIC_URL=http://localhost:9090