2025-06-09 15:50:15 -07:00
|
|
|
DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/surfsense
|
2025-03-14 18:53:14 -07:00
|
|
|
|
2025-10-20 00:30:00 -07:00
|
|
|
#Celery Config
|
|
|
|
|
CELERY_BROKER_URL=redis://localhost:6379/0
|
|
|
|
|
CELERY_RESULT_BACKEND=redis://localhost:6379/0
|
2026-02-02 13:17:12 -08:00
|
|
|
# Optional: isolate queues when sharing Redis with other apps
|
|
|
|
|
CELERY_TASK_DEFAULT_QUEUE=surfsense
|
|
|
|
|
|
|
|
|
|
# Redis for app-level features (heartbeats, podcast markers)
|
|
|
|
|
# Defaults to CELERY_BROKER_URL when not set
|
|
|
|
|
REDIS_APP_URL=redis://localhost:6379/0
|
2026-02-09 14:03:56 -08:00
|
|
|
# Optional: TTL in seconds for connector indexing lock key
|
|
|
|
|
# CONNECTOR_INDEXING_LOCK_TTL_SECONDS=28800
|
2025-10-29 23:23:08 -07:00
|
|
|
|
2026-03-14 21:03:25 +05:30
|
|
|
# Platform Web Search (SearXNG)
|
|
|
|
|
# Set this to enable built-in web search. Docker Compose sets it automatically.
|
2026-03-14 21:27:09 +05:30
|
|
|
# Only uncomment if running the backend outside Docker (e.g. uvicorn on host).
|
2026-03-14 21:03:25 +05:30
|
|
|
# SEARXNG_DEFAULT_HOST=http://localhost:8888
|
|
|
|
|
|
2026-01-20 02:03:05 -08:00
|
|
|
#Electric(for migrations only)
|
|
|
|
|
ELECTRIC_DB_USER=electric
|
|
|
|
|
ELECTRIC_DB_PASSWORD=electric_password
|
|
|
|
|
|
2025-10-23 00:56:28 -07:00
|
|
|
# Periodic task interval
|
|
|
|
|
# # Run every minute (default)
|
|
|
|
|
# SCHEDULE_CHECKER_INTERVAL=1m
|
|
|
|
|
|
|
|
|
|
# # Run every 5 minutes
|
|
|
|
|
# SCHEDULE_CHECKER_INTERVAL=5m
|
|
|
|
|
|
|
|
|
|
# # Run every 10 minutes
|
|
|
|
|
# SCHEDULE_CHECKER_INTERVAL=10m
|
|
|
|
|
|
|
|
|
|
# # Run every hour
|
|
|
|
|
# SCHEDULE_CHECKER_INTERVAL=1h
|
|
|
|
|
|
|
|
|
|
# # Run every 2 hours
|
|
|
|
|
# SCHEDULE_CHECKER_INTERVAL=2h
|
|
|
|
|
SCHEDULE_CHECKER_INTERVAL=5m
|
2025-10-20 00:30:00 -07:00
|
|
|
|
2025-06-09 15:50:15 -07:00
|
|
|
SECRET_KEY=SECRET
|
2026-02-05 18:59:15 +02:00
|
|
|
|
|
|
|
|
# JWT Token Lifetimes (optional, defaults shown)
|
|
|
|
|
# ACCESS_TOKEN_LIFETIME_SECONDS=86400 # 1 day
|
|
|
|
|
# REFRESH_TOKEN_LIFETIME_SECONDS=1209600 # 2 weeks
|
|
|
|
|
|
2025-06-09 15:50:15 -07:00
|
|
|
NEXT_FRONTEND_URL=http://localhost:3000
|
2025-05-21 20:56:23 -07:00
|
|
|
|
2025-12-19 14:19:30 -08:00
|
|
|
# Backend URL for OAuth callbacks (optional, set when behind reverse proxy with HTTPS)
|
|
|
|
|
# BACKEND_URL=https://api.yourdomain.com
|
|
|
|
|
|
2025-06-10 23:26:28 +07:00
|
|
|
# Auth
|
2025-06-09 15:50:15 -07:00
|
|
|
AUTH_TYPE=GOOGLE or LOCAL
|
2025-10-29 23:23:08 -07:00
|
|
|
REGISTRATION_ENABLED=TRUE or FALSE
|
2025-05-21 20:56:23 -07:00
|
|
|
# For Google Auth Only
|
2025-06-09 15:50:15 -07:00
|
|
|
GOOGLE_OAUTH_CLIENT_ID=924507538m
|
|
|
|
|
GOOGLE_OAUTH_CLIENT_SECRET=GOCSV
|
2026-03-10 20:06:45 +02:00
|
|
|
GOOGLE_PICKER_API_KEY=your-google-picker-api-key
|
2025-10-29 23:23:08 -07:00
|
|
|
|
2026-01-07 15:15:25 +05:30
|
|
|
# Google Connector Specific Configurations
|
2025-08-02 04:39:48 +02:00
|
|
|
GOOGLE_CALENDAR_REDIRECT_URI=http://localhost:8000/api/v1/auth/google/calendar/connector/callback
|
2025-08-04 01:02:35 +02:00
|
|
|
GOOGLE_GMAIL_REDIRECT_URI=http://localhost:8000/api/v1/auth/google/gmail/connector/callback
|
2025-12-29 20:39:36 +02:00
|
|
|
GOOGLE_DRIVE_REDIRECT_URI=http://localhost:8000/api/v1/auth/google/drive/connector/callback
|
2026-01-02 20:07:14 +05:30
|
|
|
|
2026-01-07 15:15:25 +05:30
|
|
|
# Aitable OAuth Configuration
|
|
|
|
|
AIRTABLE_CLIENT_ID=your_airtable_client_id_here
|
|
|
|
|
AIRTABLE_CLIENT_SECRET=your_airtable_client_secret_here
|
2025-08-26 13:56:31 +02:00
|
|
|
AIRTABLE_REDIRECT_URI=http://localhost:8000/api/v1/auth/airtable/connector/callback
|
|
|
|
|
|
2026-01-07 15:15:25 +05:30
|
|
|
# ClickUp OAuth Configuration
|
|
|
|
|
CLICKUP_CLIENT_ID=your_clickup_client_id_here
|
|
|
|
|
CLICKUP_CLIENT_SECRET=your_clickup_client_secret_here
|
|
|
|
|
CLICKUP_REDIRECT_URI=http://localhost:8000/api/v1/auth/clickup/connector/callback
|
|
|
|
|
|
2026-01-05 14:21:39 +05:30
|
|
|
# Discord OAuth Configuration
|
|
|
|
|
DISCORD_CLIENT_ID=your_discord_client_id_here
|
|
|
|
|
DISCORD_CLIENT_SECRET=your_discord_client_secret_here
|
|
|
|
|
DISCORD_REDIRECT_URI=http://localhost:8000/api/v1/auth/discord/connector/callback
|
|
|
|
|
DISCORD_BOT_TOKEN=your_bot_token_from_developer_portal
|
|
|
|
|
|
2026-01-07 19:07:06 -08:00
|
|
|
# Atlassian OAuth Configuration
|
2026-01-07 19:43:31 -08:00
|
|
|
ATLASSIAN_CLIENT_ID=your_atlassian_client_id_here
|
|
|
|
|
ATLASSIAN_CLIENT_SECRET=your_atlassian_client_secret_here
|
2026-01-06 01:01:04 +05:30
|
|
|
JIRA_REDIRECT_URI=http://localhost:8000/api/v1/auth/jira/connector/callback
|
2026-01-07 19:07:06 -08:00
|
|
|
CONFLUENCE_REDIRECT_URI=http://localhost:8000/api/v1/auth/confluence/connector/callback
|
2026-01-06 01:01:04 +05:30
|
|
|
|
2026-01-07 15:15:25 +05:30
|
|
|
# Linear OAuth Configuration
|
|
|
|
|
LINEAR_CLIENT_ID=your_linear_client_id_here
|
|
|
|
|
LINEAR_CLIENT_SECRET=your_linear_client_secret_here
|
2026-01-02 21:24:28 +05:30
|
|
|
LINEAR_REDIRECT_URI=http://localhost:8000/api/v1/auth/linear/connector/callback
|
|
|
|
|
|
2026-01-07 15:15:25 +05:30
|
|
|
# Notion OAuth Configuration
|
|
|
|
|
NOTION_CLIENT_ID=your_notion_client_id_here
|
|
|
|
|
NOTION_CLIENT_SECRET=your_notion_client_secret_here
|
2026-01-02 21:24:28 +05:30
|
|
|
NOTION_REDIRECT_URI=http://localhost:8000/api/v1/auth/notion/connector/callback
|
|
|
|
|
|
2026-01-07 15:15:25 +05:30
|
|
|
# Slack OAuth Configuration
|
|
|
|
|
SLACK_CLIENT_ID=your_slack_client_id_here
|
|
|
|
|
SLACK_CLIENT_SECRET=your_slack_client_secret_here
|
2026-01-04 02:30:00 +05:30
|
|
|
SLACK_REDIRECT_URI=http://localhost:8000/api/v1/auth/slack/connector/callback
|
|
|
|
|
|
2026-01-09 13:20:30 -08:00
|
|
|
# Teams OAuth Configuration
|
|
|
|
|
TEAMS_CLIENT_ID=your_teams_client_id_here
|
|
|
|
|
TEAMS_CLIENT_SECRET=your_teams_client_secret_here
|
|
|
|
|
TEAMS_REDIRECT_URI=http://localhost:8000/api/v1/auth/teams/connector/callback
|
|
|
|
|
|
2026-03-19 19:24:55 +05:30
|
|
|
# Composio Connector
|
|
|
|
|
# NOTE: Disable "Mask Connected Account Secrets" in Composio dashboard (Settings → Project Settings) for Google indexing to work.
|
2026-01-21 22:57:58 -08:00
|
|
|
COMPOSIO_API_KEY=your_api_key_here
|
|
|
|
|
COMPOSIO_ENABLED=TRUE
|
|
|
|
|
COMPOSIO_REDIRECT_URI=http://localhost:8000/api/v1/auth/composio/connector/callback
|
|
|
|
|
|
2025-06-10 23:26:28 +07:00
|
|
|
# Embedding Model
|
2025-10-29 14:42:05 -07:00
|
|
|
# Examples:
|
|
|
|
|
# # Get sentence transformers embeddings
|
|
|
|
|
# embeddings = AutoEmbeddings.get_embeddings("sentence-transformers/all-MiniLM-L6-v2")
|
|
|
|
|
|
|
|
|
|
# # Get OpenAI embeddings
|
|
|
|
|
# embeddings = AutoEmbeddings.get_embeddings("openai://text-embedding-ada-002", api_key="...")
|
|
|
|
|
|
|
|
|
|
# # Get Anthropic embeddings
|
|
|
|
|
# embeddings = AutoEmbeddings.get_embeddings("anthropic://claude-v1", api_key="...")
|
|
|
|
|
|
|
|
|
|
# # Get Cohere embeddings
|
|
|
|
|
# embeddings = AutoEmbeddings.get_embeddings("cohere://embed-english-light-v3.0", api_key="...")
|
2025-10-20 00:30:00 -07:00
|
|
|
EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2
|
2025-03-14 18:53:14 -07:00
|
|
|
|
2025-10-29 23:23:08 -07:00
|
|
|
# Rerankers Config
|
|
|
|
|
RERANKERS_ENABLED=TRUE or FALSE(Default: FALSE)
|
2025-06-09 15:50:15 -07:00
|
|
|
RERANKERS_MODEL_NAME=ms-marco-MiniLM-L-12-v2
|
|
|
|
|
RERANKERS_MODEL_TYPE=flashrank
|
2025-03-14 18:53:14 -07:00
|
|
|
|
|
|
|
|
|
2025-08-13 17:25:34 -07:00
|
|
|
# TTS_SERVICE=local/kokoro for local Kokoro TTS or
|
2025-06-10 23:26:28 +07:00
|
|
|
# LiteLLM TTS Provider: https://docs.litellm.ai/docs/text_to_speech#supported-providers
|
2025-10-29 23:23:08 -07:00
|
|
|
TTS_SERVICE=local/kokoro
|
2025-06-10 23:26:28 +07:00
|
|
|
# Respective TTS Service API
|
2025-10-29 23:23:08 -07:00
|
|
|
# TTS_SERVICE_API_KEY=
|
2025-06-10 23:26:28 +07:00
|
|
|
# OPTIONAL: TTS Provider API Base
|
2025-10-29 23:23:08 -07:00
|
|
|
# TTS_SERVICE_API_BASE=
|
2025-05-05 01:39:31 -07:00
|
|
|
|
2025-10-11 23:56:12 +05:00
|
|
|
# STT Service Configuration
|
2025-10-12 10:50:55 +05:00
|
|
|
# For local Faster-Whisper: local/MODEL_SIZE (tiny, base, small, medium, large-v3)
|
|
|
|
|
STT_SERVICE=local/base
|
2025-10-11 23:56:12 +05:00
|
|
|
# For LiteLLM STT Provider: https://docs.litellm.ai/docs/audio_transcription#supported-providers
|
|
|
|
|
# STT_SERVICE=openai/whisper-1
|
|
|
|
|
# STT_SERVICE_API_KEY=""
|
|
|
|
|
# STT_SERVICE_API_BASE=
|
2025-05-13 21:13:53 -07:00
|
|
|
|
2025-03-14 18:53:14 -07:00
|
|
|
|
2025-12-11 00:29:56 -08:00
|
|
|
# (Optional) Maximum pages limit per user for ETL services (default: `999999999` for unlimited in OSS version)
|
|
|
|
|
PAGES_LIMIT=500
|
|
|
|
|
|
|
|
|
|
|
2026-02-05 20:44:13 -08:00
|
|
|
# Residential Proxy Configuration (anonymous-proxies.net)
|
|
|
|
|
# Used for web crawling, link previews, and YouTube transcript fetching to avoid IP bans.
|
|
|
|
|
# Leave commented out to disable proxying.
|
|
|
|
|
# RESIDENTIAL_PROXY_USERNAME=your_proxy_username
|
|
|
|
|
# RESIDENTIAL_PROXY_PASSWORD=your_proxy_password
|
|
|
|
|
# RESIDENTIAL_PROXY_HOSTNAME=rotating.dnsproxifier.com:31230
|
|
|
|
|
# RESIDENTIAL_PROXY_LOCATION=
|
|
|
|
|
# RESIDENTIAL_PROXY_TYPE=1
|
|
|
|
|
|
2025-06-09 15:50:15 -07:00
|
|
|
FIRECRAWL_API_KEY=fcr-01J0000000000000000000000
|
2025-04-21 01:36:19 -07:00
|
|
|
|
2025-06-10 23:26:28 +07:00
|
|
|
# File Parser Service
|
2025-07-20 11:42:55 +03:00
|
|
|
ETL_SERVICE=UNSTRUCTURED or LLAMACLOUD or DOCLING
|
2025-06-09 15:50:15 -07:00
|
|
|
UNSTRUCTURED_API_KEY=Tpu3P0U8iy
|
|
|
|
|
LLAMA_CLOUD_API_KEY=llx-nnn
|
2025-05-30 19:17:19 -07:00
|
|
|
|
2025-06-10 23:26:28 +07:00
|
|
|
# OPTIONAL: Add these for LangSmith Observability
|
2025-04-21 01:36:19 -07:00
|
|
|
LANGSMITH_TRACING=true
|
2025-06-09 15:50:15 -07:00
|
|
|
LANGSMITH_ENDPOINT=https://api.smith.langchain.com
|
|
|
|
|
LANGSMITH_API_KEY=lsv2_pt_.....
|
|
|
|
|
LANGSMITH_PROJECT=surfsense
|
|
|
|
|
|
2026-02-25 01:54:24 -08:00
|
|
|
# Agent Specific Configuration
|
|
|
|
|
# Daytona Sandbox (secure cloud code execution for deep agent)
|
|
|
|
|
# Set DAYTONA_SANDBOX_ENABLED=TRUE to give the agent an isolated execute tool
|
|
|
|
|
DAYTONA_SANDBOX_ENABLED=TRUE
|
|
|
|
|
DAYTONA_API_KEY=dtn_asdasfasfafas
|
|
|
|
|
DAYTONA_API_URL=https://app.daytona.io/api
|
2026-02-25 20:25:06 +05:30
|
|
|
DAYTONA_TARGET=us
|
2026-02-25 12:25:59 -08:00
|
|
|
# Directory for locally-persisted sandbox files (after sandbox deletion)
|
2026-02-26 02:22:10 +05:30
|
|
|
SANDBOX_FILES_DIR=sandbox_files
|