mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-04-26 09:16:22 +02:00
Remove all Electric SQL client code, Docker service, env vars, CI build args, install scripts, and documentation. Feature hooks that depend on Electric are intentionally left in place to be rewritten with Rocicorp Zero in subsequent commits. Deleted: - lib/electric/ (client.ts, context.ts, auth.ts, baseline.ts) - ElectricProvider.tsx - docker/scripts/init-electric-user.sh - content/docs/how-to/electric-sql.mdx Cleaned: - package.json (4 @electric-sql/* deps) - app/layout.tsx, UserDropdown.tsx, LayoutDataProvider.tsx - docker-compose.yml, docker-compose.dev.yml - Dockerfile, docker-entrypoint.js - .env.example (frontend, docker, backend) - CI workflows, install scripts, docs
180 lines
6.5 KiB
Text
180 lines
6.5 KiB
Text
DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/surfsense
|
|
|
|
#Celery Config
|
|
CELERY_BROKER_URL=redis://localhost:6379/0
|
|
CELERY_RESULT_BACKEND=redis://localhost:6379/0
|
|
# 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
|
|
# Optional: TTL in seconds for connector indexing lock key
|
|
# CONNECTOR_INDEXING_LOCK_TTL_SECONDS=28800
|
|
|
|
# Platform Web Search (SearXNG)
|
|
# Set this to enable built-in web search. Docker Compose sets it automatically.
|
|
# Only uncomment if running the backend outside Docker (e.g. uvicorn on host).
|
|
# SEARXNG_DEFAULT_HOST=http://localhost:8888
|
|
|
|
# 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
|
|
|
|
SECRET_KEY=SECRET
|
|
|
|
# JWT Token Lifetimes (optional, defaults shown)
|
|
# ACCESS_TOKEN_LIFETIME_SECONDS=86400 # 1 day
|
|
# REFRESH_TOKEN_LIFETIME_SECONDS=1209600 # 2 weeks
|
|
|
|
NEXT_FRONTEND_URL=http://localhost:3000
|
|
|
|
# Backend URL for OAuth callbacks (optional, set when behind reverse proxy with HTTPS)
|
|
# BACKEND_URL=https://api.yourdomain.com
|
|
|
|
# Auth
|
|
AUTH_TYPE=GOOGLE or LOCAL
|
|
REGISTRATION_ENABLED=TRUE or FALSE
|
|
# For Google Auth Only
|
|
GOOGLE_OAUTH_CLIENT_ID=924507538m
|
|
GOOGLE_OAUTH_CLIENT_SECRET=GOCSV
|
|
GOOGLE_PICKER_API_KEY=your-google-picker-api-key
|
|
|
|
# Google Connector Specific Configurations
|
|
GOOGLE_CALENDAR_REDIRECT_URI=http://localhost:8000/api/v1/auth/google/calendar/connector/callback
|
|
GOOGLE_GMAIL_REDIRECT_URI=http://localhost:8000/api/v1/auth/google/gmail/connector/callback
|
|
GOOGLE_DRIVE_REDIRECT_URI=http://localhost:8000/api/v1/auth/google/drive/connector/callback
|
|
|
|
# Aitable OAuth Configuration
|
|
AIRTABLE_CLIENT_ID=your_airtable_client_id_here
|
|
AIRTABLE_CLIENT_SECRET=your_airtable_client_secret_here
|
|
AIRTABLE_REDIRECT_URI=http://localhost:8000/api/v1/auth/airtable/connector/callback
|
|
|
|
# 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
|
|
|
|
# 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
|
|
|
|
# Atlassian OAuth Configuration
|
|
ATLASSIAN_CLIENT_ID=your_atlassian_client_id_here
|
|
ATLASSIAN_CLIENT_SECRET=your_atlassian_client_secret_here
|
|
JIRA_REDIRECT_URI=http://localhost:8000/api/v1/auth/jira/connector/callback
|
|
CONFLUENCE_REDIRECT_URI=http://localhost:8000/api/v1/auth/confluence/connector/callback
|
|
|
|
# Linear OAuth Configuration
|
|
LINEAR_CLIENT_ID=your_linear_client_id_here
|
|
LINEAR_CLIENT_SECRET=your_linear_client_secret_here
|
|
LINEAR_REDIRECT_URI=http://localhost:8000/api/v1/auth/linear/connector/callback
|
|
|
|
# Notion OAuth Configuration
|
|
NOTION_CLIENT_ID=your_notion_client_id_here
|
|
NOTION_CLIENT_SECRET=your_notion_client_secret_here
|
|
NOTION_REDIRECT_URI=http://localhost:8000/api/v1/auth/notion/connector/callback
|
|
|
|
# Slack OAuth Configuration
|
|
SLACK_CLIENT_ID=your_slack_client_id_here
|
|
SLACK_CLIENT_SECRET=your_slack_client_secret_here
|
|
SLACK_REDIRECT_URI=http://localhost:8000/api/v1/auth/slack/connector/callback
|
|
|
|
# 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
|
|
|
|
#Composio Coonnector
|
|
COMPOSIO_API_KEY=your_api_key_here
|
|
COMPOSIO_ENABLED=TRUE
|
|
COMPOSIO_REDIRECT_URI=http://localhost:8000/api/v1/auth/composio/connector/callback
|
|
|
|
# Embedding Model
|
|
# 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="...")
|
|
EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2
|
|
|
|
# Rerankers Config
|
|
RERANKERS_ENABLED=TRUE or FALSE(Default: FALSE)
|
|
RERANKERS_MODEL_NAME=ms-marco-MiniLM-L-12-v2
|
|
RERANKERS_MODEL_TYPE=flashrank
|
|
|
|
|
|
# TTS_SERVICE=local/kokoro for local Kokoro TTS or
|
|
# LiteLLM TTS Provider: https://docs.litellm.ai/docs/text_to_speech#supported-providers
|
|
TTS_SERVICE=local/kokoro
|
|
# Respective TTS Service API
|
|
# TTS_SERVICE_API_KEY=
|
|
# OPTIONAL: TTS Provider API Base
|
|
# TTS_SERVICE_API_BASE=
|
|
|
|
# STT Service Configuration
|
|
# For local Faster-Whisper: local/MODEL_SIZE (tiny, base, small, medium, large-v3)
|
|
STT_SERVICE=local/base
|
|
# 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=
|
|
|
|
|
|
# (Optional) Maximum pages limit per user for ETL services (default: `999999999` for unlimited in OSS version)
|
|
PAGES_LIMIT=500
|
|
|
|
|
|
# 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
|
|
|
|
FIRECRAWL_API_KEY=fcr-01J0000000000000000000000
|
|
|
|
# File Parser Service
|
|
ETL_SERVICE=UNSTRUCTURED or LLAMACLOUD or DOCLING
|
|
UNSTRUCTURED_API_KEY=Tpu3P0U8iy
|
|
LLAMA_CLOUD_API_KEY=llx-nnn
|
|
|
|
# OPTIONAL: Add these for LangSmith Observability
|
|
LANGSMITH_TRACING=true
|
|
LANGSMITH_ENDPOINT=https://api.smith.langchain.com
|
|
LANGSMITH_API_KEY=lsv2_pt_.....
|
|
LANGSMITH_PROJECT=surfsense
|
|
|
|
# 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
|
|
DAYTONA_TARGET=us
|
|
# Directory for locally-persisted sandbox files (after sandbox deletion)
|
|
SANDBOX_FILES_DIR=sandbox_files
|