Skip to content

Environment Variables

Frona AI is configured through environment variables. All variables use the FRONA_ prefix and are organized by component.

VariableDefaultDescription
FRONA_SERVER_DATA_DIRdataBase data directory. Defaults for FRONA_CONFIG, database.path, storage.workspaces_path, and storage.files_path are derived from this path
FRONA_CONFIG{data_dir}/config.yamlPath to the YAML config file
FRONA_LOG_LEVELLog verbosity level
FRONA_LOG_CONFIGPath to a custom log configuration file
VariableDefaultDescription
FRONA_SERVER_PORT3001Port the backend API listens on
FRONA_SERVER_BASE_URLPublic base URL of the server (used for callbacks)
FRONA_SERVER_MAX_BODY_SIZE_BYTES104857600 (100 MB)Maximum request body size
FRONA_SERVER_CORS_ORIGINSComma-separated list of allowed CORS origins
FRONA_SERVER_MAX_CONCURRENT_TASKS10Maximum concurrent tasks across all agents
FRONA_SERVER_SANDBOX_DISABLEDfalseDisable CLI sandboxing (not recommended for production)
VariableDefaultDescription
FRONA_AUTH_ENCRYPTION_SECRETSecret used to derive the AES-256 key that encrypts JWT signing keypairs at rest. Must be changed in production.
FRONA_AUTH_ACCESS_TOKEN_EXPIRY_SECS900 (15 min)Access token lifetime
FRONA_AUTH_REFRESH_TOKEN_EXPIRY_SECS604800 (7 days)Refresh token lifetime
FRONA_AUTH_PRESIGN_EXPIRY_SECS86400 (24 hours)Pre-signed URL lifetime
VariableDefaultDescription
FRONA_SSO_ENABLEDfalseEnable OIDC authentication
FRONA_SSO_AUTHORITYOpenID Connect authority URL
FRONA_SSO_CLIENT_IDOIDC client ID
FRONA_SSO_CLIENT_SECRETOIDC client secret
FRONA_SSO_SCOPESemail profile offline_accessOpenID scopes to request
FRONA_SSO_ONLYfalseForce SSO-only authentication, disables local login
FRONA_SSO_SIGNUPS_MATCH_EMAILtrueMatch SSO signups to existing accounts by email
FRONA_SSO_ALLOW_UNKNOWN_EMAIL_VERIFICATIONfalseAccept unverified emails from the IdP
FRONA_SSO_CLIENT_CACHE_EXPIRATION0Client metadata cache expiration in seconds
VariableDefaultDescription
FRONA_DATABASE_PATHdata/dbPath to the SurrealDB data directory
VariableDefaultDescription
FRONA_BROWSER_WS_URLWebSocket URL of the Browserless instance
FRONA_BROWSER_PROFILES_PATH/profilesPath for storing browser profiles
FRONA_BROWSER_CONNECTION_TIMEOUT_MS30000Timeout for connecting to the browser
VariableDefaultDescription
FRONA_SEARCH_PROVIDERSearch provider: searxng, tavily, or brave
FRONA_SEARCH_SEARXNG_BASE_URLBase URL of the SearXNG instance
VariableDefaultDescription
FRONA_STORAGE_WORKSPACES_PATHdata/workspacesPath for workspace file storage
FRONA_STORAGE_FILES_PATHdata/filesPath for file uploads
FRONA_STORAGE_SHARED_CONFIG_DIRresourcesPath for shared prompts and agent configs
VariableDefaultDescription
FRONA_SCHEDULER_POLL_SECS60How often the scheduler checks for due tasks
FRONA_SCHEDULER_SPACE_COMPACTION_SECS3600 (1 hour)Interval for space context compaction
FRONA_SCHEDULER_INSIGHT_COMPACTION_SECS7200 (2 hours)Interval for memory insight compaction
VariableDefaultDescription
FRONA_INFERENCE_MAX_TOOL_TURNS200Maximum tool call iterations per response
FRONA_INFERENCE_DEFAULT_MAX_TOKENS8192Default max tokens for LLM responses
FRONA_INFERENCE_COMPACTION_TRIGGER_PCT80Context usage percentage that triggers compaction
FRONA_INFERENCE_HISTORY_TRUNCATION_PCT90Context usage percentage that triggers truncation
VariableDefaultDescription
FRONA_VOICE_PROVIDERVoice provider. Currently only twilio is supported
FRONA_VOICE_TWILIO_ACCOUNT_SIDTwilio account SID
FRONA_VOICE_TWILIO_AUTH_TOKENTwilio auth token
FRONA_VOICE_TWILIO_FROM_NUMBERTwilio phone number for outbound calls (E.164 format)
FRONA_VOICE_TWILIO_VOICE_IDTwilio voice ID for text-to-speech
FRONA_VOICE_TWILIO_SPEECH_MODELTwilio speech recognition model
FRONA_VOICE_CALLBACK_BASE_URLPublic URL for Twilio callbacks (overrides server.base_url)
VariableDefaultDescription
ANTHROPIC_API_KEYAPI key for Anthropic (Claude)
OPENAI_API_KEYAPI key for OpenAI
GROQ_API_KEYAPI key for Groq
OPENROUTER_API_KEYAPI key for OpenRouter
DEEPSEEK_API_KEYAPI key for DeepSeek
GEMINI_API_KEYAPI key for Google Gemini
COHERE_API_KEYAPI key for Cohere
MISTRAL_API_KEYAPI key for Mistral
PERPLEXITY_API_KEYAPI key for Perplexity
TOGETHER_API_KEYAPI key for Together AI
XAI_API_KEYAPI key for xAI (Grok)
HYPERBOLIC_API_KEYAPI key for Hyperbolic
MOONSHOT_API_KEYAPI key for Moonshot
MIRA_API_KEYAPI key for Mira
GALADRIEL_API_KEYAPI key for Galadriel
HUGGINGFACE_API_KEYAPI key for Hugging Face
OLLAMA_API_BASE_URLBase URL for Ollama instance

Model groups are configured in the application config file rather than environment variables. Each group defines:

  • main: the primary model identifier
  • fallbacks: a list of fallback models
  • max_tokens: token limit override
  • temperature: temperature override
  • context_window: context window size
  • retry: exponential backoff settings for retries