mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-12 16:56:02 +00:00
Cloud/NAT deployments couldn't complete WeCom-family / Official Account / QQ Official setup because the trusted-IP (IP whitelist) value — the server's egress IPs — was nowhere visible in LangBot. - config.yaml: new system.outbound_ips list (env: SYSTEM__OUTBOUND_IPS, comma-separated), exposed via GET /api/v1/system/info - dynamic form: generic __system.*-named display-only fields resolved from systemContext (same namespace as show_if), one read-only row per value with a copy button, excluded from form state and emitted values; hidden entirely when the deployment provides no IPs - manifests: trusted-IP display field for wecom, wecomcs, wecombot, officialaccount, qqofficial Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
154 lines
5.6 KiB
YAML
154 lines
5.6 KiB
YAML
admins: []
|
||
api:
|
||
port: 5300
|
||
webhook_prefix: 'http://127.0.0.1:5300'
|
||
extra_webhook_prefix: ''
|
||
command:
|
||
enable: true
|
||
prefix:
|
||
- '!'
|
||
- !
|
||
privilege: {}
|
||
concurrency:
|
||
pipeline: 20
|
||
session: 1
|
||
proxy:
|
||
http: ''
|
||
https: ''
|
||
system:
|
||
instance_id: ''
|
||
edition: community
|
||
recovery_key: ''
|
||
allow_modify_login_info: true
|
||
disabled_adapters: []
|
||
# Public outbound IP addresses of this LangBot deployment. Some platforms
|
||
# (e.g. WeCom, WeChat Official Account, QQ Official API) require the
|
||
# caller's IPs to be added to their trusted-IP / IP-whitelist settings.
|
||
# When set, the web UI shows these IPs on the bot config form of such
|
||
# adapters. Also settable via the SYSTEM__OUTBOUND_IPS env var
|
||
# (comma-separated). Empty list = hidden in the web UI.
|
||
outbound_ips: []
|
||
limitation:
|
||
max_bots: -1
|
||
max_pipelines: -1
|
||
max_extensions: -1
|
||
# When set to a non-empty string, every pipeline is forced to use this
|
||
# Box sandbox-scope template regardless of its own configuration, and
|
||
# the per-pipeline "Sandbox Scope" selector is locked in the web UI.
|
||
# Used by SaaS deployments to confine a tenant to a single shared
|
||
# sandbox (set to '{global}'). Empty string = no restriction.
|
||
force_box_session_id_template: ''
|
||
task_retention:
|
||
# Keep at most this many completed async task records in memory
|
||
completed_limit: 200
|
||
jwt:
|
||
expire: 604800
|
||
secret: ''
|
||
database:
|
||
use: sqlite
|
||
sqlite:
|
||
path: 'data/langbot.db'
|
||
postgresql:
|
||
host: '127.0.0.1'
|
||
port: 5432
|
||
user: 'postgres'
|
||
password: 'postgres'
|
||
database: 'postgres'
|
||
vdb:
|
||
use: chroma
|
||
qdrant:
|
||
url: ''
|
||
host: localhost
|
||
port: 6333
|
||
api_key: ''
|
||
seekdb:
|
||
mode: embedded # 'embedded' or 'server'
|
||
# Embedded mode options:
|
||
path: './data/seekdb'
|
||
database: 'langbot'
|
||
# Server mode options (used when mode='server'):
|
||
host: 'localhost'
|
||
port: 2881
|
||
user: 'root'
|
||
password: ''
|
||
tenant: '' # Optional, for OceanBase server
|
||
milvus:
|
||
uri: 'http://127.0.0.1:19530'
|
||
token: ''
|
||
db_name: ''
|
||
pgvector:
|
||
host: '127.0.0.1'
|
||
port: 5433
|
||
database: 'langbot'
|
||
user: 'postgres'
|
||
password: 'postgres'
|
||
storage:
|
||
use: local
|
||
cleanup:
|
||
# Enable periodic cleanup of local/S3 uploaded files and old log files
|
||
enabled: true
|
||
# Cleanup check interval in hours
|
||
check_interval_hours: 1
|
||
# Root-level uploaded files older than this will be deleted
|
||
uploaded_file_retention_days: 7
|
||
# LangBot log files older than this many days will be deleted
|
||
log_retention_days: 3
|
||
s3:
|
||
endpoint_url: ''
|
||
access_key_id: ''
|
||
secret_access_key: ''
|
||
region: 'us-east-1'
|
||
bucket: 'langbot-storage'
|
||
plugin:
|
||
enable: true
|
||
runtime_ws_url: 'ws://langbot_plugin_runtime:5400/control/ws'
|
||
enable_marketplace: true
|
||
display_plugin_debug_url: 'ws://localhost:5401/plugin/debug/ws'
|
||
binary_storage:
|
||
# Max bytes for a single plugin binary storage value
|
||
max_value_bytes: 10485760
|
||
monitoring:
|
||
auto_cleanup:
|
||
# Enable automatic cleanup of expired monitoring records
|
||
enabled: true
|
||
# Retention period in days, records older than this will be deleted
|
||
retention_days: 30
|
||
# Cleanup check interval in hours
|
||
check_interval_hours: 1
|
||
# Number of expired rows to delete per table batch
|
||
delete_batch_size: 1000
|
||
box:
|
||
# Master switch for the Box sandbox runtime. When false, LangBot does NOT
|
||
# attempt to connect to a remote Box runtime nor start a local stdio Box
|
||
# subprocess. Disabling Box also disables every feature that depends on it:
|
||
# the native sandbox tools (exec/read/write/edit/glob/grep), the activate
|
||
# skill tool, skill add/edit, and stdio-mode MCP servers. Skills can still
|
||
# be listed read-only and http/sse MCP servers continue to work.
|
||
enabled: true
|
||
backend: 'local' # 'local' (Docker/nsjail), 'docker', 'nsjail', or 'e2b'. Can be written via BOX__BACKEND.
|
||
runtime:
|
||
endpoint: '' # External Box Runtime base URL, e.g. 'ws://127.0.0.1:5410'. Leave empty for local auto-managed runtime.
|
||
local:
|
||
profile: 'default'
|
||
image: '' # Custom local sandbox image. Leave empty to use the profile default.
|
||
host_root: './data/box' # Base host directory for local workspace mounts. Docker deployments should override this with an absolute host path.
|
||
default_workspace: '' # Defaults to '<host_root>/default'. Relative paths are resolved under host_root.
|
||
skills_root: 'skills' # Box-owned skill package directory. Relative paths are resolved under host_root.
|
||
allowed_mount_roots: # Defaults to ['<host_root>'] when left empty.
|
||
- './data/box'
|
||
- '/tmp'
|
||
workspace_quota_mb: null # Optional disk quota override (>= 0). null = profile default.
|
||
e2b:
|
||
api_key: '' # Can also be set via E2B_API_KEY env var.
|
||
api_url: '' # Custom API URL for self-hosted deployments.
|
||
template: '' # Default template ID (e.g. 'base', 'python-3.11').
|
||
space:
|
||
# Space service URL for OAuth and API
|
||
url: 'https://space.langbot.app'
|
||
# Space API URL for model requests (MaaS)
|
||
models_gateway_api_url: 'https://api.langbot.cloud/v1'
|
||
# OAuth authorization page URL (user will be redirected here)
|
||
oauth_authorize_url: 'https://space.langbot.app/auth/authorize'
|
||
disable_models_service: false
|
||
disable_telemetry: false
|