202 lines
8.3 KiB
Bash
202 lines
8.3 KiB
Bash
# GeoIntel Unraid all-in-one environment template.
|
|
# Copy this file to /mnt/user/appdata/geointel/.env and edit values there.
|
|
|
|
# GeoIntel runs as ONE container. This makes a bare `docker compose ...` in this
|
|
# directory use the single-container file instead of the multi-container
|
|
# development stack in docker-compose.yml.
|
|
COMPOSE_FILE=docker-compose.unraid.yml
|
|
|
|
# Browser URL: http://<unraid-ip>:<GEOINTEL_FRONTEND_PORT>
|
|
GEOINTEL_FRONTEND_PORT=1202
|
|
|
|
# Persisted application artifacts: uploads, tiles, masks, reports and exports.
|
|
GEOINTEL_STORAGE_PATH=/mnt/user/appdata/geointel/storage
|
|
|
|
# Local AI model files mounted into the container as /app/models.
|
|
GEOINTEL_MODELS_PATH=/mnt/user/appdata/geointel/models
|
|
|
|
# Checksum-verified release backups mounted read-only for cleanup guards.
|
|
GEOINTEL_BACKUPS_PATH=/mnt/user/appdata/geointel/backups
|
|
|
|
# Embedded PostGIS data directory for the all-in-one container.
|
|
GEOINTEL_POSTGIS_DATA_PATH=/mnt/user/appdata/geointel/postgres-data
|
|
|
|
# Internal embedded PostGIS settings. The database is not published to the LAN.
|
|
# Replace the placeholder with a unique secret before the first start. Production
|
|
# startup rejects empty and known-default passwords.
|
|
GEOINTEL_POSTGRES_DB=geointel
|
|
GEOINTEL_POSTGRES_USER=geointel
|
|
GEOINTEL_POSTGRES_PASSWORD=change-me-before-shared-use
|
|
|
|
# Browser origins allowed when directly calling the backend API.
|
|
# Neem hier ook de publieke hostname op zodra Nginx Proxy Manager ervoor staat.
|
|
GEOINTEL_CORS_ORIGINS=https://geointel.itworx.tech,http://geointel.itworx.tech,http://localhost:1202,http://127.0.0.1:1202,http://192.168.10.150:1202
|
|
|
|
# Upload guard in MiB. The same 1-2048 limit is applied by nginx and FastAPI.
|
|
GEOINTEL_MAX_UPLOAD_MB=500
|
|
GEOINTEL_AOI_WORKER_ENABLED=true
|
|
GEOINTEL_AOI_WORKER_POLL_SECONDS=2
|
|
|
|
# Optional single-operator access gate. Never store a plaintext password here.
|
|
# Generate the password hash with AuthService.hash_password and use a unique,
|
|
# random session secret of at least 32 characters.
|
|
GEOINTEL_AUTH_ENABLED=false
|
|
GEOINTEL_AUTH_USERNAME=
|
|
GEOINTEL_AUTH_PASSWORD_HASH=
|
|
GEOINTEL_AUTH_SESSION_SECRET=
|
|
GEOINTEL_AUTH_SESSION_TTL_SECONDS=43200
|
|
|
|
# Guest access is demo-only and disabled by default. Enable it only on a
|
|
# dedicated demo instance with a separate database/storage root and no private,
|
|
# customer or operational data. It is not tenant isolation.
|
|
# scripts/configure_operator_login.sh keeps it disabled unless
|
|
# --guest-access true is supplied explicitly.
|
|
GEOINTEL_GUEST_ACCESS_ENABLED=false
|
|
GEOINTEL_GUEST_DISPLAY_NAME=Gast
|
|
GEOINTEL_GUEST_SESSION_TTL_SECONDS=7200
|
|
|
|
# Explicit, bounded acquisition from the official Digitaal Vlaanderen WMS.
|
|
ORTHOPHOTO_ENABLED=true
|
|
ORTHOPHOTO_WMS_URL=https://geo.api.vlaanderen.be/OMWRGBMRVL/wms
|
|
SPW_ORTHOPHOTO_WMS_URL=https://geoservices.wallonie.be/arcgis/services/IMAGERIE/ORTHO_LAST/MapServer/WMSServer
|
|
BRUSSELS_ORTHOPHOTO_WMS_URL=https://geoservices-grid.irisnet.be/geoserver/urbisgrid/ows
|
|
ORTHOPHOTO_WMS_LAYER=Ortho
|
|
ORTHOPHOTO_RESOLUTION_M=1.0
|
|
ORTHOPHOTO_MIN_SIDE_M=128
|
|
ORTHOPHOTO_MAX_SIDE_M=1024
|
|
ORTHOPHOTO_CACHE_TTL_HOURS=24
|
|
|
|
# Explicit read-only edition checks for GRB, orthophoto, Statbel and ALZ publications.
|
|
# No feature, raster, Statbel distribution or ALZ archive is downloaded by these probes.
|
|
SOURCE_CATALOG_PROBE_ENABLED=true
|
|
SOURCE_CATALOG_GRB_WFS_URL=https://geo.api.vlaanderen.be/GRB/wfs
|
|
SOURCE_CATALOG_STATBEL_DCAT_URL=https://doc.statbel.be/publications/DCAT/DCAT_opendata_datasets.ttl
|
|
SOURCE_CATALOG_STATBEL_MAX_RESPONSE_MB=5
|
|
SOURCE_CATALOG_ALZ_RELEASE_URL=https://landbouwcijfers.vlaanderen.be/open-geodata-landbouwgebruikspercelen
|
|
SOURCE_CATALOG_PROBE_TIMEOUT_SECONDS=10
|
|
SOURCE_CATALOG_PROBE_MAX_RESPONSE_MB=2
|
|
SOURCE_CATALOG_PROBE_CACHE_TTL_SECONDS=900
|
|
|
|
# Bounded official Flemish, Walloon and Brussels vectors, loaded only after a map selection.
|
|
OFFICIAL_VECTOR_ENABLED=true
|
|
BWK_WFS_URL=https://geo.api.vlaanderen.be/BWK/wfs
|
|
DOV_SOIL_WFS_URL=https://www.dov.vlaanderen.be/geoserver/wfs
|
|
SPW_PICC_ENABLED=true
|
|
SPW_PICC_MAPSERVER_URL=https://geoservices.wallonie.be/arcgis/rest/services/TOPOGRAPHIE/PICC_VDIFF/MapServer
|
|
SPW_FLOOD_HAZARD_ENABLED=true
|
|
SPW_FLOOD_HAZARD_MAPSERVER_URL=https://geoservices.wallonie.be/arcgis/rest/services/EAU/ALEA_INOND/MapServer
|
|
URBIS_ENABLED=true
|
|
URBIS_WFS_URL=https://geoservices-vector.irisnet.be/geoserver/urbisvector/ows
|
|
OFFICIAL_VECTOR_MIN_SIDE_M=10
|
|
OFFICIAL_VECTOR_MAX_SIDE_M=20000
|
|
OFFICIAL_VECTOR_PAGE_SIZE=1000
|
|
OFFICIAL_VECTOR_MAX_PAGES=200
|
|
OFFICIAL_VECTOR_MAX_FEATURES=100000
|
|
OFFICIAL_VECTOR_TIMEOUT_SECONDS=180
|
|
OFFICIAL_VECTOR_MAX_RESPONSE_MB=20
|
|
OFFICIAL_VECTOR_MAX_TOTAL_RESPONSE_MB=256
|
|
OFFICIAL_VECTOR_CACHE_TTL_HOURS=24
|
|
DHMV_ENABLED=true
|
|
DHMV_WCS_URL=https://geo.api.vlaanderen.be/DHMV/wcs
|
|
DHMV_RESOLUTION_M=5.0
|
|
DHMV_MIN_SIDE_M=10
|
|
DHMV_MAX_SIDE_M=20000
|
|
DHMV_MAX_PIXELS=12000000
|
|
DHMV_TIMEOUT_SECONDS=300
|
|
DHMV_MAX_RESPONSE_MB=160
|
|
FLOOD_HAZARD_ENABLED=true
|
|
FLOOD_HAZARD_WCS_URL=https://geoservice.waterinfo.be/OGRK/wcs
|
|
FLOOD_HAZARD_RESOLUTION_M=5.0
|
|
FLOOD_HAZARD_MIN_SIDE_M=10
|
|
FLOOD_HAZARD_MAX_SIDE_M=20000
|
|
FLOOD_HAZARD_MAX_PIXELS=12000000
|
|
FLOOD_HAZARD_TIMEOUT_SECONDS=300
|
|
FLOOD_HAZARD_MAX_RESPONSE_MB=160
|
|
BATHYMETRY_PROFILES_ENABLED=true
|
|
BATHYMETRY_PROFILES_LAYER_URL=https://vha.waterinfo.be/arcgis/rest/services/digitale_atlas/MapServer/0
|
|
BATHYMETRY_WATERCOURSE_LAYER_URL=https://vha.waterinfo.be/arcgis/rest/services/digitale_atlas/MapServer/1
|
|
BATHYMETRY_PROFILES_PAGE_SIZE=1000
|
|
BATHYMETRY_PROFILES_MAX_FEATURES=50000
|
|
BATHYMETRY_PROFILES_TIMEOUT_SECONDS=120
|
|
BATHYMETRY_PROFILES_MAX_RESPONSE_MB=32
|
|
MDK_BATHYMETRY_PROBE_ENABLED=true
|
|
MDK_BATHYMETRY_WCS_URL=https://bathy.agentschapmdk.be/spatialfusionserver/services/ows/wcs/EL_wcs
|
|
MDK_BATHYMETRY_PROBE_TIMEOUT_SECONDS=20
|
|
MDK_BATHYMETRY_PROBE_MAX_RESPONSE_MB=4
|
|
|
|
# Bounded MDK acquisition stays fail-closed until the readiness probe reports
|
|
# "reachable" and an advertised coverage id is configured explicitly.
|
|
MDK_BATHYMETRY_ACQUISITION_ENABLED=false
|
|
MDK_BATHYMETRY_COVERAGE_ID=
|
|
MDK_BATHYMETRY_REQUEST_CRS=EPSG:4326
|
|
MDK_BATHYMETRY_MAX_BBOX_DEG2=0.25
|
|
MDK_BATHYMETRY_ACQUISITION_TIMEOUT_SECONDS=120
|
|
MDK_BATHYMETRY_ACQUISITION_MAX_RESPONSE_MB=160
|
|
|
|
# Allowlisted Departement Omgeving policy rasters. Regional requests are
|
|
# transferred as fixed 10 km WCS tiles before exact Area clipping.
|
|
THEMATIC_RASTER_ENABLED=true
|
|
THEMATIC_RASTER_WCS_URL=https://www.mercator.vlaanderen.be/raadpleegdienstenmercatorpubliek/wcs
|
|
THEMATIC_RASTER_MIN_SIDE_M=100
|
|
THEMATIC_RASTER_MAX_SIDE_M=60000
|
|
THEMATIC_RASTER_MAX_PIXELS=30000000
|
|
THEMATIC_RASTER_TIMEOUT_SECONDS=300
|
|
THEMATIC_RASTER_MAX_RESPONSE_MB=160
|
|
WALOUS_ENABLED=true
|
|
WALOUS_SOURCE_DIR=/app/storage/source-cache/walous
|
|
WALOUS_ANALYSIS_RESOLUTION_M=10
|
|
WALOUS_MAX_SIDE_M=60000
|
|
WALOUS_MAX_PIXELS=36000000
|
|
SPW_TERRAIN_ENABLED=true
|
|
SPW_TERRAIN_SOURCE_DIR=/app/storage/source-cache/spw-terrain
|
|
SPW_TERRAIN_ANALYSIS_RESOLUTION_M=5
|
|
SPW_TERRAIN_MAX_SIDE_M=20000
|
|
SPW_TERRAIN_MAX_PIXELS=12000000
|
|
|
|
# Optional configured-YOLO runtime. Keep disabled unless a local model is mounted.
|
|
GEOINTEL_INSTALL_AI=false
|
|
YOLO_ENABLED=false
|
|
YOLO_MODELS_DIR=/app/models
|
|
YOLO_MODEL_PATH=
|
|
YOLO_MODEL_ID=yolo-configured
|
|
YOLO_MODEL_DISPLAY_NAME=Configured YOLO detector
|
|
YOLO_MODEL_VERSION=
|
|
YOLO_CONFIG_DIR=/app/storage/ultralytics
|
|
YOLO_DEVICE=cuda:0
|
|
YOLO_REQUIRE_CUDA=true
|
|
YOLO_MODEL_CLASSES=building
|
|
YOLO_ENFORCE_VALIDATION_SCOPE=true
|
|
YOLO_VALIDATION_SCOPE_MANIFEST_PATH=/app/storage/operator-data/model-validation-scopes/active-building-model.json
|
|
YOLO_VALIDATION_SCOPE_MANIFEST_SHA256=
|
|
# Deprecated display metadata; never used as an inference authorization gate.
|
|
YOLO_VALIDATED_AREA_NAMES=Mol,Kempen
|
|
YOLO_IMAGE_SIZE=640
|
|
YOLO_MAX_TILES=100
|
|
YOLO_MAX_DETECTIONS=1000
|
|
YOLO_DUPLICATE_IOU_THRESHOLD=0.5
|
|
YOLO_BATCH_SIZE=1
|
|
|
|
# Local segmentation models. GeoIntel never downloads model weights
|
|
# automatically; point these to existing local files to enable inference.
|
|
YOLO_SEG_ENABLED=false
|
|
YOLO_SEG_MODEL_PATH=
|
|
YOLO_SEG_MODEL_ID=yolo-seg-configured
|
|
YOLO_SEG_MODEL_DISPLAY_NAME=Configured YOLO segmentation
|
|
YOLO_SEG_MODEL_VERSION=
|
|
SAM_ENABLED=false
|
|
SAM_MODEL_PATH=
|
|
SAM_MODEL_ID=sam-configured
|
|
SAM_MODEL_DISPLAY_NAME=Configured SAM segmentation
|
|
SAM_MODEL_VERSION=
|
|
SEGMENTATION_MAX_MASKS_PER_TILE=300
|
|
SEGMENTATION_DUPLICATE_IOU_THRESHOLD=0.5
|
|
|
|
# Local Ollama assistant. The all-in-one container reaches the Unraid host
|
|
# through Docker's host-gateway mapping; no Ollama port is exposed by GeoIntel.
|
|
OLLAMA_ENABLED=true
|
|
OLLAMA_BASE_URL=http://host.docker.internal:11434
|
|
OLLAMA_DEFAULT_MODEL=qwen3.5:9b
|
|
OLLAMA_TIMEOUT_SECONDS=120
|
|
OLLAMA_MAX_OUTPUT_TOKENS=1200
|
|
OLLAMA_CONTEXT_TOKENS=16384
|