Skip to content

Environment Variables

This reference covers all environment variables used in Recogito Studio configuration.

Terminal window
POSTGRES_PASSWORD="your_secure_password"

Required. Secure password for PostgreSQL database. Recommend 12+ characters with mixed case, numbers.

Terminal window
JWT_SECRET="base64_encoded_secret"
ANON_KEY="generated_jwt_token"
SERVICE_ROLE_KEY="generated_jwt_token"

Required. Generate JWT_SECRET with openssl rand -base64 36. Use Supabase JWT Generator for keys.

Terminal window
DASHBOARD_PASSWORD="supabase_dashboard_password"
ORG_ADMIN_PW="initial_superuser_password"

Required. Dashboard password for Supabase studio. Org admin password for initial admin@example.com account.

Terminal window
SITE_URL="https://server.yourdomain.com"

Required. Base URL for your Recogito Studio server. Must match your SSL certificate.

Terminal window
ROOM_SECRET="base64_encoded_secret"

Required. Secures real-time communication channels. Generate with openssl rand -base64 24.

Terminal window
MINIO_ROOT_USER="minio_admin_username"
MINIO_ROOT_PASSWORD="minio_admin_password"

Required. Credentials for MinIO dashboard and API access.

Terminal window
PGADMIN_ADMIN_EMAIL="admin@yourdomain.com"
PGADMIN_ADMIN_PASSWORD="pgadmin_password"

Required. Login credentials for pgAdmin web interface.

Terminal window
TRIGGER_SECRET_KEY="trigger_secret_key"
TRIGGER_PUBLIC_KEY="trigger_public_key"

Optional. Required only if using plugin-ner or other Trigger.dev-based plugins.

Terminal window
CORENLP_SERVER_URL="http://corenlp:9000"

Optional. URL for Stanford CoreNLP service. Required for NER plugin.

Terminal window
DATABASE_URL="postgresql://postgres:${POSTGRES_PASSWORD}@db:5432/postgres"

Auto-configured. PostgreSQL connection string. Usually doesn’t need modification.

Terminal window
SUPABASE_URL="http://kong:8000"
SUPABASE_ANON_KEY="${ANON_KEY}"
SUPABASE_SERVICE_KEY="${SERVICE_ROLE_KEY}"

Auto-configured. Internal Supabase service URLs. Usually doesn’t need modification.

Generate strong passwords for all accounts:

Terminal window
# For passwords (12+ characters, alphanumeric)
openssl rand -base64 18 | tr -d "=+/" | cut -c1-16
# For secrets (base64 encoded)
openssl rand -base64 36
# For shorter secrets
openssl rand -base64 24
  • Store .env file securely with restricted permissions
  • Never commit .env to version control
  • Use different secrets for each installation
  • Rotate secrets periodically
  1. Generate JWT secret: openssl rand -base64 36
  2. Visit Supabase JWT Generator
  3. Enter your JWT secret
  4. Generate ANON_KEY with “anon” payload
  5. Generate SERVICE_ROLE_KEY with “service_role” payload

Copy this template to your .env file:

Terminal window
# Database
POSTGRES_PASSWORD=
# JWT Configuration
JWT_SECRET=
ANON_KEY=
SERVICE_ROLE_KEY=
# Admin Access
DASHBOARD_PASSWORD=
ORG_ADMIN_PW=
# Site Configuration
SITE_URL=https://server.yourdomain.com
# Communication
ROOM_SECRET=
# Storage Services
MINIO_ROOT_USER=
MINIO_ROOT_PASSWORD=
# Database Admin
PGADMIN_ADMIN_EMAIL=
PGADMIN_ADMIN_PASSWORD=
# Optional: Plugin Configuration
# TRIGGER_SECRET_KEY=
# TRIGGER_PUBLIC_KEY=
# CORENLP_SERVER_URL=http://corenlp:9000

Ensure these variables are set before installation:

  • POSTGRES_PASSWORD
  • JWT_SECRET
  • ANON_KEY
  • SERVICE_ROLE_KEY
  • DASHBOARD_PASSWORD
  • ORG_ADMIN_PW
  • SITE_URL
  • ROOM_SECRET
  • MINIO_ROOT_USER
  • MINIO_ROOT_PASSWORD
  • PGADMIN_ADMIN_EMAIL
  • PGADMIN_ADMIN_PASSWORD

After configuration, verify:

  1. All required variables have values
  2. Passwords meet security requirements
  3. URLs match your domain setup
  4. JWT tokens generated correctly
  • Authentication errors: Check JWT_SECRET and generated keys match
  • Database connection: Verify POSTGRES_PASSWORD is correct
  • CORS errors: Ensure SITE_URL matches your domain exactly
  • Plugin failures: Verify optional plugin variables if using plugins