
Example can be found at https://pelora.org/
The DeepWiki page for Chicha Isotope Map was kindly created by Rob Ouden from the Safecast project, to whom we are deeply grateful. This page opens the inner structure of our program, so that developers may understand its foundations, follow its logic, and continue the work by improving and extending it. Thanks to DeepWiki, the code is not just a tool, but a living project that can grow and evolve with the help of many hands.
👉 DeepWiki: Chicha Isotope Map
No fluff. The image ships with the database (PostgreSQL) built in. Copy the command, run it — you’re done.
docker run -d \
--name chicha-isotope-map \
-p 8765:8765 \
-v chicha-data:/var/lib/postgresql/data \
-e DEFAULT_LAT=44.08832 \
-e DEFAULT_LON=42.97577 \
-e DEFAULT_ZOOM=11 \
-e DEFAULT_LAYER="OpenStreetMap" \
--restart unless-stopped \
matveynator/chicha-isotope-map:latest
Open: http://localhost:8765
docker run -d \
--name chicha-isotope-map \
-p 80:80 -p 443:443 \
-v chicha-data:/var/lib/postgresql/data \
-e DOMAIN=example.org \
-e DEFAULT_LAT=44.08832 \
-e DEFAULT_LON=42.97577 \
-e DEFAULT_ZOOM=11 \
-e DEFAULT_LAYER="OpenStreetMap" \
--restart unless-stopped \
matveynator/chicha-isotope-map:latest
Once the certificate is issued, go to: https://example.org
DOMAIN
— enables HTTPS on ports 80/443 with automatic Let’s Encrypt certificates (for a public node).DEFAULT_LAT
,DEFAULT_LON
— initial map coordinates.DEFAULT_ZOOM
— initial zoom (11 is a convenient city level).DEFAULT_LAYER
—OpenStreetMap
orGoogle Satellite
.PORT
— app’s internal port (defaults to 8765; you usually don’t change this).
Tip: keep your data on the volume
-v chicha-data:/var/lib/postgresql/data
so it survives container updates.
Daily backup (03:00):
0 3 * * * docker exec chicha-isotope-map pg_dump -U chicha_isotope_map chicha_isotope_map | gzip > /backup/chicha_isotope_map_$(date +\%F).sql.gz
Restore from archive:
docker exec -it chicha-isotope-map psql -U postgres -c "DROP DATABASE IF EXISTS chicha_isotope_map; CREATE DATABASE chicha_isotope_map OWNER chicha_isotope_map;"
zcat /backup/chicha_isotope_map_2025-07-24.sql.gz | docker exec -i chicha-isotope-map psql -U chicha_isotope_map chicha_isotope_map
Grab the binary for your OS, make it executable, and run.
Linux x64
sudo curl -L https://github.com/matveynator/chicha-isotope-map/releases/download/latest/chicha-isotope-map_linux_amd64 \
-o /usr/local/bin/chicha-isotope-map \
&& sudo chmod +x /usr/local/bin/chicha-isotope-map \
&& chicha-isotope-map
macOS Intel (x86_64)
sudo curl -L https://github.com/matveynator/chicha-isotope-map/releases/download/latest/chicha-isotope-map_darwin_amd64 \
-o /usr/local/bin/chicha-isotope-map \
&& sudo chmod +x /usr/local/bin/chicha-isotope-map \
&& chicha-isotope-map
macOS Apple Silicon (arm64)
sudo curl -L https://github.com/matveynator/chicha-isotope-map/releases/download/latest/chicha-isotope-map_darwin_arm64 \
-o /usr/local/bin/chicha-isotope-map \
&& sudo chmod +x /usr/local/bin/chicha-isotope-map \
&& chicha-isotope-map
Other platforms (Windows / ARM / BSD) — see the releases page: https://github.com/matveynator/chicha-isotope-map/releases/tag/latest
If you’re launching the chicha-isotope-map
binary directly, here’s what matters. First the essentials; more options below.
-
-domain string
— enables HTTPS and binds to ports 80 and 443 with automatic Let’s Encrypt certificates. Your domain must point to your server, and ports 80/443 must be open.- Example:
sudo chicha-isotope-map -domain maps.example.org -default-lat 44.08832 -default-lon 42.97577 -default-zoom 11 -default-layer "OpenStreetMap"
- Example:
-
-port int
— HTTP server port (defaults to 8765). Handy for local runs without a domain.- Example:
chicha-isotope-map -port 8765
- Example:
-
-default-lat float
&-default-lon float
— initial map latitude and longitude.- Example:
-default-lat 44.08832 -default-lon 42.97577
- Example:
-
-default-zoom int
— initial zoom level (city is usually 11–13).- Example:
-default-zoom 11
- Example:
-
-default-layer string
— base layer:OpenStreetMap
orGoogle Satellite
.- Example:
-default-layer "Google Satellite"
- Example:
-
-db-type string
— DB driver:duckdb
,chai
,sqlite
,pgx
(PostgreSQL). Default issqlite
. -
-db-path string
— DB file path forduckdb
/chai
/sqlite
(defaults to current directory if not set).- Example:
-db-type sqlite -db-path /var/lib/chicha/chicha.sqlite
- Example:
-
-db-host string
,-db-port int
(default 5432),-db-name string
,-db-user string
,-db-pass string
— PostgreSQL connection params forpgx
.- Example:
-db-type pgx -db-host 127.0.0.1 -db-port 5432 -db-name chicha_isotope_map -db-user postgres -db-pass secret
- Example:
-
-pg-ssl-mode string
— PostgreSQL SSL mode:disable
,allow
,prefer
(default),require
,verify-ca
,verify-full
.- Example:
-pg-ssl-mode require
- Example:
-version
— print version and exit.
-
Local, no HTTPS:
chicha-isotope-map \ -port 8765 \ -default-lat 44.08832 -default-lon 42.97577 \ -default-zoom 11 \ -default-layer "OpenStreetMap"
-
Public server with HTTPS on 80/443:
sudo chicha-isotope-map \ -domain maps.example.org \ -default-lat 44.08832 -default-lon 42.97577 \ -default-zoom 11 \ -default-layer "OpenStreetMap"
-
Single‑file storage (SQLite):
chicha-isotope-map \ -db-type sqlite -db-path /var/lib/chicha-isotope-map.sqlite \ -port 8765 \ -default-lat 44.08832 -default-lon 42.97577 -default-zoom 11
-
Connect to PostgreSQL:
chicha-isotope-map \ -db-type pgx \ -db-host 127.0.0.1 -db-port 5432 \ -db-name chicha_isotope_map -db-user postgres -db-pass secret \ -pg-ssl-mode require \ -default-lat 44.08832 -default-lon 42.97577 -default-zoom 11
DuckDB is an embedded database: one file, no server, written in C++. The Go driver depends on CGO and shared libraries, so we build it with:
CGO_ENABLED=1 go build -tags duckdb
Run with:
./chicha-isotope-map -db-type duckdb
(On macOS you may simply download the prebuilt releases)
- Simple: your community, your map.
- Useful: a local history of background levels for your city/area/facility — and it’s yours to keep.
- Good for the network: more nodes → more transparency and resilience.
Chicha‑Isotope‑Map isn’t just software — it’s a window into a world of microparticles, invisible to the eye but obvious to an instrument. What used to be guesswork is now drawn as bright dots on a map, from calm greens to alarming reds.
-
What does it read, and from where?
- Files in
.kml
,.kmz
,.json
,.rctrk
,.csv
,.gpx
formats (AtomFast, RadiaCode, Safecast and others). - bGeigie Nano/Zen
$BNRDD
logs in.log
/.txt
(Safecast). - Everything is saved to its own database so that years later you can say, “On March 12, 2008, this spot measured 4.1 µR/h.”
- Files in
-
What’s our baseline?
- Natural background radiation in a “clean” area is about 0.8–4 µR/h.
- Anything above that is anthropogenic contamination. You’ll see how isotopes were scattered by wind, traffic, and people — like footprints on fresh snow.
Chicha‑Isotope‑Map can ingest bGeigie Nano/Zen track logs that contain $BNRDD
sentences.
- Open your node (for local runs:
http://localhost:8765
). - Click the “Upload” button in the top‑right corner.
- Select one or more
.log
/.txt
files exported from your bGeigie Nano/Zen. - Wait until processing finishes — you’ll be automatically redirected to the uploaded track view.
Notes
- Multiple files can be uploaded at once; the last successful track will open automatically.
- The parser supports Zen ISO‑8601 timestamps and DMM coordinates with hemispheres, as well as a legacy compact variant.
POST /upload
with multipart form field files[]
for each file. Example using curl:
curl -s -F 'files[]=@/path/to/your_bgeigie.log' \
-F 'files[]=@/path/to/another.log' \
http://localhost:8765/upload
# → {"status":"success","trackURL":"/trackid/ABC123?minLat=..."}
The UI does the same under the hood (see public_html/map.html
).
If you need quick per‑file parsing stats (records/parsed/skipped and sample reasons), use:
curl -s -F 'files[]=@/path/to/your_bgeigie.log' \
http://localhost:8765/upload_diag | jq .
This endpoint does not change the regular /upload
behavior; it just returns JSON with bounds, detected format, and parsing statistics for each file.
... Back in the Soviet era, an open‑air pool was being built in Kislovodsk Park. They may have used concrete from a plant in Pyatigorsk that once processed radioactive ore from Mount Beshtau. Trucks drove along the road; dust from their wheels settled on the asphalt, leaving invisible marks. Years have passed, yet those traces still glow — memories of what once was. Dust that blew around the construction site settled in the park; on the map it shows up yellow, like patches of autumn leaves. The rest of the park is clean, calm, and green.
- Bring up a node on a domain with HTTPS (
-e DOMAIN=...
+ expose80
and443
). - Add a screenshot and a brief blurb (city, area, what your measurements cover).
- Leave a note in the project repository’s Issues.
The Chicha Isotope Map was created for the Dmitry Ignatenko Radiation Research Lab, and finds its inspiration in Safecast — the remarkable Japanese community of citizen-scientists who transformed the tragedy of Fukushima into a gift of scientific knowledge.
By searching, measuring, and openly sharing the truth about radiation, you make the invisible visible. In doing so, you help the world avoid repeating the painful lessons of Chernobyl and Fukushima.
Your work is a light — of science, of safety, and of hope. Thank you for turning background radiation from something feared into something understood.
Thank you for your courage: for seeking, measuring, sharing, and — above all — for being the first to step forward.
We also extend our heartfelt gratitude to the AtomFast and Radiacode communities for their invaluable contributions — for measuring, and for generously sharing their data with the world.