export SERVER_IP=""
export DEPLOY_MODE=nomad # nomad or k8s
# --- Basic variables ---
export ENVIRONMENT=local
export DOMAIN_NAME=localhost
export GCP_ZONE=dc1
export CONSUL_ACL_TOKEN=
export NOMAD_ACL_TOKEN=
export SERVER_IPS="$SERVER_IP"
export NUM_SERVERS=1
export CONSUL_VERSION=1.21.4
export NOMAD_VERSION=1.10.4
export SANDBOX_STORAGE_BACKEND=redis
export ORCHESTRATOR_DIR=/home
# --- Database / Redis / Harbor ---
# Registry address required
export HARBOR_HTTP_PORT=2900
export HARBOR_HTTPS_PORT=30443
export HARBOR_DATA_DIR=/data/harbor  # 镜像仓库数据存储目录
export HARBOR_CERTS_DIR=/etc/harbor/certs
export REGISTRY_PROJECT=e2b-orchestration
# PostgreSQL address required
export POSTGRES_CONNECTION_STRING="postgresql://postgres:local@$SERVER_IP:5432/mydatabase?sslmode=disable"
export POSTGRES_DOCKER_IMAGE=postgres
export POSTGRES_PORT=5432
export POSTGRES_USER=postgres
export POSTGRES_PASSWORD=local
export POSTGRES_RESOURCES_CPU_COUNT=2000
export POSTGRES_RESOURCES_MEMORY_MB=2048
export POSTGRES_LIMITS_CPU_COUNT=4000
export POSTGRES_LIMITS_MEMORY_MB=4096
export REDIS_URL="redis.service.consul"
export REDIS_CLUSTER_URL=""
export MINIO_ENDPOINT="$SERVER_IP:9000"
export MINIO_ACCESS_KEY="minioadmin"
export MINIO_SECRET_KEY="minioadmin"

# --- Other secrets ---
# No longer use SUPABASE; connect to self-hosted PostgreSQL
export SUPABASE_JWT_SECRETS=
export POSTHOG_API_KEY=
# ANALYTICS_COLLECTOR is an internal component of api service; token is custom
export ANALYTICS_COLLECTOR_HOST=http://localhost:2901
export ANALYTICS_COLLECTOR_API_TOKEN=token
# Launch Darkly for experimental new features, not yet enabled
export LAUNCH_DARKLY_API_KEY=""
export API_ADMIN_TOKEN=dev_admin
# --- Mooncake ---
export GLOG_logtostderr="1"  # 节点本机IP
export MOONCAKE_MASTER_ADDR="141.61.17.196:50055"  # 集群Master地址（固定节点）
export MOONCAKE_METADATA_SERVER="http://141.61.17.196:8015/metadata"  # 元数据服务地址（固定节点）
export MOONCAKE_LOCAL_BUFFER_SIZE="536870912"  # 缓存、分片、协议相关配置
export MOONCAKE_GLOBAL_SEGMENT_SIZE="0"
export MOONCAKE_PROTOCOL="ub"
export MC_URMA_TRANS_MODE="RM"
export MOONCAKE_DEVICE_NAME="bonding_dev_0"
export MC_LOG_ENABLE="1"  # 日志配置
export MC_LOG_DIR="/var/log/mooncake"
export MC_LOG_LEVEL="TRACE"
export MC_STORE_LOCAL_HOT_CACHE_USE_SHM="0"  # 本地热缓存配置
export MC_STORE_LOCAL_HOT_BLOCK_SIZE="67108864"
export MC_STORE_LOCAL_HOT_ADMISSION_THRESHOLD="1"
export MC_SLICE_SIZE="1048576"  # 分片与工作线程配置
export MC_WORKERS_PER_CTX="8"
export MC_MAX_WR="4"

# Recommended to randomly generate; used as api access token
export SANDBOX_ACCESS_TOKEN_HASH_SEED=dadbb9c5-7c79-7bb1-f58c-e0fa61d49c57
export LOGS_COLLECTOR_ADDRESS=localhost:30006
export OTEL_COLLECTOR_GRPC_ENDPOINT=localhost:4317
export LOCAL_CLUSTER_ENDPOINT=localhost:3001
export API_PORT_NAME=api
export NOMAD_TOKEN=

# --- ClickHouse (optional) ---
export CLICKHOUSE_SERVER_COUNT=0   # Set 0 if not needed locally
export CLICKHOUSE_BACKUPS_BUCKET_NAME=
export CLICKHOUSE_USERNAME=e2b
export CLICKHOUSE_PASSWORD=clickity-clicky-click
export CLICKHOUSE_DATABASE=default
export CLICKHOUSE_VERSION=25.4
export CLICKHOUSE_RESOURCES_CPU_COUNT=40000
export CLICKHOUSE_RESOURCES_MEMORY_MB=40960
export CLICKHOUSE_SERVER_SECRET=123456789
export CLICKHOUSE_HOST=127.0.0.1

# --- Loki / Logs collector ---
export LOGS_COLLECTOR_PUBLIC_IP=127.0.0.1
export LOGS_COLLECTOR_VERSION=0.50.0-alpine

# --- docker-reverse-proxy ---
export HARBOR_HOST=$SERVER_IP:$HARBOR_HTTP_PORT
export HARBOR_PROJECT=e2b-orchestration
export HARBOR_USERNAME=admin
export HARBOR_PASSWORD=Harbor12345
export DOMAIN_NAME=domain_name
export DOCKER_REVERSE_PROXY_PORT_NAME=docker-reverse-proxy

# --- edge ---
export CLIENT_PROXY_COUNT=1
export EDGE_PROXY_PORT_NAME=session
export EDGE_API_PORT_NAME=edge-api
export CLIENT_PROXY_RESOURCES_CPU_COUNT=40000
export CLIENT_PROXY_RESOURCES_MEMORY_MB=40960
export CLIENT_PROXY_MAX_RESOURCES_MEMORY_MB=61440
export EDGE_API_SECRET=dadbb9c5-7c79-7bb1-f58c-e0fa61d49c57
export LOKI_URL=127.0.0.1:3100
export API_GRPC_ADDRESS=localhost:5009

# --- api ---
export API_RESOURCES_CPU_COUNT=20000
export API_RESOURCES_MEMORY_MB=20480
export API_LIMITS_CPU_COUNT=20000
export API_LIMITS_MEMORY_MB=40960

# --- loki ---
export LOKI_SERVICE_PORT_NAME=loki
export LOKI_BUCKET_NAME=default
export LOKI_RESOURCES_CPU_COUNT=40000
export LOKI_PROXY_RESOURCES_MEMORY_MB=40960
export LOKI_PROXY_MAX_RESOURCES_MEMORY_MB=61440
export LOKI_VERSION=2.9.3

# --- orchestrator ---
export ORCHESTRATOR_PORT_NAME=orchestrator
export ORCHESTRATOR_PROXY_PORT_NAME=orchestrator-proxy
export OTEL_TRACING_PRINT=false
export ENVD_TIMEOUT=60s
export TEMPLATE_BUCKET_NAME=e2b-dev-fc-templates
export ALLOW_SANDBOX_INTERNET=true
export SHARED_CHUNK_CACHE_PATH=
export DOMAIN_NAME=

# --- otel-collector ---
export OTEL_COLLECTOR_RESOURCES_CPU_COUNT=40000
export OTEL_COLLECTOR_PROXY_RESOURCES_MEMORY_MB=40960
export OTEL_COLLECTOR_PROXY_MAX_RESOURCES_MEMORY_MB=61440
export GRAFANA_USERNAME=
export GRAFANA_OTEL_COLLECTOR_TOKEN=
export GRAFANA_OTLP_URL=
export OTEL_COLLECTOR_VERSION=0.119.0


# --- redis ---
export REDIS_PORT_NAME=redis
export REDIS_VERSION=7.4.4-alpine

# --- template-manager ---
export BUILD_CACHE_BUCKET_NAME=e2b-dev-fc-cache
export E2B_FC_NETNS_EXEC_HELPER=/opt/e2b-infra/bin/fc-netns-exec
export E2B_USE_FC_NETNS_EXEC_HELPER=true
export TEMPLATE_MANAGER_RESOURCES_CPU_COUNT=2048
export TEMPLATE_MANAGER_RESOURCES_MEMORY_MB=24576
export TEMPLATE_MANAGER_LIMITS_CPU_COUNT=2048
export TEMPLATE_MANAGER_LIMITS_MEMORY_MB=24576

# --- Ports ---
export API_PORT=3000
export API_GRPC_PORT=5009
export EDGE_API_PORT=3001
export EDGE_PROXY_PORT=3002
export EDGE_HEALTH_PORT=3003
export ORCHESTRATOR_PORT=5008
export TEMPLATE_MANAGER_HOST=template-manager.service.consul:5008
export ORCHESTRATOR_PROXY_PORT=5007
export TEMPLATE_MANAGER_PORT=5008
export REDIS_PORT=6379
export DOCKER_REVERSE_PROXY_PORT=5000
export LOKI_SERVICE_PORT=3100
export LOGS_PROXY_PORT=30006
export LOGS_HEALTH_PROXY_PORT=44313
export OTEL_COLLECTOR_GRPC_PORT=4317
export CLICKHOUSE_SERVER_PORT=9010
export CLICKHOUSE_METRICS_PORT=9363
export DNS_PORT=5353

# --- Images ---
export API_DOCKER_IMAGE=api
export DB_MIGRATOR_DOCKER_IMAGE=db-migrator
export DOCKER_REVERSE_PROXY_DOCKER_IMAGE=docker-reverse-proxy
export CLIENT_PROXY_DOCKER_IMAGE=client-proxy
export BUSYBOX_IMAGE=busybox
export WEBHOOK_DOCKER_IMAGE=e2b-webhook
# e2b-webhook 开关：true 部署，false 不部署（默认）
export ENABLE_WEBHOOK=false

# Manual specification required for installation
export STORAGE_PROVIDER=Local
export ARTIFACTS_REGISTRY_PROVIDER=Local

export API_NODE_POOL=api
export CLICKHOUSE_NODE_POOL=api
export BUILD_NODE_POOL=api
