Configuration

tvaras is configured through two channels: environment variables in .env (static, set at startup) and the admin panel (dynamic, no restart required).


Environment Variables

These are set in the .env file on the host and read at container startup. Changes require a container restart.

Required

VariableDescription
ANTHROPIC_API_KEYClaude API key
POSTGRES_PASSWORDPostgreSQL password (auto-generated by bootstrap)
OAUTH_GOOGLE_CLIENT_IDGoogle OAuth client ID for user login
OAUTH_GOOGLE_CLIENT_SECRETGoogle OAuth client secret
CHAINLIT_AUTH_SECRETSession encryption key (auto-generated)
PRIMARY_DOMAINCompany email domain for login (e.g. acme.com)
CHAINLIT_URLPublic URL of the bot (e.g. https://data-bot.acme.com)
ADMIN_SECRETAdmin panel access key (auto-generated)
ENTERPRISE_KEYLicense key from tvaras.ai

Optional

VariableDescriptionDefault
CLAUDE_MODELDefault Claude modelclaude-opus-4-6
REPO_ENCRYPTION_KEYFernet key for encrypting OAuth tokens and credentialsAuto-generated (not persistent)
GITHUB_CLIENT_IDGitHub OAuth app for repository connections
GITHUB_CLIENT_SECRETGitHub OAuth secret
GITLAB_CLIENT_IDGitLab OAuth app
GITLAB_CLIENT_SECRETGitLab OAuth secret
SLACK_BOT_TOKENSlack bot token (if not using OAuth)
SLACK_SIGNING_SECRETSlack signing secret
DATA_EXPORT_API_KEYAPI key for external data consumers

Admin Panel Settings

These settings are stored in PostgreSQL and take precedence over environment variables. Changes apply immediately without a restart.

AI Settings

  • Anthropic API Key — overrides the env var
  • Model per role — assign different Claude models to chat, tasks, dashboards, etc.

Security Settings

  • Allowed email domains — restrict login to specific domains
  • Require approval — new users need admin approval before accessing the bot
  • Allow all domains — disable domain restrictions

Feature Toggles

Enable or disable individual connectors (Google Ads, Slack, Jira, etc.) from the admin panel. Disabled connectors are hidden from the sidebar and their tools are not loaded.

dbt Configuration

  • GCS bucket URL — sync dbt manifest/catalog from Google Cloud Storage
  • Business context — custom documentation about your dbt layer naming conventions

Precedence Rules

When a setting exists in both .env and the admin panel, the admin panel always wins. Environment variables serve as fallbacks for initial setup or when the database is unavailable.

Admin Panel (DB) → Environment Variable → Default

Important Notes

  • REPO_ENCRYPTION_KEY — if not set, a temporary key is generated on each restart, meaning OAuth tokens and encrypted credentials are lost. Always set this in production.
  • POSTGRES_PASSWORD — once PostgreSQL is initialized with a password, changing it in .env will cause connection failures. To reset, delete the postgres_data volume.