Skip to main content

Cockpit Configuration

This page documents the environment variables and settings for deploying the Starlake Cockpit and its REST API backend. All settings are configured through environment variables.

Deployment Modes

The SL_API_MODE variable controls which authentication methods are available:

ModeDescription
LOCALOn-premises deployment. Only email/password authentication is enabled. This is the default.
CLOUDCloud deployment. OAuth providers are enabled.
ALLBoth on-premises and cloud authentication methods are available.
SAASMulti-tenant SaaS mode with user isolation, disk quotas, and all authentication methods.

HTTP Server

VariableDescriptionDefault
SL_API_HTTP_PORTPort the API server listens on9900
SL_API_HTTP_INTERFACENetwork interface to bind to0.0.0.0
SL_API_HTTP_FRONT_URLPublic URL of the Cockpit frontendhttp://localhost:9900
SL_API_FILE_UPLOAD_MAX_CONTENT_LENGTHMaximum file upload size1000 MiB

Session and Cookies

VariableDescriptionDefault
SL_API_SERVER_SECRETSecret key used to encrypt session cookies. Change this in production.Built-in default
SL_API_DOMAINCookie domain for session cookiesstarlake.ai
SL_API_SECURESet to true to require HTTPS for cookiestrue
SL_API_SESSION_AS_HEADERSend session data as a header in addition to the cookietrue
SL_API_MAX_AGE_MINUTESSession expiration time in minutes120

Database

The Cockpit stores user accounts, project metadata, and configuration in a PostgreSQL database.

VariableDescriptionDefault
SL_API_JDBC_URLJDBC connection URLRequired
SL_API_JDBC_USERDatabase usernameRequired
SL_API_JDBC_PASSWORDDatabase passwordRequired
SL_API_JDBC_DRIVERJDBC driver classorg.postgresql.Driver
SL_API_JDBC_HOSTDatabase hoststarlake-db
SL_API_JDBC_PORTDatabase port5432

Database schema migrations are applied automatically on startup using Flyway.

Authentication Providers

Email and Password

Built-in authentication with no additional configuration required. Users register with an email address and password. Accounts are locked after 10 consecutive failed login attempts (configurable via SL_API_AUTH_MAX_FAILURES).

Google OAuth

VariableDescriptionDefault
SL_API_GOOGLE_CLIENT_IDGoogle OAuth 2.0 client IDEmpty — disabled
SL_API_GOOGLE_CLIENT_SECRETGoogle OAuth 2.0 client secretEmpty — disabled

Set both variables to enable Google sign-in. Create credentials in the Google Cloud Console with the callback URL <front-url>/api/v1/auth/google/callback.

GitHub OAuth

VariableDescriptionDefault
SL_API_GITHUB_CLIENT_IDGitHub OAuth app client IDEmpty — disabled
SL_API_GITHUB_CLIENT_SECRETGitHub OAuth app client secretEmpty — disabled

Set both variables to enable GitHub sign-in. Create an OAuth app in GitHub Settings with the callback URL <front-url>/api/v1/auth/github/callback.

Azure OAuth

VariableDescriptionDefault
SL_API_AZURE_CLIENT_IDAzure AD application (client) IDEmpty — disabled
SL_API_AZURE_CLIENT_SECRETAzure AD client secretEmpty — disabled

Set both variables to enable Azure sign-in. Register an application in the Azure Portal with the callback URL <front-url>/api/v1/auth/azure/callback.

OIDC (Generic)

VariableDescriptionDefault
SL_API_OIDC_CLIENT_IDOIDC client IDEmpty — disabled
SL_API_OIDC_CLIENT_SECRETOIDC client secretEmpty — disabled
SL_API_OIDC_DISCOVERY_URLOpenID Connect discovery URL (e.g., https://idp.example.com/.well-known/openid-configuration)Empty — disabled

Set all three variables to enable generic OIDC sign-in. This works with any OIDC-compliant identity provider (Okta, Auth0, Keycloak, etc.).

Snowflake OAuth

Snowflake OAuth is configured through the platform settings table in the database rather than environment variables. It supports automatic token refresh when tokens expire.

Email (SMTP)

Configure SMTP to enable email notifications, magic link sign-up, and password reset.

VariableDescriptionDefault
SL_API_MAIL_FROMSender email address[email protected]
SL_API_MAIL_HOSTSMTP server hostnamesmtp.gmail.com
SL_API_MAIL_PORTSMTP server port587
SL_API_MAIL_USERSMTP authentication usernameRequired
SL_API_MAIL_PASSWORDSMTP authentication passwordRequired
SL_API_MAIL_TLSEnable TLS for SMTP connectionstrue

AI Integration

The AI assistant requires a running LLM service endpoint.

VariableDescriptionDefault
SL_API_AI_URLURL of the AI/LLM servicehttp://localhost:8000
SL_API_AI_MODELDefault model namellama3:latest
SL_AI_APPLICATION_KEYApplication key for the AI serviceunknown
SL_API_AI_MODEL_NAMESComma-separated list of enabled AI providersopenai,gemini,claude,anthropic

Orchestrator

VariableDescriptionDefault
SL_API_ORCHESTRATOR_URLOrchestrator web UI URL (Airflow, Dagster)http://localhost/airflow/
SL_API_ORCHESTRATOR_PRIVATE_URLInternal orchestrator API URL (if different from public URL)Empty
SL_API_AIRFLOW_USERAirflow basic auth usernameairflow
SL_API_AIRFLOW_PASSWORDAirflow basic auth passwordairflow

Storage and Limits

VariableDescriptionDefault
SL_API_PROJECTS_ROOTRoot directory for all project files on the serverEmpty
SL_API_MAX_USER_SPACE_MBMaximum disk space per user in MB (SAAS mode)1
SL_API_DAG_FOLDERDirectory name for generated DAG files relative to project rootdags