Update GeoIntel project files
GeoIntel release gates / Compile, test, contracts and builds (push) Canceled after 0s
GeoIntel release gates / Python and npm vulnerability policy (push) Canceled after 0s
GeoIntel release gates / GIS image, SBOM and container scan (push) Canceled after 0s

This commit is contained in:
Jens
2026-07-25 23:43:08 +02:00
parent 9db6cca2b1
commit d5ea270329
155 changed files with 37970 additions and 825 deletions
+111 -175
View File
@@ -1,183 +1,119 @@
services:
db:
image: postgis/postgis:16-3.4
environment:
POSTGRES_DB: ${GEOINTEL_POSTGRES_DB:-geointel}
POSTGRES_USER: ${GEOINTEL_POSTGRES_USER:-geointel}
POSTGRES_PASSWORD: ${GEOINTEL_POSTGRES_PASSWORD:-geointel}
volumes:
- geointel_postgis:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${GEOINTEL_POSTGRES_USER:-geointel} -d ${GEOINTEL_POSTGRES_DB:-geointel}"]
interval: 5s
timeout: 5s
retries: 10
backend:
dockdeck:
container_name: DockDeck
build:
context: ./backend
args:
GEOINTEL_INSTALL_AI: ${GEOINTEL_INSTALL_AI:-false}
context: .
image: dockdeck:local
restart: unless-stopped
labels:
org.opencontainers.image.title: DockDeck
org.opencontainers.image.description: Premium read-only Unraid start dashboard
org.opencontainers.image.source: http://192.168.10.150:3000/NuklearRabbit/DockDeck
net.unraid.docker.managed: dockerman
net.unraid.docker.webui: "http://${UNRAID_HOST:-tower.local}:${DOCKDECK_PORT:-1218}"
net.unraid.docker.icon: "http://${UNRAID_HOST:-tower.local}:${DOCKDECK_PORT:-1218}/dockdeck-icon.png"
environment:
DATABASE_URL: postgresql+psycopg://${GEOINTEL_POSTGRES_USER:-geointel}:${GEOINTEL_POSTGRES_PASSWORD:-geointel}@db:5432/${GEOINTEL_POSTGRES_DB:-geointel}
STORAGE_ROOT: /app/storage
CORS_ORIGINS: ${GEOINTEL_CORS_ORIGINS:-http://localhost:1202,http://127.0.0.1:1202}
MAX_UPLOAD_MB: ${GEOINTEL_MAX_UPLOAD_MB:-500}
ORTHOPHOTO_ENABLED: ${ORTHOPHOTO_ENABLED:-true}
ORTHOPHOTO_WMS_URL: ${ORTHOPHOTO_WMS_URL:-https://geo.api.vlaanderen.be/OMWRGBMRVL/wms}
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}
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}
SOURCE_CATALOG_STATBEL_DCAT_URL: ${SOURCE_CATALOG_STATBEL_DCAT_URL:-https://doc.statbel.be/publications/DCAT/DCAT_opendata_datasets.ttl}
SOURCE_CATALOG_STATBEL_MAX_RESPONSE_MB: ${SOURCE_CATALOG_STATBEL_MAX_RESPONSE_MB:-5}
SOURCE_CATALOG_ALZ_RELEASE_URL: ${SOURCE_CATALOG_ALZ_RELEASE_URL:-https://landbouwcijfers.vlaanderen.be/open-geodata-landbouwgebruikspercelen}
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}
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}
BATHYMETRY_PROFILES_ENABLED: ${BATHYMETRY_PROFILES_ENABLED:-true}
BATHYMETRY_PROFILES_LAYER_URL: ${BATHYMETRY_PROFILES_LAYER_URL:-https://vha.waterinfo.be/arcgis/rest/services/digitale_atlas/MapServer/0}
BATHYMETRY_WATERCOURSE_LAYER_URL: ${BATHYMETRY_WATERCOURSE_LAYER_URL:-https://vha.waterinfo.be/arcgis/rest/services/digitale_atlas/MapServer/1}
BATHYMETRY_PROFILES_PAGE_SIZE: ${BATHYMETRY_PROFILES_PAGE_SIZE:-1000}
BATHYMETRY_PROFILES_MAX_FEATURES: ${BATHYMETRY_PROFILES_MAX_FEATURES:-50000}
BATHYMETRY_PROFILES_TIMEOUT_SECONDS: ${BATHYMETRY_PROFILES_TIMEOUT_SECONDS:-120}
BATHYMETRY_PROFILES_MAX_RESPONSE_MB: ${BATHYMETRY_PROFILES_MAX_RESPONSE_MB:-32}
MDK_BATHYMETRY_PROBE_ENABLED: ${MDK_BATHYMETRY_PROBE_ENABLED:-true}
MDK_BATHYMETRY_WCS_URL: ${MDK_BATHYMETRY_WCS_URL:-https://bathy.agentschapmdk.be/spatialfusionserver/services/ows/wcs/EL_wcs}
MDK_BATHYMETRY_PROBE_TIMEOUT_SECONDS: ${MDK_BATHYMETRY_PROBE_TIMEOUT_SECONDS:-20}
MDK_BATHYMETRY_PROBE_MAX_RESPONSE_MB: ${MDK_BATHYMETRY_PROBE_MAX_RESPONSE_MB:-4}
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}
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}
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:-cpu}
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}
GEOINTEL_RECONCILE_INTERRUPTED_RUNS_ON_STARTUP: ${GEOINTEL_RECONCILE_INTERRUPTED_RUNS_ON_STARTUP:-true}
OLLAMA_ENABLED: ${OLLAMA_ENABLED:-false}
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}
HOST: 0.0.0.0
PORT: 3000
DATABASE_PATH: /data/dockdeck.db
INTEGRATION_ENV_PATH: /data/integrations.env
APPOPS_URL: ${APPOPS_URL:-}
DOCKER_PROXY_URL: ${DOCKER_PROXY_URL:-}
UNRAID_TEMPLATES_PATH: /unraid-templates
UNRAID_ICONS_SOURCE_PATH: /unraid-icons-source
UNRAID_ICONS_PATH: /unraid-icons-cache
UNRAID_RUNTIME_PATH: /unraid-runtime
UNRAID_HWMON_PATH: /host-hwmon
UNRAID_CPUINFO_PATH: /host-proc/cpuinfo
UNRAID_MEMINFO_PATH: /host-proc/meminfo
UNRAID_UPS_STATUS_PATH: ${UNRAID_UPS_STATUS_PATH:-}
UNRAID_HOST: ${UNRAID_HOST:-tower.local}
UNRAID_URL: ${UNRAID_URL:-}
MOCK_DISCOVERY: "false"
POLLING_INTERVAL_MS: ${POLLING_INTERVAL_MS:-30000}
NPM_URL: ${NPM_URL:-}
NPM_TOKEN: ${NPM_TOKEN:-}
NPM_USERNAME: ${NPM_USERNAME:-}
NPM_PASSWORD: ${NPM_PASSWORD:-}
ADGUARD_URL: ${ADGUARD_URL:-}
ADGUARD_USERNAME: ${ADGUARD_USERNAME:-}
ADGUARD_PASSWORD: ${ADGUARD_PASSWORD:-}
PLEX_URL: ${PLEX_URL:-}
PLEX_TOKEN: ${PLEX_TOKEN:-}
IMMICH_URL: ${IMMICH_URL:-}
IMMICH_API_KEY: ${IMMICH_API_KEY:-}
HOME_ASSISTANT_URL: ${HOME_ASSISTANT_URL:-}
HOME_ASSISTANT_TOKEN: ${HOME_ASSISTANT_TOKEN:-}
OLLAMA_URL: ${OLLAMA_URL:-}
GLANCES_URL: ${GLANCES_URL:-}
TAUTULLI_URL: ${TAUTULLI_URL:-}
TAUTULLI_API_KEY: ${TAUTULLI_API_KEY:-}
PAPERLESS_URL: ${PAPERLESS_URL:-}
PAPERLESS_TOKEN: ${PAPERLESS_TOKEN:-}
SONARR_URL: ${SONARR_URL:-}
SONARR_API_KEY: ${SONARR_API_KEY:-}
RADARR_URL: ${RADARR_URL:-}
RADARR_API_KEY: ${RADARR_API_KEY:-}
LIDARR_URL: ${LIDARR_URL:-}
LIDARR_API_KEY: ${LIDARR_API_KEY:-}
GITEA_WIDGET_URL: ${GITEA_WIDGET_URL:-}
GITEA_WIDGET_TOKEN: ${GITEA_WIDGET_TOKEN:-}
JELLYFIN_URL: ${JELLYFIN_URL:-}
JELLYFIN_API_KEY: ${JELLYFIN_API_KEY:-}
SEERR_URL: ${SEERR_URL:-}
SEERR_API_KEY: ${SEERR_API_KEY:-}
PROWLARR_URL: ${PROWLARR_URL:-}
PROWLARR_API_KEY: ${PROWLARR_API_KEY:-}
AUTHENTIK_URL: ${AUTHENTIK_URL:-}
AUTHENTIK_TOKEN: ${AUTHENTIK_TOKEN:-}
PORTAINER_URL: ${PORTAINER_URL:-}
PORTAINER_API_KEY: ${PORTAINER_API_KEY:-}
GRAFANA_URL: ${GRAFANA_URL:-}
GRAFANA_TOKEN: ${GRAFANA_TOKEN:-}
PROMETHEUS_URL: ${PROMETHEUS_URL:-}
NEXTCLOUD_URL: ${NEXTCLOUD_URL:-}
NEXTCLOUD_USERNAME: ${NEXTCLOUD_USERNAME:-}
NEXTCLOUD_APP_PASSWORD: ${NEXTCLOUD_APP_PASSWORD:-}
AUDIOBOOKSHELF_URL: ${AUDIOBOOKSHELF_URL:-}
AUDIOBOOKSHELF_TOKEN: ${AUDIOBOOKSHELF_TOKEN:-}
NETDATA_URL: ${NETDATA_URL:-}
PEERTUBE_URL: ${PEERTUBE_URL:-}
DELUGE_METRICS_URL: ${DELUGE_METRICS_URL:-}
DELUGE_METRICS_TOKEN: ${DELUGE_METRICS_TOKEN:-}
QBITTORRENT_METRICS_URL: ${QBITTORRENT_METRICS_URL:-}
QBITTORRENT_METRICS_TOKEN: ${QBITTORRENT_METRICS_TOKEN:-}
JDOWNLOADER_METRICS_URL: ${JDOWNLOADER_METRICS_URL:-}
JDOWNLOADER_METRICS_TOKEN: ${JDOWNLOADER_METRICS_TOKEN:-}
TDARR_METRICS_URL: ${TDARR_METRICS_URL:-}
TDARR_METRICS_TOKEN: ${TDARR_METRICS_TOKEN:-}
BAZARR_METRICS_URL: ${BAZARR_METRICS_URL:-}
BAZARR_METRICS_TOKEN: ${BAZARR_METRICS_TOKEN:-}
VAULTWARDEN_METRICS_URL: ${VAULTWARDEN_METRICS_URL:-}
VAULTWARDEN_METRICS_TOKEN: ${VAULTWARDEN_METRICS_TOKEN:-}
ports:
- "${GEOINTEL_BACKEND_PORT:-8000}:8000"
- "${DOCKDECK_BIND_ADDRESS:-127.0.0.1}:${DOCKDECK_PORT:-1218}:3000"
volumes:
- ${GEOINTEL_STORAGE_PATH:-./storage}:/app/storage
- ${GEOINTEL_MODELS_PATH:-./models}:/app/models
- ${GEOINTEL_BACKUPS_PATH:-./backups}:/app/backups:ro
- ./fixtures:/app/fixtures:ro
extra_hosts:
- "host.docker.internal:host-gateway"
command: sh /app/docker_start.sh
depends_on:
db:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "python -c \"import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health/ready', timeout=5).read()\""]
interval: 10s
timeout: 5s
retries: 12
start_period: 30s
- dockdeck_data:/data
- ${UNRAID_TEMPLATES_DIR:-./fixtures/unraid-templates}:/unraid-templates:ro
- ${UNRAID_ICONS_DIR:-/boot/config/plugins/dockerMan/images}:/unraid-icons-source:ro
- ${UNRAID_RUNTIME_DIR:-/var/local/emhttp}:/unraid-runtime:ro
- ${UNRAID_HWMON_DIR:-/sys/class/hwmon}:/host-hwmon:ro
- ${UNRAID_CPUINFO_FILE:-/proc/cpuinfo}:/host-proc/cpuinfo:ro
- ${UNRAID_MEMINFO_FILE:-/proc/meminfo}:/host-proc/meminfo:ro
networks:
- dockdeck_egress
read_only: true
tmpfs:
- /tmp
- /unraid-icons-cache:size=64m,mode=0755
security_opt:
- no-new-privileges:true
frontend:
build:
context: ./frontend
ports:
- "${GEOINTEL_FRONTEND_PORT:-1202}:80"
depends_on:
backend:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "wget -q -O - http://127.0.0.1/health/ready | grep -q '\"status\":\"ok\"'"]
interval: 10s
timeout: 5s
retries: 12
start_period: 10s
networks:
dockdeck_egress:
ipam:
config:
- subnet: ${DOCKDECK_EGRESS_SUBNET:-172.31.240.16/28}
volumes:
geointel_postgis:
dockdeck_data: