netx/.env.example
oliver fa577aa3bd Adopt production-safe runtime defaults and forwarder retry limits.
Lower CLI/WebCRT/audit caps, log startup capacity warnings, and bound oclaw requeues so reconnect storms cannot thrash memory.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 18:08:28 +08:00

83 lines
3.9 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NETX_DATABASE_URL=postgresql+psycopg://netx:netx@127.0.0.1:5432/netx
# Fernet key for managed NE passwords (python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())")
NETX_CREDENTIAL_SECRET_KEY=
NETX_NE_CONNECT_MAX_WORKERS=5
NETX_NE_CONNECT_TIMEOUT_SEC=30
# Managed NE CLI: max commands per exec request (default 5, hard cap 50). Lab can set 10+.
NETX_NE_EXEC_MAX_COMMANDS=5
NETX_HOST=127.0.0.1
NETX_PORT=8890
NETX_VENDOR=ZTE
NETX_SOURCE_TYPE=gateway_export_excel
NETX_PARSER_CONFIG=netx_api/config/parsers/zte_alarm_monitor_v1.yaml
NETX_OCLAW_ANALYZE_URL=http://127.0.0.1:8787/admin/api/ops-ai/analyze-sync
NETX_OCLAW_ANALYZE_TOKEN=
NETX_OCLAW_HEALTH_URL=http://127.0.0.1:8787/admin/api/ops-ai/health
NETX_OCLAW_ALARM_WS_ENABLED=false
NETX_OCLAW_ALARM_WS_URL=ws://127.0.0.1:8787/ws/netx-bridge
# 告警 WSS 鉴权与 NETX_OCLAW_ANALYZE_TOKEN 共用(OClaw 侧 OCLAW_OPS_AI_SHARED_TOKEN)
NETX_UME_BASE_URL=https://10.227.157.143:18014
NETX_UME_USERNAME=
NETX_UME_PASSWORD=
NETX_UME_AUTH_HEADER=accessToken
NETX_UME_CONTENT_TYPE=application/yang-data+json;charset=UTF-8
NETX_UME_TOKEN_TTL_S=1800
NETX_UME_TOKEN_REFRESH_SKEW_S=60
NETX_UME_TOKEN_PATH=/restconf/operations/zte-security:oauth_token
NETX_UME_TOKEN_HANDSHAKE_PATH=/restconf/operations/zte-security:oauth_handshake
NETX_UME_TOKEN_LOGOUT_PATH=/restconf/operations/zte-security:oauth_token
NETX_UME_NE_PATH=/restconf/data/zte-resources-module:network-elements
NETX_UME_ALARMS_PATH=/restconf/data/zte-alarms:alarms/alarm-list
NETX_UME_SYNC_ALARMS_CURRENT_ENABLED=true
NETX_UME_SYNC_ALARMS_CURRENT_INTERVAL_S=18000
NETX_UME_SYNC_ALARMS_CURRENT_SKIP_WHEN_WS=true
NETX_UME_STARTUP_SYNC_ALARMS_BEFORE_WS=true
NETX_UME_ALARM_CLEARED_TOMBSTONE_S=300
NETX_UME_ALARM_WS_ENABLED=true
NETX_UME_NOTIFICATION_ESTABLISH_PATH=/restconf/operations/zte-notifications:establish-subscription
NETX_UME_NOTIFICATION_DELETE_PATH=/restconf/operations/zte-notifications:delete-subscription
NETX_UME_NOTIFICATION_TOPIC=ALARM
# TLS verify for UME (default true). Set false only for lab self-signed certs.
# NETX_UME_VERIFY_TLS=true
# Auth (lab defaults: admin/admin123 + data/auth/mcp_token)
# NETX_AUTH_ENABLED=true
# Leave NETX_AUTH_SECRET empty to auto-create data/auth/jwt_secret on first boot.
# NETX_AUTH_SECRET=
# NETX_AUTH_SECRET_FILE=data/auth/jwt_secret
# NETX_BOOTSTRAP_ADMIN_USERNAME=admin
# NETX_BOOTSTRAP_ADMIN_PASSWORD=admin123
# NETX_API_TOKEN= # MCP: leave empty to auto-read data/auth/mcp_token
# API docs (/docs, /redoc, /openapi.json); default false. Lab: set true.
# NETX_DOCS_ENABLED=true
# NETX_ALLOW_INSECURE_DEFAULTS=false
# Schema: Alembic auto-upgrades on API start (defaults on). Override only if needed:
# NETX_ALEMBIC_UPGRADE_ON_START=false
# NETX_SKIP_LEGACY_STARTUP_DDL=false
# NETX_SQL_READONLY_DATABASE_URL=postgresql+psycopg://netx_ro:xxx@127.0.0.1:5432/netx
# Device collectors run inline with the API by default (frontend+backend start is enough).
# Production split only: NETX_RUN_INLINE_SCHEDULERS=false and run `python -m netx_api.worker`
# NETX_RUN_INLINE_SCHEDULERS=false
# --- Production-recommended capacity (defaults in Settings already match these) ---
# NETX_DB_POOL_SIZE=25
# NETX_DB_MAX_OVERFLOW=15
# NETX_DB_POOL_RECYCLE_SEC=1800
# NETX_DB_POOL_TIMEOUT_SEC=30
# NETX_CLI_MAX_CONCURRENT=12
# NETX_CLI_FEATURE_HARD_CAP=16
# NETX_CLI_TIMEOUT_POOL_WORKERS=12
# NETX_PORT_TRAFFIC_DISPATCH_WORKERS=3
# NETX_NE_CONNECT_MAX_WORKERS=4
# NETX_NE_COLLECT_MAX_WORKERS=4
# NETX_NE_COLLECT_RUN_TIMEOUT_CAP_SEC=480
# NETX_NE_COLLECT_MAX_OUTPUT_BYTES=4194304
# NETX_WEBCRT_MAX_SESSIONS=12
# NETX_WEBCRT_KEEPALIVE_SEC=30
# NETX_WEBCRT_OUT_QUEUE_MAX=1500
# NETX_WEBCRT_SESSION_LOG_MAX_BYTES=2097152
# NETX_WEBCRT_SFTP_MAX_FILE_BYTES=268435456
# NETX_AUDIT_ASYNC=true
# NETX_AUDIT_SAMPLE_N=10
# NETX_AUDIT_QUEUE_MAX=2000
# NETX_OCLAW_FORWARD_QUEUE_MAX=2000
# NETX_OCLAW_FORWARD_MAX_RETRIES=3
# Lab-only raises (optional): higher CLI/DB when bastion and Postgres are sized for it.