163 lines
10 KiB
YAML
163 lines
10 KiB
YAML
services:
|
|
geointel:
|
|
build:
|
|
context: .
|
|
dockerfile: deploy/unraid/Dockerfile.all-in-one
|
|
args:
|
|
GEOINTEL_INSTALL_AI: ${GEOINTEL_INSTALL_AI:-false}
|
|
GEOINTEL_TORCH_INDEX_URL: ${GEOINTEL_TORCH_INDEX_URL:-https://download.pytorch.org/whl/cu130}
|
|
image: geointel-all-in-one:latest
|
|
container_name: geointel
|
|
labels:
|
|
net.unraid.docker.managed: dockerman
|
|
net.unraid.docker.webui: "http://[IP]:[PORT:80]/"
|
|
net.unraid.docker.icon: "/boot/config/plugins/dockerMan/images/geointel-icon.png"
|
|
environment:
|
|
GEOINTEL_POSTGRES_DB: ${GEOINTEL_POSTGRES_DB:-geointel}
|
|
GEOINTEL_POSTGRES_USER: ${GEOINTEL_POSTGRES_USER:-geointel}
|
|
GEOINTEL_POSTGRES_PASSWORD: ${GEOINTEL_POSTGRES_PASSWORD:-geointel}
|
|
GEOINTEL_STORAGE_ROOT: /app/storage
|
|
GEOINTEL_AOI_WORKER_ENABLED: ${GEOINTEL_AOI_WORKER_ENABLED:-true}
|
|
GEOINTEL_AOI_WORKER_POLL_SECONDS: ${GEOINTEL_AOI_WORKER_POLL_SECONDS:-2}
|
|
GEOINTEL_CORS_ORIGINS: ${GEOINTEL_CORS_ORIGINS:-http://localhost:1202,http://127.0.0.1:1202}
|
|
GEOINTEL_MAX_UPLOAD_MB: ${GEOINTEL_MAX_UPLOAD_MB:-500}
|
|
GEOINTEL_AUTH_ENABLED: ${GEOINTEL_AUTH_ENABLED:-false}
|
|
GEOINTEL_AUTH_USERNAME: ${GEOINTEL_AUTH_USERNAME:-}
|
|
GEOINTEL_AUTH_PASSWORD_HASH: ${GEOINTEL_AUTH_PASSWORD_HASH:-}
|
|
GEOINTEL_AUTH_SESSION_SECRET: ${GEOINTEL_AUTH_SESSION_SECRET:-}
|
|
GEOINTEL_AUTH_SESSION_TTL_SECONDS: ${GEOINTEL_AUTH_SESSION_TTL_SECONDS:-43200}
|
|
GEOINTEL_GUEST_ACCESS_ENABLED: ${GEOINTEL_GUEST_ACCESS_ENABLED:-true}
|
|
GEOINTEL_GUEST_DISPLAY_NAME: ${GEOINTEL_GUEST_DISPLAY_NAME:-Gast}
|
|
GEOINTEL_GUEST_SESSION_TTL_SECONDS: ${GEOINTEL_GUEST_SESSION_TTL_SECONDS:-7200}
|
|
ORTHOPHOTO_ENABLED: ${ORTHOPHOTO_ENABLED:-true}
|
|
ORTHOPHOTO_WMS_URL: ${ORTHOPHOTO_WMS_URL:-https://geo.api.vlaanderen.be/OMWRGBMRVL/wms}
|
|
SPW_ORTHOPHOTO_WMS_URL: ${SPW_ORTHOPHOTO_WMS_URL:-https://geoservices.wallonie.be/arcgis/services/IMAGERIE/ORTHO_LAST/MapServer/WMSServer}
|
|
BRUSSELS_ORTHOPHOTO_WMS_URL: ${BRUSSELS_ORTHOPHOTO_WMS_URL:-https://geoservices-grid.irisnet.be/geoserver/urbisgrid/ows}
|
|
ORTHOPHOTO_WMS_LAYER: ${ORTHOPHOTO_WMS_LAYER:-Ortho}
|
|
ORTHOPHOTO_RESOLUTION_M: ${ORTHOPHOTO_RESOLUTION_M:-1.0}
|
|
ORTHOPHOTO_MIN_SIDE_M: ${ORTHOPHOTO_MIN_SIDE_M:-128}
|
|
ORTHOPHOTO_MAX_SIDE_M: ${ORTHOPHOTO_MAX_SIDE_M:-1024}
|
|
ORTHOPHOTO_CACHE_TTL_HOURS: ${ORTHOPHOTO_CACHE_TTL_HOURS:-24}
|
|
SOURCE_CATALOG_PROBE_ENABLED: ${SOURCE_CATALOG_PROBE_ENABLED:-true}
|
|
SOURCE_CATALOG_GRB_WFS_URL: ${SOURCE_CATALOG_GRB_WFS_URL:-https://geo.api.vlaanderen.be/GRB/wfs}
|
|
GRB_ENABLED: ${GRB_ENABLED:-true}
|
|
GRB_OGC_API_URL: ${GRB_OGC_API_URL:-https://geo.api.vlaanderen.be/GRB/ogc/features/v1}
|
|
GRB_MIN_SIDE_M: ${GRB_MIN_SIDE_M:-10}
|
|
GRB_MAX_SIDE_M: ${GRB_MAX_SIDE_M:-20000}
|
|
GRB_PAGE_SIZE: ${GRB_PAGE_SIZE:-1000}
|
|
GRB_MAX_PAGES: ${GRB_MAX_PAGES:-200}
|
|
GRB_MAX_FEATURES: ${GRB_MAX_FEATURES:-150000}
|
|
GRB_TIMEOUT_SECONDS: ${GRB_TIMEOUT_SECONDS:-180}
|
|
GRB_MAX_RESPONSE_MB: ${GRB_MAX_RESPONSE_MB:-20}
|
|
GRB_MAX_TOTAL_RESPONSE_MB: ${GRB_MAX_TOTAL_RESPONSE_MB:-256}
|
|
GRB_CACHE_TTL_HOURS: ${GRB_CACHE_TTL_HOURS:-24}
|
|
SOURCE_CATALOG_PROBE_TIMEOUT_SECONDS: ${SOURCE_CATALOG_PROBE_TIMEOUT_SECONDS:-10}
|
|
SOURCE_CATALOG_PROBE_MAX_RESPONSE_MB: ${SOURCE_CATALOG_PROBE_MAX_RESPONSE_MB:-2}
|
|
SOURCE_CATALOG_PROBE_CACHE_TTL_SECONDS: ${SOURCE_CATALOG_PROBE_CACHE_TTL_SECONDS:-900}
|
|
OFFICIAL_VECTOR_ENABLED: ${OFFICIAL_VECTOR_ENABLED:-true}
|
|
BWK_WFS_URL: ${BWK_WFS_URL:-https://geo.api.vlaanderen.be/BWK/wfs}
|
|
DOV_SOIL_WFS_URL: ${DOV_SOIL_WFS_URL:-https://www.dov.vlaanderen.be/geoserver/wfs}
|
|
SPW_PICC_ENABLED: ${SPW_PICC_ENABLED:-true}
|
|
SPW_PICC_MAPSERVER_URL: ${SPW_PICC_MAPSERVER_URL:-https://geoservices.wallonie.be/arcgis/rest/services/TOPOGRAPHIE/PICC_VDIFF/MapServer}
|
|
SPW_FLOOD_HAZARD_ENABLED: ${SPW_FLOOD_HAZARD_ENABLED:-true}
|
|
SPW_FLOOD_HAZARD_MAPSERVER_URL: ${SPW_FLOOD_HAZARD_MAPSERVER_URL:-https://geoservices.wallonie.be/arcgis/rest/services/EAU/ALEA_INOND/MapServer}
|
|
URBIS_ENABLED: ${URBIS_ENABLED:-true}
|
|
URBIS_WFS_URL: ${URBIS_WFS_URL:-https://geoservices-vector.irisnet.be/geoserver/urbisvector/ows}
|
|
OFFICIAL_VECTOR_MIN_SIDE_M: ${OFFICIAL_VECTOR_MIN_SIDE_M:-10}
|
|
OFFICIAL_VECTOR_MAX_SIDE_M: ${OFFICIAL_VECTOR_MAX_SIDE_M:-20000}
|
|
OFFICIAL_VECTOR_PAGE_SIZE: ${OFFICIAL_VECTOR_PAGE_SIZE:-1000}
|
|
OFFICIAL_VECTOR_MAX_PAGES: ${OFFICIAL_VECTOR_MAX_PAGES:-200}
|
|
OFFICIAL_VECTOR_MAX_FEATURES: ${OFFICIAL_VECTOR_MAX_FEATURES:-100000}
|
|
OFFICIAL_VECTOR_TIMEOUT_SECONDS: ${OFFICIAL_VECTOR_TIMEOUT_SECONDS:-180}
|
|
OFFICIAL_VECTOR_MAX_RESPONSE_MB: ${OFFICIAL_VECTOR_MAX_RESPONSE_MB:-20}
|
|
OFFICIAL_VECTOR_MAX_TOTAL_RESPONSE_MB: ${OFFICIAL_VECTOR_MAX_TOTAL_RESPONSE_MB:-256}
|
|
OFFICIAL_VECTOR_CACHE_TTL_HOURS: ${OFFICIAL_VECTOR_CACHE_TTL_HOURS:-24}
|
|
DHMV_ENABLED: ${DHMV_ENABLED:-true}
|
|
DHMV_WCS_URL: ${DHMV_WCS_URL:-https://geo.api.vlaanderen.be/DHMV/wcs}
|
|
DHMV_RESOLUTION_M: ${DHMV_RESOLUTION_M:-5.0}
|
|
DHMV_MIN_SIDE_M: ${DHMV_MIN_SIDE_M:-10}
|
|
DHMV_MAX_SIDE_M: ${DHMV_MAX_SIDE_M:-20000}
|
|
DHMV_MAX_PIXELS: ${DHMV_MAX_PIXELS:-12000000}
|
|
DHMV_TIMEOUT_SECONDS: ${DHMV_TIMEOUT_SECONDS:-300}
|
|
DHMV_MAX_RESPONSE_MB: ${DHMV_MAX_RESPONSE_MB:-160}
|
|
FLOOD_HAZARD_ENABLED: ${FLOOD_HAZARD_ENABLED:-true}
|
|
FLOOD_HAZARD_WCS_URL: ${FLOOD_HAZARD_WCS_URL:-https://geoservice.waterinfo.be/OGRK/wcs}
|
|
FLOOD_HAZARD_RESOLUTION_M: ${FLOOD_HAZARD_RESOLUTION_M:-5.0}
|
|
FLOOD_HAZARD_MIN_SIDE_M: ${FLOOD_HAZARD_MIN_SIDE_M:-10}
|
|
FLOOD_HAZARD_MAX_SIDE_M: ${FLOOD_HAZARD_MAX_SIDE_M:-20000}
|
|
FLOOD_HAZARD_MAX_PIXELS: ${FLOOD_HAZARD_MAX_PIXELS:-12000000}
|
|
FLOOD_HAZARD_TIMEOUT_SECONDS: ${FLOOD_HAZARD_TIMEOUT_SECONDS:-300}
|
|
FLOOD_HAZARD_MAX_RESPONSE_MB: ${FLOOD_HAZARD_MAX_RESPONSE_MB:-160}
|
|
THEMATIC_RASTER_ENABLED: ${THEMATIC_RASTER_ENABLED:-true}
|
|
THEMATIC_RASTER_WCS_URL: ${THEMATIC_RASTER_WCS_URL:-https://www.mercator.vlaanderen.be/raadpleegdienstenmercatorpubliek/wcs}
|
|
THEMATIC_RASTER_MIN_SIDE_M: ${THEMATIC_RASTER_MIN_SIDE_M:-100}
|
|
THEMATIC_RASTER_MAX_SIDE_M: ${THEMATIC_RASTER_MAX_SIDE_M:-60000}
|
|
THEMATIC_RASTER_MAX_PIXELS: ${THEMATIC_RASTER_MAX_PIXELS:-30000000}
|
|
THEMATIC_RASTER_TIMEOUT_SECONDS: ${THEMATIC_RASTER_TIMEOUT_SECONDS:-300}
|
|
THEMATIC_RASTER_MAX_RESPONSE_MB: ${THEMATIC_RASTER_MAX_RESPONSE_MB:-160}
|
|
WALOUS_ENABLED: ${WALOUS_ENABLED:-true}
|
|
WALOUS_SOURCE_DIR: ${WALOUS_SOURCE_DIR:-/app/storage/source-cache/walous}
|
|
WALOUS_ANALYSIS_RESOLUTION_M: ${WALOUS_ANALYSIS_RESOLUTION_M:-10}
|
|
WALOUS_MAX_SIDE_M: ${WALOUS_MAX_SIDE_M:-60000}
|
|
WALOUS_MAX_PIXELS: ${WALOUS_MAX_PIXELS:-36000000}
|
|
SPW_TERRAIN_ENABLED: ${SPW_TERRAIN_ENABLED:-true}
|
|
SPW_TERRAIN_SOURCE_DIR: ${SPW_TERRAIN_SOURCE_DIR:-/app/storage/source-cache/spw-terrain}
|
|
SPW_TERRAIN_ANALYSIS_RESOLUTION_M: ${SPW_TERRAIN_ANALYSIS_RESOLUTION_M:-5}
|
|
SPW_TERRAIN_MAX_SIDE_M: ${SPW_TERRAIN_MAX_SIDE_M:-20000}
|
|
SPW_TERRAIN_MAX_PIXELS: ${SPW_TERRAIN_MAX_PIXELS:-12000000}
|
|
YOLO_ENABLED: ${YOLO_ENABLED:-false}
|
|
YOLO_MODELS_DIR: ${YOLO_MODELS_DIR:-/app/models}
|
|
YOLO_MODEL_PATH: ${YOLO_MODEL_PATH:-}
|
|
YOLO_MODEL_ID: ${YOLO_MODEL_ID:-yolo-configured}
|
|
YOLO_MODEL_DISPLAY_NAME: ${YOLO_MODEL_DISPLAY_NAME:-Configured YOLO detector}
|
|
YOLO_MODEL_VERSION: ${YOLO_MODEL_VERSION:-}
|
|
YOLO_CONFIG_DIR: ${YOLO_CONFIG_DIR:-/app/storage/ultralytics}
|
|
YOLO_DEVICE: ${YOLO_DEVICE:-cuda:0}
|
|
YOLO_REQUIRE_CUDA: ${YOLO_REQUIRE_CUDA:-true}
|
|
YOLO_MODEL_CLASSES: ${YOLO_MODEL_CLASSES:-building}
|
|
YOLO_ENFORCE_VALIDATION_SCOPE: ${YOLO_ENFORCE_VALIDATION_SCOPE:-true}
|
|
YOLO_VALIDATED_AREA_NAMES: ${YOLO_VALIDATED_AREA_NAMES:-Mol,Kempen}
|
|
YOLO_IMAGE_SIZE: ${YOLO_IMAGE_SIZE:-640}
|
|
YOLO_MAX_TILES: ${YOLO_MAX_TILES:-100}
|
|
YOLO_MAX_DETECTIONS: ${YOLO_MAX_DETECTIONS:-1000}
|
|
YOLO_DUPLICATE_IOU_THRESHOLD: ${YOLO_DUPLICATE_IOU_THRESHOLD:-0.5}
|
|
YOLO_BATCH_SIZE: ${YOLO_BATCH_SIZE:-1}
|
|
YOLO_SEG_ENABLED: ${YOLO_SEG_ENABLED:-false}
|
|
YOLO_SEG_MODEL_PATH: ${YOLO_SEG_MODEL_PATH:-}
|
|
YOLO_SEG_MODEL_ID: ${YOLO_SEG_MODEL_ID:-yolo-seg-configured}
|
|
YOLO_SEG_MODEL_DISPLAY_NAME: ${YOLO_SEG_MODEL_DISPLAY_NAME:-Configured YOLO segmentation}
|
|
YOLO_SEG_MODEL_VERSION: ${YOLO_SEG_MODEL_VERSION:-}
|
|
SAM_ENABLED: ${SAM_ENABLED:-false}
|
|
SAM_MODEL_PATH: ${SAM_MODEL_PATH:-}
|
|
SAM_MODEL_ID: ${SAM_MODEL_ID:-sam-configured}
|
|
SAM_MODEL_DISPLAY_NAME: ${SAM_MODEL_DISPLAY_NAME:-Configured SAM segmentation}
|
|
SAM_MODEL_VERSION: ${SAM_MODEL_VERSION:-}
|
|
SEGMENTATION_MAX_MASKS_PER_TILE: ${SEGMENTATION_MAX_MASKS_PER_TILE:-300}
|
|
SEGMENTATION_DUPLICATE_IOU_THRESHOLD: ${SEGMENTATION_DUPLICATE_IOU_THRESHOLD:-0.5}
|
|
MDK_BATHYMETRY_ACQUISITION_ENABLED: ${MDK_BATHYMETRY_ACQUISITION_ENABLED:-false}
|
|
MDK_BATHYMETRY_COVERAGE_ID: ${MDK_BATHYMETRY_COVERAGE_ID:-}
|
|
MDK_BATHYMETRY_REQUEST_CRS: ${MDK_BATHYMETRY_REQUEST_CRS:-EPSG:4326}
|
|
MDK_BATHYMETRY_MAX_BBOX_DEG2: ${MDK_BATHYMETRY_MAX_BBOX_DEG2:-0.25}
|
|
MDK_BATHYMETRY_ACQUISITION_TIMEOUT_SECONDS: ${MDK_BATHYMETRY_ACQUISITION_TIMEOUT_SECONDS:-120}
|
|
MDK_BATHYMETRY_ACQUISITION_MAX_RESPONSE_MB: ${MDK_BATHYMETRY_ACQUISITION_MAX_RESPONSE_MB:-160}
|
|
OLLAMA_ENABLED: ${OLLAMA_ENABLED:-true}
|
|
OLLAMA_BASE_URL: ${OLLAMA_BASE_URL:-http://host.docker.internal:11434}
|
|
OLLAMA_DEFAULT_MODEL: ${OLLAMA_DEFAULT_MODEL:-qwen3.5:9b}
|
|
OLLAMA_TIMEOUT_SECONDS: ${OLLAMA_TIMEOUT_SECONDS:-120}
|
|
OLLAMA_MAX_OUTPUT_TOKENS: ${OLLAMA_MAX_OUTPUT_TOKENS:-1200}
|
|
OLLAMA_CONTEXT_TOKENS: ${OLLAMA_CONTEXT_TOKENS:-16384}
|
|
ports:
|
|
- "${GEOINTEL_FRONTEND_PORT:-1202}:80"
|
|
volumes:
|
|
- ${GEOINTEL_POSTGIS_DATA_PATH:-geointel_postgis}:/var/lib/postgresql/data
|
|
- ${GEOINTEL_STORAGE_PATH:-./storage}:/app/storage
|
|
- ${GEOINTEL_MODELS_PATH:-./models}:/app/models
|
|
- ${GEOINTEL_BACKUPS_PATH:-./backups}:/app/backups:ro
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
gpus: all
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
geointel_postgis:
|