SurfSense---Backend
SurfSense---Backend
Docker app from grtgbln's Repository
Overview
This is the backend container.
Requirements
Requires separate SurfSense - Frontend, SurfSense - Worker, pgAdmin4, pgvector, electric and Redis containers. See documentation: https://github.com/MODSetter/SurfSense/blob/main/DOCKER_SETUP.md#deployment-options
Runtime arguments
- Web UI
http://[IP]:[PORT:8000]/- Network
bridge- Privileged
- false
Template configuration
Container Port: 8000
- Target
- 8000
- Default
- 3001
- Value
- 3001
URL of the PostgreSQL database, including port and credentials
- Target
- DATABASE_URL
- Default
- postgresql+asyncpg://USERNAME:PASSWORD@IP_ADDRESS:5432/surfsense
- Value
- postgresql+asyncpg://USERNAME:PASSWORD@IP_ADDRESS:5432/surfsense
JWT Secret key for authentication (should be a secure random string)
- Target
- SECRET_KEY
URL of the frontend service, including port
- Target
- NEXT_FRONTEND_URL
- Default
- http://MY_IP_ADDRESS:3000
- Value
- http://MY_IP_ADDRESS:3000
Authentication type (Google OAuth or local email/password)
- Target
- AUTH_TYPE
- Default
- LOCAL|GOOGLE
Google OAuth Client ID. Required if AUTH_TYPE is set to GOOGLE.
- Target
- GOOGLE_OAUTH_CLIENT_ID
Google OAuth Client Secret. Required if AUTH_TYPE is set to GOOGLE.
- Target
- GOOGLE_OAUTH_CLIENT_SECRET
Redirect URI for Google Calendar OAuth. Must match the one set in Google Cloud Console.
- Target
- GOOGLE_CALENDAR_REDIRECT_URI
- Default
- http://MY_IP_ADDRESS:8000/api/v1/auth/google/calendar/connector/callback
- Value
- http://MY_IP_ADDRESS:8000/api/v1/auth/google/calendar/connector/callback
Redirect URI for Google Gmail OAuth. Must match the one set in Google Cloud Console.
- Target
- GOOGLE_GMAIL_REDIRECT_URI
- Default
- http://MY_IP_ADDRESS:8000/api/v1/auth/google/gmail/connector/callback
- Value
- http://MY_IP_ADDRESS:8000/api/v1/auth/google/gmail/connector/callback
AirTable OAuth Client ID. Required if using AirTable connector.
- Target
- AIRTABLE_CLIENT_ID
AirTable OAuth Client Secret. Required if using AirTable connector.
- Target
- AIRTABLE_CLIENT_SECRET
Redirect URI for AirTable OAuth. Must match the one set in AirTable developer console.
- Target
- AIRTABLE_REDIRECT_URI
- Default
- http://MY_IP_ADDRESS:8000/api/v1/auth/airtable/connector/callback
- Value
- http://MY_IP_ADDRESS:8000/api/v1/auth/airtable/connector/callback
Name of the embedding model (e.g., openai://text-embedding-ada-002, anthropic://claude-v1, mixedbread-ai/mxbai-embed-large-v1)
- Target
- EMBEDDING_MODEL
- Default
- mixedbread-ai/mxbai-embed-large-v1
- Value
- mixedbread-ai/mxbai-embed-large-v1
Name of the reranker model (e.g., ms-marco-MiniLM-L-12-v2)
- Target
- RERANKERS_MODEL_NAME
- Default
- ms-marco-MiniLM-L-12-v2
- Value
- ms-marco-MiniLM-L-12-v2
Type of reranker model (e.g., flashrank)
- Target
- RERANKERS_MODEL_TYPE
- Default
- flashrank
- Value
- flashrank
Text-to-Speech API provider for Podcasts (e.g., openai/tts-1, azure/neural, vertex_ai/). See documentation: https://docs.litellm.ai/docs/text_to_speech#supported-providers
- Target
- TTS_SERVICE
- Default
- openai/tts-1
- Value
- openai/tts-1
Base URL for the Text To Speech API. Optional, leave empty to use default.
- Target
- TTS_SERVICE_API_BASE
API Key for the Text To Speech API provider. Required if the provider needs authentication.
- Target
- TTS_SERVICE_API_KEY
Speech-to-Text API provider for Podcasts (e.g., openai/whisper-1, local). See documentation: https://docs.litellm.ai/docs/audio_transcription#supported-providers
- Target
- STT_SERVICE
- Default
- openai/whisper-1
- Value
- openai/whisper-1
Local Whisper model size to use if STT_SERVICE is set to local.
- Target
- LOCAL_STT_MODEL
- Default
- base|tiny|small|medium|large-v3
Base URL for the Speech To Text API. Optional, leave empty to use default.
- Target
- STT_SERVICE_API_BASE
API Key for the Speech To Text API provider. Required if the provider needs authentication.
- Target
- STT_SERVICE_API_KEY
API key for Firecrawl service for web crawling
- Target
- FIRECRAWL_API_KEY
Document parsing service
- Target
- ETL_SERVICE
- Default
- UNSTRUCTURED|LLAMACLOUD|DOCLING
API key for Unstructured.io service for document parsing. Required if ETL Service is set to UNSTRUCTURED
- Target
- UNSTRUCTURED_API_KEY
API key for LlamaCloud service for document parsing. Required if ETL Service is set to LLAMACLOUD
- Target
- LLAMA_CLOUD_API_KEY
URL of the Redis instance used as Celery broker, including port
- Target
- CELERY_BROKER_URL
- Default
- redis://MY_IP_ADDRESS:6379/0
- Value
- redis://MY_IP_ADDRESS:6379/0
URL of the Redis instance used as Celery result backend, including port. Must match CELERY_BROKER_URL
- Target
- CELERY_RESULT_BACKEND
- Default
- redis://MY_IP_ADDRESS:6379/0
- Value
- redis://MY_IP_ADDRESS:6379/0
Electric database user
- Target
- ELECTRIC_DB_USER
- Default
- electric
- Value
- electric
Electric database password
- Target
- ELECTRIC_DB_PASSWORD
- Default
- electric_password
- Value
- electric_password
Path to store app data. Must match Worker
- Target
- /app
- Default
- /mnt/user/appdata/surfsense/backend/data
- Value
- /mnt/user/appdata/surfsense/backend/data
Path to store temporary data. Must be shared between containers.
- Target
- /tmp
- Default
- /mnt/user/appdata/surfsense/shared/tmp
- Value
- /mnt/user/appdata/surfsense/shared/tmp
Enable LangSmith tracing.
- Target
- LANGSMITH_TRACING
- Default
- false
- Value
- false
LangSmith API endpoint. Default is https://api.smith.langchain.com, change only if you know what you're doing.
- Target
- LANGSMITH_ENDPOINT
- Default
- https://api.smith.langchain.com
- Value
- https://api.smith.langchain.com
LangSmith project name.
- Target
- LANGSMITH_PROJECT
API key for LangSmith tracing. Required if LANGSMITH_TRACING is enabled.
- Target
- LANGSMITH_API_KEY
Uvicorn host address. Not recommended to change.
- Target
- UVICORN_HOST
- Default
- 0.0.0.0
- Value
- 0.0.0.0
Uvicorn port. Not recommended to change.
- Target
- UVICORN_PORT
- Default
- 8000
- Value
- 8000
Uvicorn log level. Not recommended to change.
- Target
- UVICORN_LOG_LEVEL
- Default
- info
- Value
- info
Uvicorn loop type. Default is asyncio, change only if you know what you're doing.
- Target
- UVICORN_LOOP
- Default
- asyncio
- Value
- asyncio
Internal Python path for the application. Not recommended to change.
- Target
- PYTHONPATH
- Default
- /app
- Value
- /app
Unstructured library patched loop. Default is 1, change only if you know what you're doing.
- Target
- UNSTRUCTURED_HAS_PATCHED_LOOP
- Default
- 1
- Value
- 1
Not recommended to change.
- Target
- LANGCHAIN_TRACING_V2
- Default
- false
- Value
- false
Details
ghcr.io/modsetter/surfsense_backend:latestRun SurfSense---Backend on Unraid.
SurfSense---Backend is listed in Community Apps for Unraid OS. Explore Unraid to build a flexible home server, NAS, or homelab.