Files
insar-management-system-v2/.env.example
T
2026-06-30 15:54:26 +08:00

441 lines
17 KiB
Bash

# =============================================================================
# InSAR Management System v2 - 示例环境变量
# =============================================================================
# 说明:
# 1. 复制为 .env 后按现场路径修改。
# 2. 根目录 .env 是后端与前端共同的事实来源。
# 3. 路径请使用 Windows 绝对路径;WSL 中的 Python / 脚本使用 Linux 路径。
# =============================================================================
# -----------------------------------------------------------------------------
# 数据库与认证
# -----------------------------------------------------------------------------
DATABASE_URL=postgresql+asyncpg://postgres:your_password@localhost:5432/insar_management
INIT_ADMIN_USERNAME=admin
INIT_ADMIN_PASSWORD=change_me
INIT_ADMIN_RESET_PASSWORD=false
DB_SCHEMA_RESET_ON_MISMATCH=false
DB_SCHEMA_RESET_CONFIRM=false
AUTH_SESSION_COOKIE_NAME=ims_session
AUTH_COOKIE_SAMESITE=lax
AUTH_COOKIE_SECURE=false
AUTH_PBKDF2_ITERATIONS=240000
AUTH_LOGIN_MAX_FAILURES=5
AUTH_LOGIN_WINDOW_SECONDS=300
AUTH_LOGIN_LOCK_SECONDS=600
TRUSTED_PROXY_IPS=127.0.0.1
# -----------------------------------------------------------------------------
# 服务启动
# -----------------------------------------------------------------------------
PORT=18000
BACKEND_BIND_HOST=127.0.0.1
UVICORN_LOG_LEVEL=info
DASHBOARD_STATS_CACHE_TTL_SECONDS=120
PYTHON_PATH=C:\ProgramData\anaconda3\envs\InSAR\python.exe
CONDA_EXE=
CONDA_ENV_NAME=
NGINX_PATH=C:\nginx\nginx.exe
NGINX_HEALTH_URL=http://127.0.0.1/
# Optional LAN client whitelist for the main nginx entry.
# Empty means allow all. Use semicolon/comma/space-separated IPs or CIDRs, for example:
# NGINX_ALLOWED_CLIENT_IPS=192.168.1.10;192.168.1.23;192.168.1.0/24
NGINX_ALLOWED_CLIENT_IPS=
LICENSE_PATH=
CORS_ORIGINS=http://127.0.0.1:5173,http://localhost
CORS_ALLOW_CREDENTIALS=true
CORS_STRICT_MODE=false
ALLOWED_EXPORT_DIRS=
# -----------------------------------------------------------------------------
# 源数据目录
# -----------------------------------------------------------------------------
UNPACK_SOURCE_DIRS=
TASK_POOL_ROOT=D:\Task_Pool
DINSAR_TASK_POOL_ROOT=D:\Task_Pool\DInSAR
SBAS_TASK_POOL_ROOT=D:\Task_Pool\SBAS
DATA_DISTRIBUTION_ROOT=D:\Task_Pool\Data_Distribution
GF3_TASK_POOL_ROOT=D:\GaoFen3_Pool\task_pool
SOURCE_PRODUCT_DIRS=D:\LuTan1_Image_Pool_Zip;D:\Sentinel1_Image_Pool_ZIP
ASSET_SCAN_PARSE_WORKERS=16
ASSET_SCAN_PARSE_INFLIGHT=64
ASSET_SCAN_PARSE_TIMEOUT_SECONDS=600
ASSET_SCAN_SKIP_UNCHANGED_FAILURES=true
ASSET_SCAN_DB_BATCH_SIZE=50
SENTINEL1_STORAGE_DIRS=
INSAR_STORAGE_DIRS=
MONITOR_RADAR_DIRS=
MONITOR_DINSAR_DIRS=D:\production_results\dinsar
ORBIT_SOURCE_DIRS=D:\LT1_data_lsarorbit;D:\Sentinel1_EOF_Pool
MONITOR_ORBIT_DIR=D:\LT1_data_lsarorbit
GF3_ARCHIVE_SOURCE_DIRS=D:\GaoFen3_Pool\archives
GF3_ARCHIVE_EXTS=.zip,.tar,.tar.gz,.tgz
GF3_UNPACK_DELETE_ARCHIVE=false
GF3_LEGACY_GDAL_ENABLED=false
GF3_SOURCE_DIRS=
GF3_SARSCAPE_NATIVE_DIRS=D:\GaoFen3_Pool\native_geo
GF3_STORAGE_DIRS=D:\GaoFen3_Pool\catalog
GF3_SARSCAPE_RUNTIME_DIR=D:\GaoFen3_Pool\task_pool\sarscape_runtime
GF3_SARSCAPE_WRAPPER_EXE=D:\Code\Insar_management_system_v2\third_party\GF3_L1A_To_L2_pipeline\dist\windows\gf3wrapper.exe
GF3_SARSCAPE_IDLRT_PATH=C:\Program Files\Harris\ENVI56\IDL88\bin\bin.x86_64\idlrt.exe
GF3_SARSCAPE_DEM_PATH=D:\DEM\SRTMDEM_RSP_SARscape
GF3_SARSCAPE_POLARIZATIONS=HH,HV
GF3_SARSCAPE_KEEP_EXTRACTED=true
GF3_SARSCAPE_AUTO_STANDARDIZE=false
GF3_SARSCAPE_CLEAN_AFTER_SUCCESS=true
GF3_SARSCAPE_PRODUCE_TIMEOUT_SECONDS=0
HAZARD_POINTS_DIR=D:\Code\Insar_management_system_v2\backend\Point
HAZARD_POINTS_FILENAME=Point.shp
AOI_REGION_INDEX_FILE=
AOI_REGION_GEOJSON_FILE=
# -----------------------------------------------------------------------------
# 结果目录
# -----------------------------------------------------------------------------
RESULT_PUBLISH_ROOT=D:\production_results
DINSAR_PRODUCT_DIR=D:\production_results\dinsar
TIMESERIES_PRODUCT_DIR=D:\production_results\timeseries
PSINSAR_PRODUCT_DIR=D:\production_results\timeseries
RESULT_QUARANTINE_ROOT=D:\production_results\_quarantine
RESULT_DELIVERY_ROOT=D:\Result_Delivery
RESULT_DELIVERY_PUBLIC_BASE_URL=/deliveries
RESULT_DELIVERY_RETENTION_DAYS=7
RESULT_DELIVERY_MAX_ITEMS=500
RESULT_DELIVERY_ZIP_MAX_BYTES=21474836480
RESULT_DELIVERY_CHECKSUM_ENABLED=true
RESULT_CATALOG_AUTO_REBUILD_ON_STARTUP=true
# -----------------------------------------------------------------------------
# 轨道池
# -----------------------------------------------------------------------------
ORBIT_POOL_ENVI=D:\orbit_pools\envi
ORBIT_POOL_ISCE2=
ORBIT_POOL_LANDSAR=
ORBIT_QUARANTINE_DIR=
# -----------------------------------------------------------------------------
# DEM / 其他数据
# -----------------------------------------------------------------------------
# Raw D-InSAR DEM source for SARscape/ENVI. Keep the base path without the .wgs84 suffix here.
IDL_DINSAR_DEM_BASE_FILE=D:\DEM\SRTMDEM_RSP_SARscape
SRTM_DEM_DIR=D:\DEM
GF3_GEO_DEM_PATH=D:\DEM\SRTMDEM_RSP_SARscape_global_int16.tif
WATER_RESULTS_DIR=D:\WaterResult
GF3_WATER_DEM_PATH=
GF3_WATER_DEFAULT_CARTOGRAPHIC=true
GF3_WATER_DEFAULT_OUT_VECTOR=true
SAR_ANALYSIS_READY_ROOT=D:\production_results\sar_analysis_ready
SAR_ANALYSIS_WORK_ROOT=D:\production_runtime\sar_analysis_work
SAR_ANALYSIS_NODATA_VALUE=-9999
SAR_ANALYSIS_OUTPUT_COG=true
SAR_ANALYSIS_DEM_PATH=D:\DEM\SRTMDEM_RSP_SARscape.wgs84
SAR_ANALYSIS_TARGET_GRID_SIZE_M=30.0
SAR_ANALYSIS_DEM_RESOLUTION_M=30.0
SAR_ANALYSIS_RANGE_LOOKS=6
SAR_ANALYSIS_AZIMUTH_LOOKS=5
SAR_ANALYSIS_SPECKLE_FILTER_ENABLED=true
SAR_ANALYSIS_SPECKLE_FILTER_METHOD=lee
SAR_ANALYSIS_SPECKLE_FILTER_SIZE=5
# -----------------------------------------------------------------------------
# ENVI / SARscape
# -----------------------------------------------------------------------------
IDL_EXECUTABLE=C:\Program Files\Harris\ENVI56\IDL88\bin\bin.x86_64\idl.exe
IDL_WORKBENCH_PATH=C:\Program Files\Harris\ENVI56\IDL88\bin\bin.x86_64\idlde.exe
IDL_WORKER_RUNTIME_DIR=D:\production_runtime\idl_worker
IDL_WORKER_DEFAULT_TIMEOUT_SECONDS=14400
IDL_WORKER_MAX_TIMEOUT_SECONDS=43200
IDL_JOB_RETRY_DELAY_SECONDS=180
IDL_DINSAR_CUSTOM_TARGET_RESOLUTION_M=10.0
IDL_DINSAR_CUSTOM_FILTER_METHOD=GOLDSTEIN
IDL_DINSAR_CUSTOM_UNWRAP_COH_THRESHOLD=0.05
IDL_DINSAR_CUSTOM_GCP_COH_THRESHOLD=0.7
IDL_DINSAR_CUSTOM_GCP_NUMBER=100
IDL_DINSAR_CUSTOM_GEOCODING_COH_THRESHOLD=0.0
IDL_DINSAR_CUSTOM_GEOCODING_PIXEL_SIZE_M=10.0
ENVI_TASK_TIMEOUT_SECONDS=21600
ENVI_PER_TASK_TIMEOUT=21600
ENVI_FILE_STALE_SECONDS=43200
ENVI_STABILITY_CHECK_INTERVAL=15
ENVI_STABILITY_ROUNDS=3
ENVI_STABILITY_MAX_WAIT=3600
# -----------------------------------------------------------------------------
# WSL 共享运行时
# -----------------------------------------------------------------------------
WSL_DISTRO=Ubuntu-24.04
WSL_SHARED_CONDA_ENV=insar_wsl_v1
WSL_SHARED_PYTHON=/home/administrator/miniconda3/envs/insar_wsl_v1/bin/python
WSL_BROKER_JOB_ROOT=D:\production_runtime\wsl_jobs
ISCE2_RUNTIME_ID=isce2_runtime_v1
PYINT_RUNTIME_ID=gamma_pyint_runtime_v1
# -----------------------------------------------------------------------------
# ISCE2 D-InSAR
# -----------------------------------------------------------------------------
ISCE2_ENABLED=false
ISCE2_WSL_DISTRO=Ubuntu-24.04
ISCE2_PYTHON=/home/administrator/miniconda3/envs/insar_wsl_v1/bin/python
ISCE2_PROFILE=lt1_stripmap
ISCE2_STRIPMAP_APP=/home/administrator/miniconda3/envs/insar_wsl_v1/lib/python3.11/site-packages/isce/applications/stripmapApp.py
ISCE2_PIPELINE_SCRIPT=
# ISCE2 should point to the prepared WGS84 DEM after the one-time conversion.
ISCE2_DEM_PATH=D:\DEM\SRTMDEM_RSP_SARscape.wgs84
ISCE2_WORK_ROOT=D:\production_runtime\isce2_work
ISCE2_OUTPUT_ROOT=D:\production_results\dinsar
ISCE2_PER_TASK_TIMEOUT_SECONDS=43200
ISCE2_SMOKE_TEST_ENABLED=false
# Managed LT-1 stripmap production defaults are defined in code:
# split-spectrum ionosphere correction = on,
# dense offsets = on, rubbersheeting range = on, rubbersheeting azimuth = on.
# These are profile-level workflow semantics, not standalone .env toggles.
# The WSL runtime must include cv2 + scipy for ionosphere correction and astropy for rubbersheeting.
# -----------------------------------------------------------------------------
# LandSAR D-InSAR
# -----------------------------------------------------------------------------
LANDSAR_ENABLED=true
LANDSAR_HOME=D:\LandSAR
LANDSAR_CONSOLE_EXE=D:\LandSAR\InSAR_Console.exe
LANDSAR_WORK_ROOT=D:\LandSAR_Work
# Optional extra DLL directories separated by semicolons.
LANDSAR_RUNTIME_PATHS=D:\LandSAR
LANDSAR_LICENSE_MODE=netVersion
LANDSAR_LICENSE_HOST=127.0.0.1
LANDSAR_LICENSE_PORT=6666
LANDSAR_CONFIG_ROW=netVersion,zh,127.0.0.1,6666
LANDSAR_CONFIG_AUTO_WRITE=true
LANDSAR_AUTH_SERVER_EXE=D:\Code\Insar_management_system_v2\third_party\LandSAR\tools\_portable_release\LandSAR_auth_tools_win64\landsar_net_auth_server.exe
LANDSAR_AUTH_SERVER_AUTO_START=true
LANDSAR_AUTH_SERVER_HOST=127.0.0.1
LANDSAR_AUTH_SERVER_PORT=6666
# Prepared global Int16 GeoTIFF source; LandSAR jobs crop task-level DEM files from it before execution.
LANDSAR_DEM_PATH=D:\DEM\SRTMDEM_RSP_SARscape_global_int16.tif
LANDSAR_DINSAR_TIMEOUT_SECONDS=43200
LANDSAR_SBAS_ENABLED=true
LANDSAR_SBAS_WORK_ROOT=D:\LandSAR_Work\sbas
LANDSAR_SBAS_PRODUCT_ROOT=D:\production_results\timeseries\sbas_landsar
LANDSAR_SBAS_DEM_PATH=D:\DEM\SRTMDEM_RSP_SARscape_global_int16.tif
LANDSAR_SBAS_SOURCE_ROOTS=D:\LandSAR_Work
LANDSAR_SBAS_TIMEOUT_SECONDS=172800
LANDSAR_SBAS_MIN_SCENES=3
# -----------------------------------------------------------------------------
# Gamma / PyINT
# -----------------------------------------------------------------------------
PYINT_ENABLED=true
PYINT_WSL_DISTRO=Ubuntu-24.04
PYINT_WSL_PYTHON=/home/administrator/miniconda3/envs/insar_wsl_v1/bin/python
PYINT_HOME=D:\Code\Insar_management_system_v2\third_party\PyINT
PYINT_APP_SCRIPT=D:\Code\Insar_management_system_v2\third_party\PyINT\pyint\pyintApp.py
PYINT_TEMPLATE_ROOT=D:\production_runtime\pyint_templates
PYINT_WORK_ROOT=D:\production_runtime\pyint_work
PYINT_OUTPUT_ROOT=D:\production_results\dinsar
PYINT_DEM_ROOT=D:\production_runtime\pyint_dem
PYINT_DEM_MODE=local_fabdem
PYINT_FABDEM_ROOT=
# When PYINT_DEM_MODE=prepared_file, point this to the same prepared WGS84 DEM.
PYINT_PREPARED_DEM_PATH=D:\DEM\SRTMDEM_RSP_SARscape.wgs84
# 0 means do not derive looks from a target output grid.
PYINT_DEFAULT_TARGET_GRID_SIZE_M=0
# Source DEM resolution recorded in PyINT/Gamma run metadata.
PYINT_DEM_RESOLUTION_M=90.0
PYINT_OPENTOPO_DEM_TYPE=SRTMGL1
PYINT_OPENTOPO_API_KEY=
PYINT_DEM_STRICT=true
# Gamma unwrap support and quality support reporting are intentionally separate.
PYINT_UNWRAP_COH_THRESHOLD=0.05
PYINT_PRODUCT_COH_THRESHOLD=0.20
PYINT_GAMMA_NODATA_VALUE=-9999.0
PYINT_GEO_INTERP=1
PYINT_ATMCOR_ENABLED=false
PYINT_ATMCOR_USE_FOR_DISP=false
PYINT_REFLATTEN_ENABLED=true
PYINT_REFLATTEN_MODEL=plane
PYINT_REFLATTEN_COH_THRESHOLD=0.70
PYINT_REFLATTEN_FALLBACK_COH_THRESHOLD=0.20
PYINT_REFLATTEN_RANGE_STEP=32
PYINT_REFLATTEN_AZIMUTH_STEP=32
PYINT_ORBIT_POLICY=require_txt
PYINT_ORBIT_POOL_TXT=D:\orbit_pools\envi
PYINT_RECORD_INPUT_ASSETS=true
PYINT_LT1_PRECISE_ORBIT_ENABLED=true
PYINT_LT1_PRECISE_ORBIT_MODE=replace
PYINT_LT1_PRECISE_ORBIT_STRICT=true
PYINT_LT1_PRECISE_ORBIT_VALIDATE_WITH_ORB_FILT=false
PYINT_LT1_PRECISE_ORBIT_BACKUP=true
PYINT_LT1_PRECISE_ORBIT_ORB_FILT_DEGREE=5
PYINT_GAMMA_ENV_SCRIPT=D:\Code\Insar_management_system_v2\deploy\wsl\profiles\gamma_env.sh
PYINT_DEFAULT_TIMEOUT_SECONDS=43200
PYINT_SMOKE_TEST_ENABLED=false
# -----------------------------------------------------------------------------
# Gamma SBAS-InSAR
# -----------------------------------------------------------------------------
GAMMA_SBAS_ENABLED=true
GAMMA_SBAS_RUNTIME_ID=gamma_sbas_runtime_v1
GAMMA_SBAS_WSL_DISTRO=Ubuntu-24.04
GAMMA_SBAS_PYTHON=/home/administrator/miniconda3/envs/insar_wsl_v1/bin/python
GAMMA_SBAS_ENV_SCRIPT=D:\Code\Insar_management_system_v2\deploy\wsl\profiles\gamma_env.sh
GAMMA_SBAS_WORK_ROOT=D:\Task_Pool\SBAS
GAMMA_SBAS_PRODUCT_ROOT=D:\production_results\timeseries\sbas
GAMMA_SBAS_TRIAL_ROOT=D:\production_runtime\gamma_ipta_trials
GAMMA_SBAS_SCRIPT_TEMPLATE_ROOT=D:\Code\Insar_management_system_v2\backend\templates\gamma_sbas
GAMMA_SBAS_SOURCE_ROOTS=D:\Task_Pool\source_materialized\lutan1
GAMMA_SBAS_ORBIT_ROOTS=D:\orbit_pools\envi
GAMMA_SBAS_DEM_PATH=D:\DEM\SRTMDEM_RSP_SARscape.wgs84
GAMMA_SBAS_DEFAULT_RLKS=8
GAMMA_SBAS_DEFAULT_AZLKS=8
GAMMA_SBAS_DEFAULT_MB_MODE=0
GAMMA_SBAS_DEFAULT_REFERENCE_WINDOW=16
GAMMA_SBAS_AUTO_APPROVE_ITAB=true
GAMMA_SBAS_MIN_COMMON_OVERLAP_RATIO=0.30
GAMMA_SBAS_STEP_TIMEOUT_SECONDS=43200
GAMMA_SBAS_WORKFLOW_TIMEOUT_SECONDS=172800
# -----------------------------------------------------------------------------
# 时序 InSAR(旧 ISCE2/MintPy 链路)
# -----------------------------------------------------------------------------
TIMESERIES_ENABLED=false
TIMESERIES_WSL_DISTRO=Ubuntu-24.04
TIMESERIES_ENV_NAME=insar_wsl_v1
TIMESERIES_PYTHON=/home/administrator/miniconda3/envs/insar_wsl_v1/bin/python
TIMESERIES_WORK_ROOT=D:\production_runtime\timeseries_work
TIMESERIES_DEM_PATH=D:\DEM\SRTMDEM_RSP_SARscape.wgs84
TIMESERIES_ORBIT_POOL_ISCE2=
TIMESERIES_EXPERIMENT_ROOT=
TIMESERIES_STACK_PREP_SCRIPT=
TIMESERIES_MATERIALIZE_SCRIPT=
TIMESERIES_PREPARE_DEM_SCRIPT=
TIMESERIES_STACK_RUNNER_SCRIPT=
TIMESERIES_MINTPY_SBAS_SCRIPT=
TIMESERIES_EXPORT_PUBLISH_SCRIPT=
TIMESERIES_STACK_WORKFLOW=interferogram
TIMESERIES_DEFAULT_PROCESSOR_CODE=legacy_isce2_stack_mintpy
TIMESERIES_WSL_STEP_TIMEOUT_SECONDS=7200
TIMESERIES_ALLOW_SYNTHETIC_WATER_MASK=true
SARSCAPE_SBAS_PARAMETER_TEMPLATE_PATH=
SARSCAPE_SBAS_ALLOW_EXECUTION=false
SARSCAPE_SBAS_DISCOVERY_TIMEOUT_SECONDS=120
SARSCAPE_SBAS_STEP_TIMEOUT_SECONDS=21600
# -----------------------------------------------------------------------------
# Worker / 健康检查
# -----------------------------------------------------------------------------
JOB_WORKER_HEALTH_TIMEOUT=60
JOB_WORKER_JOB_HEARTBEAT_INTERVAL=5
JOB_WORKER_STALE_RECOVER_INTERVAL=15
JOB_WORKER_STALE_RUNNING_SECONDS=7200
JOB_WORKER_HEARTBEAT_INTERVAL=5
# Main server only. Comma/semicolon-separated IPv4 addresses or CIDR blocks allowed
# to run LandSAR cluster workers against this PostgreSQL server.
LANDSAR_CLUSTER_ALLOWED_WORKER_IPS=192.168.1.6
# Main server and remote workers must share the same non-empty token for
# /api/cluster input download and result upload.
CLUSTER_SHARED_TOKEN=
CLUSTER_TRANSFER_TIMEOUT_SECONDS=3600
# Remote LandSAR workers should point this to the main backend URL.
CLUSTER_MAIN_SERVER_URL=
# Empty means the worker can claim all job types. Remote LandSAR nodes should set:
# JOB_WORKER_ALLOWED_TYPES=LANDSAR_CLUSTER_ITEM
JOB_WORKER_POLL_INTERVAL=1.0
JOB_WORKER_CONCURRENCY=2
JOB_WORKER_ALLOWED_TYPES=
# -----------------------------------------------------------------------------
# Runtime cleanup policy
# -----------------------------------------------------------------------------
# scripts/cleanup_runtime.py is dry-run by default. Pass --delete --yes to remove
# unprotected generated artifacts. Paths referenced by product/catalog tables are
# protected automatically.
RUNTIME_CLEANUP_PYINT_WORK_RETENTION_DAYS=14
RUNTIME_CLEANUP_PYINT_DEM_RETENTION_DAYS=60
RUNTIME_CLEANUP_SBAS_RUN_RETENTION_DAYS=30
RUNTIME_CLEANUP_TRIAL_RETENTION_DAYS=7
RUNTIME_CLEANUP_IDL_LOG_RETENTION_DAYS=30
RUNTIME_CLEANUP_WSL_JOB_RETENTION_DAYS=14
RUNTIME_CLEANUP_TIMESERIES_WORK_RETENTION_DAYS=30
RUNTIME_CLEANUP_IMAGE_CACHE_RETENTION_DAYS=60
RUNTIME_CLEANUP_LOG_RETENTION_DAYS=30
RUNTIME_CLEANUP_FRONTEND_DIST_RETENTION_DAYS=0
# -----------------------------------------------------------------------------
# 解包
# -----------------------------------------------------------------------------
UNPACK_MIN_DISK_SPACE_GB=50
UNPACK_SCAN_WORKERS=4
UNPACK_EXTRACT_WORKERS=4
UNPACK_MAX_FILES_PER_RUN=100
UNPACK_MAX_RUNTIME_MINUTES=360
UNPACK_DELETE_ARCHIVE=false
UNPACK_TMP_SUFFIX=.unpack_tmp
# -----------------------------------------------------------------------------
# 预览与缓存
# -----------------------------------------------------------------------------
RADAR_THUMBNAIL_MAX_SIZE=1600
RADAR_CACHE_WORKERS=2
RADAR_GEO_CACHE_WORKERS=2
RADAR_GEO_CACHE_VERSION=b1
RADAR_GEO_CACHE_QUALITY=84
RADAR_PREVIEW_BUILD_ON_DEMAND=true
DINSAR_THUMBNAIL_MAX_SIZE=1600
DINSAR_FOOTPRINT_MAX_SIZE=1000
DINSAR_CACHE_WORKERS=4
# -----------------------------------------------------------------------------
# AI / 其他外部服务
# -----------------------------------------------------------------------------
OLLAMA_BASE_URL=http://127.0.0.1:11434
OLLAMA_API_URL=http://127.0.0.1:11434/api/generate
DEFAULT_VLM_MODEL=qwen3-vl:30b
# -----------------------------------------------------------------------------
# 前端 tile server
# -----------------------------------------------------------------------------
# Empty means same-origin /tiles, routed by the main nginx proxy.
VITE_TILE_SERVER_URL=
VITE_TILE_SERVER_TOKEN=change_me
VITE_APP_ORG_NAME=黑龙江省自然资源卫星应用技术中心
VITE_APP_SYSTEM_NAME=雷达数据生产管理系统
VITE_APP_SYSTEM_TAGLINE=科研工程生产平台
# Optional override for deployed builds. Empty uses frontend/src/logo.jpg.
VITE_APP_LOGO_URL=
TILE_SERVER_AUTO_START=true
TILE_SERVER_AUTO_STOP=true
TILE_SERVER_ROOT=D:\Code\tile-server
TILE_SERVER_START_SCRIPT=start-all.bat
TILE_SERVER_STOP_SCRIPT=stop-all.bat