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
| Variable | Description |
|---|---|
ANTHROPIC_API_KEY | Claude API key |
POSTGRES_PASSWORD | PostgreSQL password (auto-generated by bootstrap) |
OAUTH_GOOGLE_CLIENT_ID | Google OAuth client ID for user login |
OAUTH_GOOGLE_CLIENT_SECRET | Google OAuth client secret |
CHAINLIT_AUTH_SECRET | Session encryption key (auto-generated) |
PRIMARY_DOMAIN | Company email domain for login (e.g. acme.com) |
CHAINLIT_URL | Public URL of the bot (e.g. https://data-bot.acme.com) |
ADMIN_SECRET | Admin panel access key (auto-generated) |
ENTERPRISE_KEY | License key from tvaras.ai |
Optional
| Variable | Description | Default |
|---|---|---|
CLAUDE_MODEL | Default Claude model | claude-opus-4-6 |
REPO_ENCRYPTION_KEY | Fernet key for encrypting OAuth tokens and credentials | Auto-generated (not persistent) |
GITHUB_CLIENT_ID | GitHub OAuth app for repository connections | — |
GITHUB_CLIENT_SECRET | GitHub OAuth secret | — |
GITLAB_CLIENT_ID | GitLab OAuth app | — |
GITLAB_CLIENT_SECRET | GitLab OAuth secret | — |
SLACK_BOT_TOKEN | Slack bot token (if not using OAuth) | — |
SLACK_SIGNING_SECRET | Slack signing secret | — |
DATA_EXPORT_API_KEY | API 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.envwill cause connection failures. To reset, delete thepostgres_datavolume.