niroku

NARRATIVE

This document explains the ideas behind niroku and the history of this project.

Why niroku exists

Making web maps available to everyone is no longer rocket science. The UN Maps platform is established, and many tools we use in the UNVT (UN Vector Tile Toolkit) ecosystem are maintained by strong open‑source communities.

Open‑source software brings value to different groups:

The UN Smart Maps Group promotes developers’ freedom and happiness through community connections and mutual respect. We keep web maps open, experiment with new technologies, and practice software freedom — the freedom to run, study, modify, and redistribute software.

We define Smart Maps as applying modern web‑mapping technologies for information‑based decision‑making.

Generative AI: agents and companions

We use generative AI in two ways:

As companions, AIs are not adversaries. We do not scold them, publicly attack them, or treat them as enemies. Errors made by our AI companions are our errors too. We accept these errors, and we fix them together. This is our culture.

In this niroku project, generative AI coded the scripts and the markdown files, with help from human members.

The portable web

We focus on the portable web so people can use and learn Smart Maps in constrained or unstable environments. Our goal is to make technologies used by full‑scale web map servers run smoothly on single‑board computers (SBCs) such as the Raspberry Pi 4B.

After experiments with object storage and the InterPlanetary File System (IPFS), we showed that tunneling technologies can deliver web maps at practical speeds for small groups, even from a home network.

We value the command‑line interface (CLI) and embrace Unix and web cultures.

How niroku fits in

niroku is a small installer that brings together Caddy (web server) and Martin (tile server) with useful tools for field use. It focuses on:

niroku installs web map data production tools such as tippecanoe, go-pmtiles, gdal-bin. See README.md for details.

History (short)

Principles

What is next

What this project does

niroku provides a small, auditable installer to set up a local web map server on Raspberry Pi OS (trixie). Concretely, it:

The focus is reliability, clarity, and ease of review.

How we develop

We follow a simple and transparent workflow:

  1. Keep edits small and easy to review
  2. Prefer readable shell over clever shell
  3. Use symmetry: anything installed by install.sh must be removable by uninstall.sh
  4. Write documentation in easy English for non‑native speakers
  5. Respect security: prefer verified repositories and signatures where practical
  6. Test on Raspberry Pi devices when possible
  7. Handle errors gracefully: provide fallback paths, multiple download candidates, and clear error messages
  8. Log everything: installation and uninstallation logs help with remote troubleshooting

Our companion AI helps with edits, checks, and remote tests. We do not shift blame to the AI; errors are shared and fixed together.

Testing and operations

Lessons learned

Through real-world testing, we discovered and fixed several issues:

These improvements make niroku more reliable in real field deployments across different Raspberry Pi models.