mirror of
https://github.com/vxcontrol/pentagi.git
synced 2026-08-24 12:06:36 +00:00
- Added new environment variables to `.env.example` for Neo4j memory and transaction settings, including `NEO4J_HEAP_INITIAL_SIZE`, `NEO4J_HEAP_MAX_SIZE`, `NEO4J_PAGECACHE_SIZE`, and `NEO4J_TRANSACTION_MAX`. - Updated `docker-compose-graphiti.yml` to mount Neo4j configuration and plugin directories, ensuring proper integration with the Graphiti stack. - Introduced static configuration files for Neo4j and APOC in the `examples/neo4j/conf` directory, providing a clear structure for user-editable settings. - Enhanced the README to document the new configuration options and directory structure for Neo4j, improving user guidance for setup and customization.
526 lines
16 KiB
Bash
526 lines
16 KiB
Bash
# PentAGI Environment Variables
|
||
|
||
## Core runtime
|
||
DEBUG=false
|
||
|
||
## DATA_DIR defaults to ./data (resolves to /opt/pentagi/data inside the image).
|
||
DATA_DIR=
|
||
|
||
## Optional namespace for instances sharing external resources — one PostgreSQL,
|
||
## one worker node, one Neo4j/Graphiti, one Langfuse (empty = standalone instance).
|
||
## Must match ^[a-z][a-z0-9_]{0,31}$; invalid value aborts startup.
|
||
## NOT derived from it, set per instance yourself: DATA_DIR (sharing it overwrites
|
||
## flow data), DOCKER_PORTS_BASE, listen ports, INSTALLATION_ID.
|
||
## See backend/docs/config.md -> "Multi-Instance Deployment (TENANT_ID)".
|
||
TENANT_ID=
|
||
|
||
## Base host port for per-flow sandbox port publishing (default 28000).
|
||
## Each instance owns [DOCKER_PORTS_BASE, DOCKER_PORTS_BASE+2000).
|
||
DOCKER_PORTS_BASE=
|
||
|
||
## For communication with PentAGI Cloud API
|
||
INSTALLATION_ID=
|
||
LICENSE_KEY=
|
||
|
||
## Allow to interact with user while executing tasks
|
||
ASK_USER=
|
||
|
||
## LLM Providers
|
||
OPEN_AI_KEY=
|
||
OPEN_AI_SERVER_URL=https://api.openai.com/v1
|
||
|
||
ANTHROPIC_API_KEY=
|
||
ANTHROPIC_SERVER_URL=https://api.anthropic.com/v1
|
||
|
||
## Google AI (Gemini) LLM provider
|
||
GEMINI_API_KEY=
|
||
GEMINI_SERVER_URL=https://generativelanguage.googleapis.com
|
||
|
||
## AWS Bedrock LLM provider
|
||
BEDROCK_REGION=us-east-1
|
||
BEDROCK_DEFAULT_AUTH=
|
||
BEDROCK_BEARER_TOKEN=
|
||
BEDROCK_ACCESS_KEY_ID=
|
||
BEDROCK_SECRET_ACCESS_KEY=
|
||
BEDROCK_SESSION_TOKEN=
|
||
BEDROCK_SERVER_URL=
|
||
BEDROCK_CONFIG_PATH=
|
||
|
||
## DeepSeek LLM provider
|
||
DEEPSEEK_API_KEY=
|
||
DEEPSEEK_SERVER_URL=https://api.deepseek.com
|
||
DEEPSEEK_PROVIDER=
|
||
|
||
## GLM (Zhipu AI) LLM provider
|
||
GLM_API_KEY=
|
||
GLM_SERVER_URL=https://api.z.ai/api/paas/v4
|
||
GLM_PROVIDER=
|
||
|
||
## Kimi (Moonshot) LLM provider
|
||
KIMI_API_KEY=
|
||
KIMI_SERVER_URL=https://api.moonshot.ai/v1
|
||
KIMI_PROVIDER=
|
||
|
||
## Qwen (Alibaba Cloud DashScope) LLM provider
|
||
QWEN_API_KEY=
|
||
QWEN_SERVER_URL=https://dashscope-us.aliyuncs.com/compatible-mode/v1
|
||
QWEN_PROVIDER=
|
||
|
||
## MiniMax LLM provider
|
||
MINIMAX_API_KEY=
|
||
MINIMAX_SERVER_URL=https://api.minimax.io/v1
|
||
MINIMAX_PROVIDER=
|
||
|
||
## Custom LLM provider
|
||
LLM_SERVER_URL=
|
||
LLM_SERVER_KEY=
|
||
LLM_SERVER_MODEL=
|
||
LLM_SERVER_PROVIDER=
|
||
LLM_SERVER_CONFIG_PATH=
|
||
LLM_SERVER_LEGACY_REASONING=
|
||
LLM_SERVER_PRESERVE_REASONING=
|
||
|
||
## Ollama LLM provider (Local Server or Cloud)
|
||
# Local: http://ollama-server:11434, Cloud: https://ollama.com
|
||
OLLAMA_SERVER_URL=
|
||
# Required for Ollama Cloud (https://ollama.com/settings/keys), leave empty for local
|
||
OLLAMA_SERVER_API_KEY=
|
||
OLLAMA_SERVER_MODEL=
|
||
OLLAMA_SERVER_CONFIG_PATH=
|
||
OLLAMA_SERVER_PULL_MODELS_TIMEOUT=
|
||
OLLAMA_SERVER_PULL_MODELS_ENABLED=
|
||
OLLAMA_SERVER_LOAD_MODELS_ENABLED=
|
||
|
||
## Embedding
|
||
EMBEDDING_URL=
|
||
EMBEDDING_KEY=
|
||
EMBEDDING_MODEL=
|
||
EMBEDDING_PROVIDER=
|
||
EMBEDDING_BATCH_SIZE=
|
||
EMBEDDING_MAX_TEXT_BYTES=
|
||
EMBEDDING_STRIP_NEW_LINES=
|
||
|
||
## Summarizer
|
||
SUMMARIZER_PRESERVE_LAST=
|
||
SUMMARIZER_USE_QA=
|
||
SUMMARIZER_SUM_MSG_HUMAN_IN_QA=
|
||
SUMMARIZER_LAST_SEC_BYTES=
|
||
SUMMARIZER_MAX_BP_BYTES=
|
||
SUMMARIZER_MAX_QA_SECTIONS=
|
||
SUMMARIZER_MAX_QA_BYTES=
|
||
SUMMARIZER_KEEP_QA_SECTIONS=
|
||
|
||
## Assistant
|
||
ASSISTANT_USE_AGENTS=
|
||
ASSISTANT_SUMMARIZER_PRESERVE_LAST=
|
||
ASSISTANT_SUMMARIZER_LAST_SEC_BYTES=
|
||
ASSISTANT_SUMMARIZER_MAX_BP_BYTES=
|
||
ASSISTANT_SUMMARIZER_MAX_QA_SECTIONS=
|
||
ASSISTANT_SUMMARIZER_MAX_QA_BYTES=
|
||
ASSISTANT_SUMMARIZER_KEEP_QA_SECTIONS=
|
||
|
||
## Execution Monitor Detector
|
||
EXECUTION_MONITOR_ENABLED=
|
||
EXECUTION_MONITOR_SAME_TOOL_LIMIT=
|
||
EXECUTION_MONITOR_TOTAL_TOOL_LIMIT=
|
||
|
||
## Agent execution tool calls limit
|
||
MAX_GENERAL_AGENT_TOOL_CALLS=
|
||
MAX_LIMITED_AGENT_TOOL_CALLS=
|
||
|
||
## Agent planning step for pentester, coder, installer
|
||
AGENT_PLANNING_STEP_ENABLED=
|
||
|
||
## HTTP proxy to use it in isolation environment
|
||
PROXY_URL=
|
||
|
||
## SSL/TLS Certificate Configuration
|
||
EXTERNAL_SSL_CA_PATH=
|
||
EXTERNAL_SSL_INSECURE=
|
||
|
||
## HTTP client timeout in seconds for external API calls (LLM providers, search tools, etc.)
|
||
## Default: 600 (10 minutes). Set to 0 to use the default.
|
||
HTTP_CLIENT_TIMEOUT=
|
||
|
||
## Default terminal tool timeout in seconds applied when an agent requests timeout=0 or a negative value.
|
||
## Default: 1200 (20 minutes). Range: 1–10800 (up to 3 hours). Values <= 0 or above 10800 are clamped to 10800 (agents always get a finite timeout).
|
||
TERMINAL_TOOL_TIMEOUT=
|
||
|
||
## Scraper URLs and settings
|
||
## For Docker (default):
|
||
SCRAPER_PUBLIC_URL=
|
||
SCRAPER_PRIVATE_URL=https://someuser:somepass@scraper/
|
||
## For Podman rootless, use: SCRAPER_PRIVATE_URL=http://someuser:somepass@scraper:3000/
|
||
## See README.md "Running PentAGI with Podman" section for details
|
||
LOCAL_SCRAPER_USERNAME=someuser
|
||
LOCAL_SCRAPER_PASSWORD=somepass
|
||
LOCAL_SCRAPER_MAX_CONCURRENT_SESSIONS=10
|
||
|
||
## PentAGI server settings (docker-compose.yml)
|
||
PENTAGI_LISTEN_IP=
|
||
PENTAGI_LISTEN_PORT=
|
||
PENTAGI_DATA_DIR=
|
||
PENTAGI_SSL_DIR=
|
||
PENTAGI_OLLAMA_DIR=
|
||
PENTAGI_DOCKER_SOCKET=
|
||
PENTAGI_DOCKER_CERT_PATH=
|
||
PENTAGI_LLM_SERVER_CONFIG_PATH=
|
||
PENTAGI_OLLAMA_SERVER_CONFIG_PATH=
|
||
PENTAGI_BEDROCK_CONFIG_PATH=
|
||
|
||
## PentAGI security settings
|
||
PUBLIC_URL=https://localhost:8443
|
||
CORS_ORIGINS=https://localhost:8443
|
||
COOKIE_SIGNING_SALT=salt # change this to improve security
|
||
|
||
## PentAGI internal server settings (inside the container)
|
||
STATIC_DIR=
|
||
STATIC_URL=
|
||
SERVER_PORT=8443
|
||
SERVER_HOST=0.0.0.0
|
||
SERVER_SSL_CRT=
|
||
SERVER_SSL_KEY=
|
||
SERVER_USE_SSL=true
|
||
|
||
## Go pprof HTTP listener (empty = disabled). Use host:port, e.g. :7777.
|
||
## Instances sharing a host network need distinct addresses.
|
||
PPROF_ADDR=
|
||
|
||
## OAuth google
|
||
OAUTH_GOOGLE_CLIENT_ID=
|
||
OAUTH_GOOGLE_CLIENT_SECRET=
|
||
|
||
## OAuth github
|
||
OAUTH_GITHUB_CLIENT_ID=
|
||
OAUTH_GITHUB_CLIENT_SECRET=
|
||
|
||
## DuckDuckGo search engine
|
||
DUCKDUCKGO_ENABLED=
|
||
DUCKDUCKGO_REGION=
|
||
DUCKDUCKGO_SAFESEARCH=
|
||
DUCKDUCKGO_TIME_RANGE=
|
||
|
||
## Sploitus search engine API
|
||
SPLOITUS_ENABLED=
|
||
|
||
## Google search engine API
|
||
GOOGLE_API_KEY=
|
||
GOOGLE_CX_KEY=
|
||
GOOGLE_LR_KEY=
|
||
|
||
## Traversaal search engine API
|
||
TRAVERSAAL_API_KEY=
|
||
|
||
## Tavily search engine API
|
||
TAVILY_API_KEY=
|
||
|
||
## Firecrawl search engine API
|
||
## FIRECRAWL_API_URL is optional; leave the default for the cloud API or point it at a self-hosted instance
|
||
FIRECRAWL_API_KEY=
|
||
FIRECRAWL_API_URL=
|
||
|
||
## Perplexity search engine API
|
||
PERPLEXITY_API_KEY=
|
||
PERPLEXITY_MODEL=
|
||
PERPLEXITY_CONTEXT_SIZE=
|
||
|
||
## SEARXNG search engine API
|
||
SEARXNG_URL=
|
||
SEARXNG_CATEGORIES=general
|
||
SEARXNG_LANGUAGE=
|
||
SEARXNG_SAFESEARCH=0
|
||
SEARXNG_TIME_RANGE=
|
||
SEARXNG_TIMEOUT=
|
||
|
||
## Web search internal analytics engine (optional fallback for the web_search tool)
|
||
WEB_SEARCH_INTERNAL_ENABLED=false
|
||
WEB_SEARCH_INTERNAL_MAX_SITES=5
|
||
WEB_SEARCH_INTERNAL_MAX_SITE_BYTES=10240
|
||
|
||
## Langfuse observability settings
|
||
LANGFUSE_BASE_URL=
|
||
LANGFUSE_PROJECT_ID=
|
||
LANGFUSE_PUBLIC_KEY=
|
||
LANGFUSE_SECRET_KEY=
|
||
|
||
## OpenTelemetry observability settings
|
||
OTEL_HOST=
|
||
|
||
## Docker client settings to run primary terminal container
|
||
DOCKER_HOST=
|
||
DOCKER_TLS_VERIFY=
|
||
DOCKER_CERT_PATH=
|
||
|
||
## Docker settings inside primary terminal container
|
||
# SECURITY NOTE: DOCKER_INSIDE=true mounts the host Docker socket into every
|
||
# sandbox container so agents can launch sub-containers (Docker-in-Docker).
|
||
# This grants any process inside the sandbox unrestricted access to the Docker
|
||
# API, which can be exploited via prompt injection to escape the sandbox and
|
||
# reach the host (issue #337). Only enable this when DinD is required and you
|
||
# understand the risk. Consider using a least-privilege socket proxy such as
|
||
# https://github.com/Tecnativa/docker-socket-proxy instead of the raw socket.
|
||
DOCKER_INSIDE=false # enable to use docker socket (see security note above; default false)
|
||
DOCKER_NET_ADMIN=true # enable to use net_admin capability
|
||
DOCKER_SOCKET=/var/run/docker.sock # path on host machine
|
||
|
||
## Docker daemon the WORKER CONTAINER itself talks to (only used when DOCKER_INSIDE=true).
|
||
## Injected into the sandbox as DOCKER_HOST / DOCKER_TLS_VERIFY / DOCKER_CERT_PATH.
|
||
## Setting DOCKER_INSIDE_HOST also stops auto-detecting and mounting the host socket,
|
||
## so an agent reaches only the daemon you designate — unless DOCKER_SOCKET is set
|
||
## explicitly, which still takes precedence and is mounted as before.
|
||
## DOCKER_INSIDE_CERT_PATH is resolved on the WORKER NODE and bind-mounted read-only
|
||
## at the same path inside the container.
|
||
DOCKER_INSIDE_HOST=
|
||
DOCKER_INSIDE_TLS_VERIFY=
|
||
DOCKER_INSIDE_CERT_PATH=
|
||
|
||
DOCKER_NETWORK=
|
||
DOCKER_WORK_DIR=
|
||
DOCKER_PUBLIC_IP=0.0.0.0 # public ip of host machine
|
||
DOCKER_DEFAULT_IMAGE=
|
||
DOCKER_DEFAULT_IMAGE_FOR_PENTEST=
|
||
|
||
# Postgres (pgvector) settings
|
||
PENTAGI_POSTGRES_USER=postgres
|
||
PENTAGI_POSTGRES_PASSWORD=postgres # change this to improve security
|
||
PENTAGI_POSTGRES_DB=pentagidb
|
||
|
||
## Postgres (pgvector) connection pool settings
|
||
DATABASE_MAX_OPEN_CONNS=
|
||
DATABASE_MAX_IDLE_CONNS=
|
||
DATABASE_VECTOR_MAX_CONNS=
|
||
|
||
## Postgres schema handling, only used when TENANT_ID is set (Supabase needs
|
||
## DATABASE_EXTENSIONS_SCHEMA=extensions; its pooler may need the other one).
|
||
## See backend/docs/config.md -> "Multi-Instance Deployment (TENANT_ID)".
|
||
DATABASE_EXTENSIONS_SCHEMA=
|
||
DATABASE_SEARCH_PATH_VIA_OPTIONS=
|
||
|
||
## Graphiti knowledge graph settings
|
||
## Set GRAPHITI_ENABLED=true and GRAPHITI_URL=http://graphiti:8000 to enable embedded Graphiti
|
||
GRAPHITI_ENABLED=false
|
||
GRAPHITI_TIMEOUT=30
|
||
GRAPHITI_URL=
|
||
GRAPHITI_CPUS=2.0
|
||
GRAPHITI_MEMORY=2G
|
||
|
||
## Graphiti LLM provider preset: openai, gemini, custom, or litellm.
|
||
## Model and request settings are loaded from examples/graphiti/<provider>.yaml.
|
||
## OpenAI, Gemini, and custom providers reuse the corresponding credentials above.
|
||
## Keep this set to llm_configs only when the adjacent graphiti directory is installed.
|
||
## Older .env files omit it, so a newer compose file cannot shadow built-in configs
|
||
## with an empty host directory.
|
||
## Override the host path for development deployments when needed.
|
||
GRAPHITI_CONFIG_PATH=./graphiti
|
||
GRAPHITI_CONFIG_DIR=llm_configs
|
||
GRAPHITI_LLM_CLIENT_TYPE=openai
|
||
GRAPHITI_LITELLM_BASE_URL=
|
||
GRAPHITI_LITELLM_API_KEY=
|
||
|
||
## Use the shared EMBEDDING_URL, EMBEDDING_KEY, and EMBEDDING_MODEL settings above.
|
||
## Graphiti requires an OpenAI-compatible embedding endpoint. When disabled,
|
||
## Graphiti uses the selected LLM provider credentials instead.
|
||
GRAPHITI_SEPARATE_EMBEDDING=false
|
||
|
||
## Graphiti runtime and logging
|
||
GRAPHITI_SEMAPHORE_LIMIT=20
|
||
GRAPHITI_TELEMETRY_ENABLED=false
|
||
GRAPHITI_LOG_FORMAT=json
|
||
GRAPHITI_LOG_LEVEL=INFO
|
||
GRAPHITI_LOG_STDOUT=events
|
||
GRAPHITI_FLOW_LOGGER_WARN_COUNT=256
|
||
GRAPHITI_DEBUG_RUNTIME_RESOURCES=false
|
||
GRAPHITI_SEARCH_SCOPE=flowid
|
||
|
||
## Graphiti ingestion policy and worker settings
|
||
GRAPHITI_INGEST_POLICY_RULES='{"graphiti_search":"REJECT","tool_execution_terminal":"PROCESS","tool_execution_file":"PROCESS"}'
|
||
GRAPHITI_INGEST_POLICY_FIELD=both
|
||
GRAPHITI_INGEST_POLICY_DEFAULT_ACTION=SKIP_LLM
|
||
GRAPHITI_INGEST_USE_GROUP_ACTORS=true
|
||
GRAPHITI_INGEST_WORKER_COUNT=16
|
||
GRAPHITI_INGEST_LOCK_BY_GROUP_ID=true
|
||
GRAPHITI_INGEST_TASK_MAX_RETRIES=1
|
||
GRAPHITI_INGEST_TASK_RETRY_DELAY_SEC=2.0
|
||
GRAPHITI_INGEST_TASK_TIMEOUT_SEC=0
|
||
GRAPHITI_INGEST_QUEUE_MAX_SIZE=0
|
||
GRAPHITI_INGEST_DEAD_LETTER_ENABLED=false
|
||
|
||
## Graphiti extraction and graph-linking settings
|
||
GRAPHITI_TAXONOMY_LAYER_PROFILE=STRUCTURAL,EVIDENCE,PROGRESS,ATTEMPT
|
||
GRAPHITI_USE_COMBINED_FULL_EXTRACTION=true
|
||
GRAPHITI_USE_COMBINED_EXTRACTION=true
|
||
GRAPHITI_COMBINED_FULL_GATING_ENABLED=true
|
||
GRAPHITI_COMBINED_DIAGNOSTIC_SAMPLES=false
|
||
GRAPHITI_ANCHOR_NODE_MODE=smart
|
||
GRAPHITI_ANCHOR_NODE_LIMIT=25
|
||
GRAPHITI_ANCHOR_MASS_TYPE_LIMIT=10
|
||
GRAPHITI_ANCHOR_QUERY_TIMEOUT=10
|
||
|
||
# Neo4j settings (used by Graphiti stack)
|
||
NEO4J_USER=neo4j
|
||
NEO4J_DATABASE=neo4j
|
||
NEO4J_PASSWORD=devpassword # change this to improve security
|
||
NEO4J_URI=bolt://neo4j:7687
|
||
NEO4J_CPUS=4.0
|
||
NEO4J_MEMORY=4G
|
||
## /dev/shm is a separate limit but its actual usage counts toward NEO4J_MEMORY.
|
||
NEO4J_SHM_SIZE=4g
|
||
NEO4J_NOFILE=65536
|
||
## JVM heap/page cache sizing; NEO4J_CPUS/NEO4J_MEMORY only cap the container. Defaults favor
|
||
## heap over page cache for a low write-throughput deployment with occasional wide reads.
|
||
NEO4J_HEAP_INITIAL_SIZE=2G
|
||
NEO4J_HEAP_MAX_SIZE=2G
|
||
NEO4J_PAGECACHE_SIZE=1G
|
||
## Caps a single transaction so one runaway query fails cleanly instead of exhausting heap.
|
||
NEO4J_TRANSACTION_MAX=1G
|
||
NEO4J_BOLT_ADVERTISED_ADDRESS=
|
||
## Set only when a reverse proxy in front of Neo4j Browser strips/rewrites the Host
|
||
## header (so the dynamic Host-header-based advertised address is wrong); format host:port.
|
||
NEO4J_HTTP_ADVERTISED_ADDRESS=
|
||
|
||
## Host directory with static, non-.env-tunable Neo4j/APOC settings and the
|
||
## pinned APOC plugin jar (conf/ and plugins/ subdirectories)
|
||
NEO4J_DIR=./neo4j
|
||
|
||
## PentAGI image settings
|
||
PENTAGI_IMAGE=
|
||
|
||
## Scraper network settings
|
||
## Default ports: SCRAPER_LISTEN_IP=127.0.0.1, SCRAPER_LISTEN_PORT=9443
|
||
## Note: These settings don't need to change for Podman rootless
|
||
SCRAPER_LISTEN_IP=
|
||
SCRAPER_LISTEN_PORT=
|
||
|
||
## Postgres network settings
|
||
PGVECTOR_LISTEN_IP=
|
||
PGVECTOR_LISTEN_PORT=
|
||
|
||
## Postgres Exporter network settings
|
||
POSTGRES_EXPORTER_LISTEN_IP=
|
||
POSTGRES_EXPORTER_LISTEN_PORT=
|
||
|
||
|
||
# Langfuse Environment Variables
|
||
|
||
## Langfuse server settings
|
||
LANGFUSE_LISTEN_IP=
|
||
LANGFUSE_LISTEN_PORT=
|
||
LANGFUSE_NEXTAUTH_URL=
|
||
|
||
## Langfuse Postgres
|
||
LANGFUSE_POSTGRES_USER=postgres
|
||
LANGFUSE_POSTGRES_PASSWORD=postgres # change this to improve security
|
||
LANGFUSE_POSTGRES_DB=langfuse
|
||
|
||
## Langfuse Clickhouse
|
||
LANGFUSE_CLICKHOUSE_USER=clickhouse
|
||
LANGFUSE_CLICKHOUSE_PASSWORD=clickhouse # change this to improve security
|
||
LANGFUSE_CLICKHOUSE_URL=http://langfuse-clickhouse:8123
|
||
LANGFUSE_CLICKHOUSE_MIGRATION_URL=clickhouse://langfuse-clickhouse:9000
|
||
LANGFUSE_CLICKHOUSE_CLUSTER_ENABLED=false
|
||
|
||
## Langfuse S3
|
||
LANGFUSE_S3_BUCKET=langfuse
|
||
LANGFUSE_S3_REGION=auto
|
||
LANGFUSE_S3_ACCESS_KEY_ID=accesskey # change this to improve security
|
||
LANGFUSE_S3_SECRET_ACCESS_KEY=secretkey # change this to improve security
|
||
LANGFUSE_S3_ENDPOINT=http://langfuse-minio:9000
|
||
LANGFUSE_S3_FORCE_PATH_STYLE=true
|
||
LANGFUSE_S3_EVENT_UPLOAD_PREFIX=events/
|
||
LANGFUSE_S3_MEDIA_UPLOAD_PREFIX=media/
|
||
LANGFUSE_S3_BATCH_EXPORT_ENABLED=true
|
||
|
||
## Langfuse Redis
|
||
LANGFUSE_REDIS_HOST=langfuse-redis
|
||
LANGFUSE_REDIS_PORT=6379
|
||
LANGFUSE_REDIS_AUTH=redispassword # change this to improve security
|
||
LANGFUSE_REDIS_TLS_ENABLED=false
|
||
LANGFUSE_REDIS_TLS_CA=
|
||
LANGFUSE_REDIS_TLS_CERT=
|
||
LANGFUSE_REDIS_TLS_KEY=
|
||
|
||
## Langfuse web app security settings
|
||
LANGFUSE_SALT=salt # change this to improve security
|
||
LANGFUSE_ENCRYPTION_KEY=0000000000000000000000000000000000000000000000000000000000000000 # change this to improve security
|
||
|
||
## Langfuse web app nextauth settings
|
||
LANGFUSE_NEXTAUTH_URL=http://localhost:4000
|
||
LANGFUSE_NEXTAUTH_SECRET=secret # change this to improve security
|
||
|
||
## Langfuse extra settings
|
||
LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES=true
|
||
LANGFUSE_TELEMETRY_ENABLED=false
|
||
LANGFUSE_LOG_LEVEL=info
|
||
|
||
## Langfuse init settings
|
||
LANGFUSE_INIT_ORG_ID=ocm47619l0000872mcd2dlbqwb
|
||
LANGFUSE_INIT_ORG_NAME=PentAGI Org
|
||
LANGFUSE_INIT_PROJECT_ID=cm47619l0000872mcd2dlbqwb
|
||
LANGFUSE_INIT_PROJECT_NAME=PentAGI
|
||
LANGFUSE_INIT_PROJECT_PUBLIC_KEY=pk-lf-00000000-0000-0000-0000-000000000000 # change this to improve security
|
||
LANGFUSE_INIT_PROJECT_SECRET_KEY=sk-lf-00000000-0000-0000-0000-000000000000 # change this to improve security
|
||
LANGFUSE_INIT_USER_EMAIL=admin@pentagi.com
|
||
LANGFUSE_INIT_USER_NAME=admin
|
||
LANGFUSE_INIT_USER_PASSWORD=password # change this to improve security
|
||
|
||
## Langfuse SDK sync settings
|
||
LANGFUSE_SDK_CI_SYNC_PROCESSING_ENABLED=false
|
||
LANGFUSE_READ_FROM_POSTGRES_ONLY=false
|
||
LANGFUSE_READ_FROM_CLICKHOUSE_ONLY=true
|
||
LANGFUSE_RETURN_FROM_CLICKHOUSE=true
|
||
|
||
## Langfuse ingestion tuning
|
||
LANGFUSE_INGESTION_QUEUE_DELAY_MS=
|
||
LANGFUSE_INGESTION_CLICKHOUSE_WRITE_INTERVAL_MS=
|
||
LANGFUSE_INGESTION_CLICKHOUSE_WRITE_BATCH_SIZE=
|
||
LANGFUSE_INGESTION_CLICKHOUSE_MAX_ATTEMPTS=
|
||
|
||
## Langfuse email
|
||
LANGFUSE_EMAIL_FROM_ADDRESS=
|
||
LANGFUSE_SMTP_CONNECTION_URL=
|
||
|
||
## Langfuse optional Azure blob
|
||
LANGFUSE_USE_AZURE_BLOB=false
|
||
|
||
## Langfuse license settings
|
||
LANGFUSE_EE_LICENSE_KEY=
|
||
|
||
## Langfuse OpenTelemetry settings
|
||
LANGFUSE_OTEL_EXPORTER_OTLP_ENDPOINT=
|
||
LANGFUSE_OTEL_SERVICE_NAME=
|
||
|
||
## Langfuse custom oauth2 settings
|
||
LANGFUSE_AUTH_CUSTOM_CLIENT_ID=
|
||
LANGFUSE_AUTH_CUSTOM_CLIENT_SECRET=
|
||
LANGFUSE_AUTH_CUSTOM_ISSUER=
|
||
LANGFUSE_AUTH_CUSTOM_NAME=PentAGI
|
||
LANGFUSE_AUTH_CUSTOM_SCOPE=openid email profile
|
||
LANGFUSE_AUTH_CUSTOM_CLIENT_AUTH_METHOD=client_secret_post
|
||
LANGFUSE_AUTH_CUSTOM_ALLOW_ACCOUNT_LINKING=true
|
||
|
||
## Langfuse auth settings
|
||
LANGFUSE_AUTH_DISABLE_SIGNUP=false # disable signup if PentAGI OAuth2 is used
|
||
LANGFUSE_AUTH_SESSION_MAX_AGE=240
|
||
|
||
## Langfuse allowed organization creators
|
||
LANGFUSE_ALLOWED_ORGANIZATION_CREATORS=admin@pentagi.com
|
||
|
||
## Langfuse default settings for new users
|
||
LANGFUSE_DEFAULT_ORG_ID=ocm47619l0000872mcd2dlbqwb
|
||
LANGFUSE_DEFAULT_PROJECT_ID=cm47619l0000872mcd2dlbqwb
|
||
LANGFUSE_DEFAULT_ORG_ROLE=VIEWER
|
||
LANGFUSE_DEFAULT_PROJECT_ROLE=VIEWER
|
||
|
||
|
||
# Observability Environment Variables
|
||
|
||
## Observability server settings
|
||
GRAFANA_LISTEN_IP=
|
||
GRAFANA_LISTEN_PORT=
|
||
|
||
## OpenTelemetry server settings
|
||
OTEL_GRPC_LISTEN_IP=
|
||
OTEL_GRPC_LISTEN_PORT=
|
||
OTEL_HTTP_LISTEN_IP=
|
||
OTEL_HTTP_LISTEN_PORT=
|