From 950b3fc524263f16002a493f2a7c3c8ee7240c7c Mon Sep 17 00:00:00 2001 From: Ryan Westfall Date: Fri, 7 Aug 2026 08:55:09 -0700 Subject: [PATCH] feat: add docker-compose for mediagis Nominatim on :8089 --- docker-compose.yml | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..1d6b6ac --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,41 @@ +name: nominatim + +# Self-hosted Nominatim (mediagis image) for OSM geocoding. +# First start imports PBF into a named Postgres volume (long-running). +# See README.md. Port 8089 avoids dta:8080 and SearxNG:8088 on ai-server-4080. + +services: + nominatim: + image: mediagis/nominatim:5.1 + container_name: nominatim + restart: unless-stopped + # Bind on all interfaces by default so monica_site / backends on + # adama/roslin can reach this host over the homelab LAN. + # Set NOMINATIM_BIND_HOST=127.0.0.1 in .env for local-only. + # Open UFW to 10.0.0.0/24 before relying on LAN access. + ports: + - "${NOMINATIM_BIND_HOST:-0.0.0.0}:8089:8080" + environment: + # Path inside the container (./data mounted at /nominatim/data). + PBF_PATH: /nominatim/data/${NOMINATIM_PBF_FILE:-region.osm.pbf} + NOMINATIM_PASSWORD: ${NOMINATIM_PASSWORD:?set NOMINATIM_PASSWORD in .env} + IMPORT_WIKIPEDIA: "false" + IMPORT_US_POSTCODES: "true" + THREADS: ${NOMINATIM_THREADS:-4} + volumes: + - ./data:/nominatim/data:ro + - nominatim-pgdata:/var/lib/postgresql/16/main + shm_size: ${NOMINATIM_SHM_SIZE:-1gb} + healthcheck: + test: + - CMD-SHELL + - >- + wget -q -O - 'http://127.0.0.1:8080/search?q=test&format=json&limit=1' + | grep -q '\[' + interval: 30s + timeout: 10s + retries: 10 + start_period: 600s + +volumes: + nominatim-pgdata: