frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Offline tiles and routing and geocoding in one Docker Compose stack

https://github.com/corviont/monaco-demo
2•packet_mover•1h ago
Hi HN,

I built a small demo stack for offline maps + routing + geocoding that runs entirely locally on edge/on-prem devices (kiosks, gateways, vessels, etc.). It’s a single Docker Compose deploy for a tiny area (Monaco) so it’s easy to try.

What’s inside:

- Vector tiles served locally (PMTiles)

- Routing served locally (Valhalla)

- Offline geocoding/search (SQLite index built from Nominatim-derived data)

- MapLibre UI wired to local endpoints

After the initial image pulls, there are no external map/routing/geocoding API calls. Everything is exposed behind a single Nginx entrypoint on one port.

Quickstart:

  git clone https://github.com/corviont/monaco-demo
  cd monaco-demo
  echo "CORVIONT_PORT=3000" > .env
  docker compose up -d
Then open: http://localhost:3000

Docs: https://corviont.com/docs

What I’m building next (if people need it): a signed on-device updater for regional datasets (verify → atomic swap → reload), so fleets can stay offline and still keep data fresh.

If you’d use something like this, I’d love input on:

1.) Where does offline maps/routing/search matter in your setup?

2.) Any constraints that bite (arch, RAM/disk, fleet size)?

3.) Update constraints (bandwidth caps, maintenance windows, air-gapped vs intermittent)?

4.) Which regions + deployment style would you want (Compose / Portainer / Mender / Kubernetes)?

Comments

packet_mover•1h ago
A bit more context on why I built this and how it differs from common options:

Goal: treat maps/routing/search like a local appliance. Once the dataset is on the device, there are no external map/routing/geocoding API calls. After the initial Docker pulls, you can unplug WAN and still browse tiles, route A→B, and search/reverse-geocode locally. It’s packaged behind a single local gateway/port so any app on the LAN can hit the same endpoints.

Also important for consistency: tiles, routing tiles, and the geocoder index are all built from the same underlying extract for a given region (so you don’t end up mixing sources/versions across components).

How this differs from common alternatives:

- Mapbox / HERE SDKs: they do support offline use cases, but the typical path is SDK-first (embed their SDK in every app, manage offline packs per app/device, adopt their licensing + integration surface). This project is server-style offline in Docker: drop it onto an edge box and multiple clients can share the same local tiles + routing + geocoding service without wiring a proprietary SDK into each client.

- Mapbox Atlas: Atlas is the closest “serious” comparison (an on-prem/offline Mapbox platform). The difference I’m aiming for is edge ops: Corviont is intentionally focused on specific regions and a smaller “appliance-like” bundle (PMTiles + Valhalla + SQLite geocoder) designed to be friendlier to edge hardware and simple deployments, rather than a full on-prem mapping platform.

- Google Maps Platform: for developers, offline usage is effectively contractually off-limits (tight restrictions on caching/storage and “offline use” of map content). So “just run Google Maps offline on my fleet” isn’t a realistic path.

- Tiles-only servers: offline tiles are only one piece — many deployments still need routing + geocoding locally. This bundles all three behind one gateway/port.

- Routing-only engines (OSRM/GraphHopper/Valhalla alone): routing doesn’t cover the “search / reverse-geocode” side. This is meant for navigation-like UX, not just a route endpoint.

- Running Nominatim: it’s powerful, but it’s heavy to operate (Postgres, import/tuning, ongoing ops). This demo uses a SQLite-based offline index derived from Nominatim-style data so it’s easier to ship as an artifact to edge targets.

What’s next (and what I’m trying to validate): a signed on-device updater that’s actually fleet-friendly:

- verifiable updates (signed manifests), fail-closed, atomic swap + rollback

- incremental publishing on the build side (so a “new dataset” doesn’t always mean re-shipping everything)

- incremental/resumable downloads on devices with bandwidth caps + maintenance windows

- staged rollout patterns (canary → wider) for fleets

If you’re willing to share your map coverage + deployment style (Compose/Portainer/Mender/K8s), I have a short form here: https://corviont.com/#join-waitlist

K2pdfopt

https://www.willus.com/k2pdfopt/
1•piinbinary•1m ago•0 comments

The $20 Domain Trap: Why Buying a Domain Feels Like Progress but Isn't

https://www.validatemy.app/blog/why-a-20-dollar-domain-is-a-trap
1•alexcloudstar•2m ago•1 comments

Biological and artificial consciousness: A case for biological computationalism

https://www.sciencedirect.com/science/article/pii/S0149763425005251
1•XzetaU8•4m ago•0 comments

Why programmatic tool calling is awesome

https://www.guillemus.com/on-programmatic-tool-calling/
1•crowdyriver•7m ago•0 comments

Book recommendations based on reading history

1•easywood•7m ago•0 comments

Benefits of Fullstack Rust

https://github.com/ibaryshnikov/fullstack-rust-iced
1•rekireki•8m ago•1 comments

AI Has Made It Easy to Own Your Tools

https://jimmyhmiller.com/ai-own-your-tools
1•ingve•9m ago•0 comments

Show HN: Tinytunes DJ – A DJ deck in the browser

1•dworks•13m ago•0 comments

How to Deconstruct Almost Anything(1993)

https://www.fudco.com/chip/deconstr.html
1•kelseyfrog•16m ago•0 comments

Why Are Cars Getting Rid of Android Auto?

https://www.bgr.com/2049834/why-cars-getting-rid-android-auto-explained/
2•dataflow•18m ago•1 comments

rLLM: Reinforcement Learning for Language Agents

https://rllm-project.readthedocs.io/en/latest/
1•jonbaer•18m ago•0 comments

Elephant habituation to drones as a behavioural observation tool

https://www.nature.com/articles/s41598-025-25762-2
1•PaulHoule•18m ago•0 comments

BM25 search and Claude = efficient precision

https://github.com/rhobimd-oss/shebe/blob/main/WHY_SHEBE.md
1•marwamc•19m ago•1 comments

BTRS – Babylon Tower Reasoning System

https://www.docdroid.com/Crjz2cp/btrs-babylon-tower-reasoning-system-pdf
1•pulsepro•20m ago•1 comments

Delete LinkedIn – you'll have zero fucking regrets

https://thenextweb.com/news/delete-linkedin-youll-have-zero-regrets-syndication
3•austinallegro•21m ago•2 comments

Legendary French Actress, Sex Symbol Brigitte Bardot Dies at 91

https://www.wsj.com/arts-culture/film/legendary-french-actress-sex-symbol-brigitte-bardot-dies-at...
4•sebastian_z•22m ago•1 comments

Show HN: A simple, open-source screen-time manager for Windows parents

https://github.com/spamsch/screen-time-manager-for-windows
1•spamsch•29m ago•0 comments

UX4G Indian Government Design System

https://www.ux4g.gov.in
1•kumarski•30m ago•0 comments

Amazon halts plans for drone delivery in Italy

https://www.reuters.com/business/retail-consumer/amazon-halts-plans-drone-delivery-italy-2025-12-28/
1•thm•32m ago•0 comments

Engineering Is Becoming Beekeeping

https://bits.logic.inc/p/engineering-is-becoming-beekeeping
2•sgk284•34m ago•0 comments

I Hate Timesheets

https://ihatetimesheets.eu
1•avh3•36m ago•0 comments

Show HN: Built a full PHP framework after getting roasted on Reddit"

https://github.com/aamirali51/Intent-Framework
1•aamirali51•36m ago•0 comments

Evidence of a quantum spin liquid ground state in a kagome material

https://phys.org/news/2025-12-evidence-quantum-liquid-ground-state.html
1•ulrischa•37m ago•0 comments

Synthwave Radio

https://nightride.fm
1•suioir•39m ago•0 comments

45-days towards building your own startup

https://yapsgg.notion.site/45-days-towards-building-your-own-startup-2d2465f04ab58114bb3ff8487416...
1•abdibrokhim•40m ago•0 comments

Nick Kyrgios defeats Anna Sabalenka to win 'Battle of the Sexes' tennis match

https://news.sky.com/story/nick-kyrgios-defeats-aryna-sabalenka-to-win-battle-of-the-sexes-tennis...
3•oncallthrow•42m ago•0 comments

Infinite Study AI

https://infinite-study.vercel.app/
1•kyndraailabs•42m ago•0 comments

When US Cavalry&Germans Fought Together in WWII&Saved 1.2k Horses from Soviets

https://www.military.com/daily-news/investigations-and-features/2025/12/22/operation-cowboy-when-...
3•bookofjoe•43m ago•0 comments

New York subway ends its MetroCard era and switches to tap-and-go fares

https://abcnews.go.com/US/wireStory/new-york-subway-ends-metrocard-era-switches-fully-128731205
2•Teever•43m ago•0 comments

TLD Sucks [Wiki]

https://en.wikipedia.org/wiki/.sucks
2•sans_souse•45m ago•0 comments