Commit graph

13 commits

Author SHA1 Message Date
f0055ea515
"discovery: mDNS/DNS-SD peer discovery; dynamic upstream management"
Allows ncro instances to discover each other dynamically without static
configuration and enables a peer-to-peer style (hello funny cube) mesh
where nodes share cached builds locally instead of all hitting upstream
caches.

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I7d723876c6816cb6aaaf3fe14cb24a426a6a6964
2026-04-05 22:33:20 +03:00
262c72def2
ncro: split into main.go entrypoint and root.go command; inject version via ldflags
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I640d23c9fb4e53ee22b1c835b08b70896a6a6964
2026-04-05 22:33:17 +03:00
b1b07c0510
ncro: migrate CLI to cobra/viper
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I4707bb1927224624f811ce4d3f2f8a3b6a6a6964
2026-04-05 22:33:15 +03:00
ea097ed437
config: add server.cache_priority for configurable /nix-cache-info Priority
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ibe9c357ea2c56a967c75be04c2099f536a6a6964
2026-04-05 22:33:11 +03:00
ef95a69295
prober: persist health across restarts via callback; seed from DB on startup
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ica467d6db76c495a6ccadbad89276b536a6a6964
2026-04-05 22:33:07 +03:00
4abd35ca07
server: route NAR requests via route cache; extract tryNARUpstream helper
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Icd57a268015d58faa7ffc2b8c711283b6a6a6964
2026-04-05 22:33:05 +03:00
88a3aba0ba
cache: add negative cache; router: skip race for cached 404s
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ibeb44b313850395898bb20f2d947b0b76a6a6964
2026-04-05 22:33:01 +03:00
8d43d9cec6
router: add singleflight deduplication for concurrent narinfo races
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ib682889f34ad4ad4fb331ee2924dc9916a6a6964
2026-04-05 22:32:59 +03:00
f4804d2150
ncro: wire narinfo signing, mesh peer keys, and RouteEntries gauge
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iee018615044ec5c860877224238ff8ce6a6a6964
2026-03-15 11:01:47 +03:00
d290bcf4ad
mesh: implement UDP gossip transport; wire mesh comms into main
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iea0b2f250b01df78b1c7be73d69d28c06a6a6964
2026-03-15 11:01:42 +03:00
02e7065171
ncro: call Validate() in main; wire metrics, priority, and mesh stub
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I428e17606daf1833d5aea20a22461abe6a6a6964
2026-03-15 11:01:40 +03:00
ee6c2d6368
ncro: wire all components; handle shutdown more gracefully
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I81fab7fa2cfa5a109b8b317fa53f10d86a6a6964
2026-03-15 11:01:30 +03:00
356aa999af
initial commit
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iec17afe27e51e55d53e09479fcdfd4456a6a6964
2026-03-15 11:01:11 +03:00