mirror of
https://github.com/arch3rPro/1Panel-Appstore.git
synced 2026-04-15 00:17:12 +08:00
feat(open-notebook): 添加Open Notebook应用及相关配置
This commit is contained in:
26
apps/open-notebook/latest/data.yml
Normal file
26
apps/open-notebook/latest/data.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
additionalProperties:
|
||||
formFields:
|
||||
- default: "8502"
|
||||
envKey: PANEL_APP_PORT_HTTP
|
||||
required: true
|
||||
type: number
|
||||
labelEn: Port
|
||||
labelZh: 端口
|
||||
edit: true
|
||||
rule: paramPort
|
||||
- default: "5055"
|
||||
envKey: PANEL_APP_PORT_API
|
||||
required: true
|
||||
type: number
|
||||
labelEn: API Port
|
||||
labelZh: API端口
|
||||
edit: true
|
||||
rule: paramPort
|
||||
- default: "8000"
|
||||
envKey: PANEL_APP_PORT_DB
|
||||
required: true
|
||||
type: number
|
||||
labelEn: Database Port
|
||||
labelZh: 数据库端口
|
||||
edit: true
|
||||
rule: paramPort
|
||||
38
apps/open-notebook/latest/docker-compose.yml
Normal file
38
apps/open-notebook/latest/docker-compose.yml
Normal file
@@ -0,0 +1,38 @@
|
||||
services:
|
||||
open_notebook:
|
||||
image: lfnovo/open_notebook:v1-latest
|
||||
ports:
|
||||
- ${PANEL_APP_PORT_HTTP}:8502
|
||||
- ${PANEL_APP_PORT_API}:5055
|
||||
env_file:
|
||||
- ./docker.env
|
||||
depends_on:
|
||||
- surrealdb
|
||||
volumes:
|
||||
- ./notebook_data:/app/data
|
||||
restart: always
|
||||
container_name: ${CONTAINER_NAME}
|
||||
networks:
|
||||
- 1panel-network
|
||||
labels:
|
||||
createdBy: Apps
|
||||
surrealdb:
|
||||
image: surrealdb/surrealdb:v2
|
||||
volumes:
|
||||
- ./surreal_data:/mydata
|
||||
environment:
|
||||
- SURREAL_EXPERIMENTAL_GRAPHQL=true
|
||||
ports:
|
||||
- ${PANEL_APP_PORT_DB}:8000
|
||||
command: start --log info --user root --pass root rocksdb:/mydata/mydatabase.db
|
||||
pull_policy: always
|
||||
user: root
|
||||
restart: always
|
||||
container_name: ${CONTAINER_NAME}-surrealdb
|
||||
networks:
|
||||
- 1panel-network
|
||||
labels:
|
||||
createdBy: Apps
|
||||
networks:
|
||||
1panel-network:
|
||||
external: true
|
||||
259
apps/open-notebook/latest/docker.env
Normal file
259
apps/open-notebook/latest/docker.env
Normal file
@@ -0,0 +1,259 @@
|
||||
|
||||
# API CONFIGURATION
|
||||
# URL where the API can be accessed by the browser
|
||||
# This setting allows the frontend to connect to the API at runtime (no rebuild needed!)
|
||||
#
|
||||
# IMPORTANT: Do NOT include /api at the end - it will be added automatically!
|
||||
#
|
||||
# Common scenarios:
|
||||
# - Docker on localhost: http://localhost:5055 (default, works for most cases)
|
||||
# - Docker on LAN/remote server: http://192.168.1.100:5055 or http://your-server-ip:5055
|
||||
# - Behind reverse proxy with custom domain: https://your-domain.com
|
||||
# - Behind reverse proxy with subdomain: https://api.your-domain.com
|
||||
#
|
||||
# Examples for reverse proxy users:
|
||||
# - API_URL=https://notebook.example.com (frontend will call https://notebook.example.com/api/*)
|
||||
# - API_URL=https://api.example.com (frontend will call https://api.example.com/api/*)
|
||||
#
|
||||
# Note: If not set, the system will auto-detect based on the incoming request.
|
||||
# Only set this if you need to override the auto-detection (e.g., reverse proxy scenarios).
|
||||
API_URL=http://localhost:5055
|
||||
|
||||
# INTERNAL API URL (Server-Side)
|
||||
# URL where Next.js server-side should proxy API requests (via rewrites)
|
||||
# This is DIFFERENT from API_URL which is used by the browser client
|
||||
#
|
||||
# INTERNAL_API_URL is used by Next.js rewrites to forward /api/* requests to the FastAPI backend
|
||||
# API_URL is used by the browser to know where to make API calls
|
||||
#
|
||||
# Default: http://localhost:5055 (single-container deployment - both services on same host)
|
||||
# Override for multi-container: INTERNAL_API_URL=http://api-service:5055
|
||||
#
|
||||
# Common scenarios:
|
||||
# - Single container (default): Don't set - defaults to http://localhost:5055
|
||||
# - Multi-container Docker Compose: INTERNAL_API_URL=http://api:5055 (use service name)
|
||||
# - Kubernetes/advanced networking: INTERNAL_API_URL=http://api-service.namespace.svc.cluster.local:5055
|
||||
#
|
||||
# Why two variables?
|
||||
# - API_URL: External/public URL that browsers use (can be https://your-domain.com)
|
||||
# - INTERNAL_API_URL: Internal container networking URL (usually http://localhost:5055 or service name)
|
||||
#
|
||||
# INTERNAL_API_URL=http://localhost:5055
|
||||
|
||||
# API CLIENT TIMEOUT (in seconds)
|
||||
# Controls how long the frontend/Streamlit UI waits for API responses
|
||||
# Increase this if you're using slow AI providers or hardware (Ollama on CPU, remote LM Studio, etc.)
|
||||
# Default: 300 seconds (5 minutes) - sufficient for most transformation/insight operations
|
||||
#
|
||||
# Common scenarios:
|
||||
# - Fast cloud APIs (OpenAI, Anthropic): 300 seconds is more than enough
|
||||
# - Local Ollama on GPU: 300 seconds should work fine
|
||||
# - Local Ollama on CPU: Consider 600 seconds (10 minutes) or more
|
||||
# - Remote LM Studio over slow network: Consider 900 seconds (15 minutes)
|
||||
# - Very large documents: May need 900+ seconds
|
||||
#
|
||||
# API_CLIENT_TIMEOUT=300
|
||||
|
||||
# ESPERANTO LLM TIMEOUT (in seconds)
|
||||
# Controls the timeout for AI model API calls at the Esperanto library level
|
||||
# This is separate from API_CLIENT_TIMEOUT and applies to the actual LLM provider requests
|
||||
# Only increase this if you're experiencing timeouts during model inference itself
|
||||
# Default: 60 seconds (built into Esperanto)
|
||||
#
|
||||
# Important: This should generally be LOWER than API_CLIENT_TIMEOUT to allow proper error handling
|
||||
#
|
||||
# Common scenarios:
|
||||
# - Fast cloud APIs (OpenAI, Anthropic, Groq): 60 seconds is sufficient
|
||||
# - Local Ollama with small models: 120-180 seconds may help
|
||||
# - Local Ollama with large models on CPU: 300+ seconds
|
||||
# - Remote or self-hosted LLMs: 180-300 seconds depending on hardware
|
||||
#
|
||||
# Note: If transformations complete but you see timeout errors, increase API_CLIENT_TIMEOUT first.
|
||||
# Only increase ESPERANTO_LLM_TIMEOUT if the model itself is timing out during inference.
|
||||
#
|
||||
# ESPERANTO_LLM_TIMEOUT=60
|
||||
|
||||
# SSL VERIFICATION CONFIGURATION
|
||||
# Configure SSL certificate verification for local AI providers (Ollama, LM Studio, etc.)
|
||||
# behind reverse proxies with self-signed certificates
|
||||
#
|
||||
# Option 1: Custom CA Bundle (recommended for self-signed certs)
|
||||
# Point to your CA certificate file to verify SSL while using custom certificates
|
||||
# ESPERANTO_SSL_CA_BUNDLE=/path/to/your/ca-bundle.pem
|
||||
#
|
||||
# Option 2: Disable SSL Verification (development only)
|
||||
# WARNING: Disabling SSL verification exposes you to man-in-the-middle attacks
|
||||
# Only use in trusted development/testing environments
|
||||
# ESPERANTO_SSL_VERIFY=false
|
||||
|
||||
# SECURITY
|
||||
# Set this to protect your Open Notebook instance with a password (for public hosting)
|
||||
# OPEN_NOTEBOOK_PASSWORD=
|
||||
|
||||
# OPENAI
|
||||
# OPENAI_API_KEY=
|
||||
|
||||
|
||||
# ANTHROPIC
|
||||
# ANTHROPIC_API_KEY=
|
||||
|
||||
# GEMINI
|
||||
# this is the best model for long context and podcast generation
|
||||
# GOOGLE_API_KEY=
|
||||
# GEMINI_API_BASE_URL= # Optional: Override default endpoint (for Vertex AI, proxies, etc.)
|
||||
|
||||
# VERTEXAI
|
||||
# VERTEX_PROJECT=my-google-cloud-project-name
|
||||
# GOOGLE_APPLICATION_CREDENTIALS=./google-credentials.json
|
||||
# VERTEX_LOCATION=us-east5
|
||||
|
||||
# MISTRAL
|
||||
# MISTRAL_API_KEY=
|
||||
|
||||
# DEEPSEEK
|
||||
# DEEPSEEK_API_KEY=
|
||||
|
||||
# OLLAMA
|
||||
# OLLAMA_API_BASE="http://10.20.30.20:11434"
|
||||
|
||||
# OPEN ROUTER
|
||||
# OPENROUTER_BASE_URL="https://openrouter.ai/api/v1"
|
||||
# OPENROUTER_API_KEY=
|
||||
|
||||
# GROQ
|
||||
# GROQ_API_KEY=
|
||||
|
||||
# XAI
|
||||
# XAI_API_KEY=
|
||||
|
||||
# ELEVENLABS
|
||||
# Used only by the podcast feature
|
||||
# ELEVENLABS_API_KEY=
|
||||
|
||||
# TTS BATCH SIZE
|
||||
# Controls concurrent TTS requests for podcast generation (default: 5)
|
||||
# Lower values reduce provider load but increase generation time
|
||||
# Recommended: OpenAI=5, ElevenLabs=2, Google=4, Custom=1
|
||||
# TTS_BATCH_SIZE=2
|
||||
|
||||
# VOYAGE AI
|
||||
# VOYAGE_API_KEY=
|
||||
|
||||
# OPENAI COMPATIBLE ENDPOINTS
|
||||
# Generic configuration (applies to all modalities: language, embedding, STT, TTS)
|
||||
# OPENAI_COMPATIBLE_BASE_URL=http://localhost:1234/v1
|
||||
# OPENAI_COMPATIBLE_API_KEY=
|
||||
|
||||
# Mode-specific configuration (overrides generic if set)
|
||||
# Use these when you want different endpoints for different capabilities
|
||||
# OPENAI_COMPATIBLE_BASE_URL_LLM=http://localhost:1234/v1
|
||||
# OPENAI_COMPATIBLE_API_KEY_LLM=
|
||||
# OPENAI_COMPATIBLE_BASE_URL_EMBEDDING=http://localhost:8080/v1
|
||||
# OPENAI_COMPATIBLE_API_KEY_EMBEDDING=
|
||||
# OPENAI_COMPATIBLE_BASE_URL_STT=http://localhost:9000/v1
|
||||
# OPENAI_COMPATIBLE_API_KEY_STT=
|
||||
# OPENAI_COMPATIBLE_BASE_URL_TTS=http://localhost:9000/v1
|
||||
# OPENAI_COMPATIBLE_API_KEY_TTS=
|
||||
|
||||
# AZURE OPENAI
|
||||
# Generic configuration (applies to all modalities: language, embedding, STT, TTS)
|
||||
# AZURE_OPENAI_API_KEY=
|
||||
# AZURE_OPENAI_ENDPOINT=
|
||||
# AZURE_OPENAI_API_VERSION=2024-12-01-preview
|
||||
|
||||
# Mode-specific configuration (overrides generic if set)
|
||||
# Use these when you want different deployments for different AI capabilities
|
||||
# AZURE_OPENAI_API_KEY_LLM=
|
||||
# AZURE_OPENAI_ENDPOINT_LLM=
|
||||
# AZURE_OPENAI_API_VERSION_LLM=
|
||||
|
||||
# AZURE_OPENAI_API_KEY_EMBEDDING=
|
||||
# AZURE_OPENAI_ENDPOINT_EMBEDDING=
|
||||
# AZURE_OPENAI_API_VERSION_EMBEDDING=
|
||||
|
||||
# AZURE_OPENAI_API_KEY_STT=
|
||||
# AZURE_OPENAI_ENDPOINT_STT=
|
||||
# AZURE_OPENAI_API_VERSION_STT=
|
||||
|
||||
# AZURE_OPENAI_API_KEY_TTS=
|
||||
# AZURE_OPENAI_ENDPOINT_TTS=
|
||||
# AZURE_OPENAI_API_VERSION_TTS=
|
||||
|
||||
# USE THIS IF YOU WANT TO DEBUG THE APP ON LANGSMITH
|
||||
# LANGCHAIN_TRACING_V2=true
|
||||
# LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"
|
||||
# LANGCHAIN_API_KEY=
|
||||
# LANGCHAIN_PROJECT="Open Notebook"
|
||||
|
||||
# CONNECTION DETAILS FOR YOUR SURREAL DB
|
||||
# New format (preferred) - WebSocket URL
|
||||
SURREAL_URL="ws://surrealdb/rpc:8000"
|
||||
SURREAL_USER="root"
|
||||
SURREAL_PASSWORD="root"
|
||||
SURREAL_NAMESPACE="open_notebook"
|
||||
SURREAL_DATABASE="staging"
|
||||
|
||||
# RETRY CONFIGURATION (surreal-commands v1.2.0+)
|
||||
# Global defaults for all background commands unless explicitly overridden at command level
|
||||
# These settings help commands automatically recover from transient failures like:
|
||||
# - Database transaction conflicts during concurrent operations
|
||||
# - Network timeouts when calling external APIs
|
||||
# - Rate limits from LLM/embedding providers
|
||||
# - Temporary resource unavailability
|
||||
|
||||
# Enable/disable retry globally (default: true)
|
||||
# Set to false to disable retries for all commands (useful for debugging)
|
||||
SURREAL_COMMANDS_RETRY_ENABLED=true
|
||||
|
||||
# Maximum retry attempts before giving up (default: 3)
|
||||
# Database operations use 5 attempts (defined per-command)
|
||||
# API calls use 3 attempts (defined per-command)
|
||||
SURREAL_COMMANDS_RETRY_MAX_ATTEMPTS=3
|
||||
|
||||
# Wait strategy between retry attempts (default: exponential_jitter)
|
||||
# Options: exponential_jitter, exponential, fixed, random
|
||||
# - exponential_jitter: Recommended - prevents thundering herd during DB conflicts
|
||||
# - exponential: Good for API rate limits (predictable backoff)
|
||||
# - fixed: Use for quick recovery scenarios
|
||||
# - random: Use when you want unpredictable retry timing
|
||||
SURREAL_COMMANDS_RETRY_WAIT_STRATEGY=exponential_jitter
|
||||
|
||||
# Minimum wait time between retries in seconds (default: 1)
|
||||
# Database conflicts: 1 second (fast retry for transient issues)
|
||||
# API rate limits: 5 seconds (wait for quota reset)
|
||||
SURREAL_COMMANDS_RETRY_WAIT_MIN=1
|
||||
|
||||
# Maximum wait time between retries in seconds (default: 30)
|
||||
# Database conflicts: 30 seconds maximum
|
||||
# API rate limits: 120 seconds maximum (defined per-command)
|
||||
# Total retry time won't exceed max_attempts * wait_max
|
||||
SURREAL_COMMANDS_RETRY_WAIT_MAX=30
|
||||
|
||||
# WORKER CONCURRENCY
|
||||
# Maximum number of concurrent tasks in the worker pool (default: 5)
|
||||
# This affects the likelihood of database transaction conflicts during batch operations
|
||||
#
|
||||
# Tuning guidelines based on deployment size:
|
||||
# - Resource-constrained (low CPU/memory): 1-2 workers
|
||||
# Reduces conflicts and resource usage, but slower processing
|
||||
#
|
||||
# - Normal deployment (balanced): 5 workers (RECOMMENDED)
|
||||
# Good balance between throughput and conflict rate
|
||||
# Retry logic handles occasional conflicts gracefully
|
||||
#
|
||||
# - Large instances (high CPU/memory): 10-20 workers
|
||||
# Higher throughput but more frequent DB conflicts
|
||||
# Relies heavily on retry logic with jittered backoff
|
||||
#
|
||||
# Note: Higher concurrency increases vectorization speed but also increases
|
||||
# SurrealDB transaction conflicts. The retry logic with exponential-jitter
|
||||
# backoff ensures operations complete successfully even at high concurrency.
|
||||
SURREAL_COMMANDS_MAX_TASKS=5
|
||||
|
||||
# OPEN_NOTEBOOK_PASSWORD=
|
||||
|
||||
# FIRECRAWL - Get a key at https://firecrawl.dev/
|
||||
FIRECRAWL_API_KEY=
|
||||
|
||||
# JINA - Get a key at https://jina.ai/
|
||||
JINA_API_KEY=
|
||||
Reference in New Issue
Block a user