Open Karta — Ethiopia Geospatial Stack
# Open Karta — Ethiopia Geospatial Stack
A complete, self-hosted, open-source geospatial stack for **Ethiopia**. One
`docker compose up` gives you vector basemap tiles, turn-by-turn routing,
address search, and a polished web showcase — all from the daily
Geofabrik OpenStreetMap
extract, kept fresh automatically.
> ⚠️ **Heads up:** this is a **vibe-coded, simplified setup** for basic local
> use and experimentation — a friendly starting point, **not** a hardened
> production deployment. Expect rough edges and add real monitoring before
> relying on it. In particular: the data pipeline mounts the **host Docker
> socket**, which is root-equivalent access to the host — fine for a trusted
> local box, not for shared hosts. The Nominatim DB password defaults to
> `openkarta`; override it with `NOMINATIM_PASSWORD` (env var or an `.env`
> file next to the compose file).
Everything is fronted by a **single nginx gateway** on `:8000` — the app, the
API docs at `/docs`, and a reverse proxy to every backend. The individual
engines aren't published to the host.
```
┌──────────────────────────────────────────────────┐
Geofabrik OSM ──► │ data-pipeline (alpine + docker-cli) │
(ethiopia.pbf) │ 1 ingest → 2 Planetiler → 3 OSRM → 4 reload │
└──────┬───────────────┬───────────────────────────┘
│ mbtiles │ osrm graph
internal-only: ┌───▼────┐ ┌────▼───┐ ┌──────────┐ ┌────────┐ ┌───────┐
│ Martin │ │ OSRM │◄─┤ Nominatim│ │ Photon │ │ VROOM │
│ tiles │ │routing │ │ geocoder │ │ search │ │ optim.│
└───┬────┘ └──┬──┬──┘ └────┬─────┘ └───┬────┘ └───┬───┘
│ │ └────────────────(OSRM driver)────┘
└─────────┴────────┬───┴───────────┴──────────┘
┌──────────────────▼─────────────────────────────┐
│ web-showcase · nginx gateway :8000 │
localhost
│ app + /docs + reverse proxy: │
│ /tiles/ /osrm/ /photon/ /nominatim/ /vroom/ │
└────────────────────────────────────────────────┘
```
## Quick start
> **Ru …