Reticulum Git Repos

It turns out that RNGit is really, really easy to set up. The current version hosts repos and pages over reticulum. That is, for the repos hosted there is an option to automatically expose the repo as pages and to convert content appropriately to micron format to be able to see it in a reticulum browser.

the setup

This is my bare bones setup, as I just figured out how to use it today and am now hosting all of my public projects over reticulum.

Running rngit the first time will generate ~/.rngit/config. There’s enough documentation in there to figure out what to do, but I was briefly confused by having a bunch of sample paths and projects in the file already. They point to bad baths. But anyway, to summarize:

public projects

node_name

I wanted my stuff publicly findable, so I set it to thatit.be projects.

repositories

This section defines groups and a top level directory of git repos to expose.

I created a group called public and pointed it at the OS path where my public projects are and commented out all the example groups.

The names of projects in the top level folder that define the group don’t necessarily have to end in .git but the repositories do need to be bare style. IE they were created with something like git init --bare my-cool-repo.git or git init --bare my-cool-repo. If there are cloned repositories in the same directory, they don’t get exposed. There will be some warning messages generated about this if it’s an issue. That was handy because I have a clone of my hooks repository in there that projects actually sym link against for their git hooks.

access

Here, name value pairs say who gets what kind of access at the group level. That is, identities can be granted for group level permissions. To make the permissions project-level instead of group level, it requires creating additional files in the group folder, adjacent to the git repo (that is, same name as the git repo, but with a different suffix). I just have one group so far, so I haven’t made use of the finer grained controls, so mine just looks like this:

In my case, the hash value was discovered by running rngit -p on the system that was going to be cloning, and then that value is what I put in the file instead of the literal myhashhere.

pages

I turned on page serving and set the icons to just be Unicode glyphs. Some of my systems don’t have nerd fonts, so I figured maybe there were others like me out there who might appreciate seeing the glyphs.

Having them served over nomad makes it easier to get a URL for cloning. I’m probably going to nuke my http/s serving in favor of using reticulum.

running it

I plan to add a service to launch all the different reticulum pieces when the server starts up, but I haven’t done that yet. Instead I have a tmux session where I’ve run the following in a pane by itself:

This will display both the pages hash that can be browsed in NomadNet and the address that can be used to clone from. They’re not the same. The pages hash will allow browsing all the things and drilling down into a project will show all kinds of good stuff. Including the full path that can go to git clone.

Here’s what mine look like:

From this, I can browse cb25045779434281de01803bac4808fb on NomadNet to see what’s available. Because I know I put them in a public group and I happen to know one of my repositories is named ansihelper.nvim.git I can figure out the address to clone:

what I’m not using

There are templates that can be defined to control how pages are rendered. That’s pretty cool, but I’m probably never going to use that. Unless I see someone do something cool with it.

what I will use later

There will soon be options for running pipelines, automatic mirroring, and who-knows-what else! I’ll probably kill my lame pipeline running logic in my hooks project so that I can use that.

Tags: index, reticulum

Tags

#index

#reticulum

index

tags

prev ⏰

⏰ next

created: 2026-05-16

(re)generated: 2026-05-22

page source

Proxied content from gemini://thatit.be/2026-05-16-19-37-21.gmi (external content)

Gemini request details:

Original URL
gemini://thatit.be/2026-05-16-19-37-21.gmi
Status code
Success
Meta
text/gemini
Proxied by
kineto

Be advised that no attempt was made to verify the remote SSL certificate.