Congratulations Greg for the first git over LoRa transmission :)
And again my highest praise to you Mark for providing the means to make such awesome feats possible :)
As a mere mortal I am unfortunately stuck with a git-remote-rns failed: Server refused list: Not found error (see "Test rngit" section below).
I don't want to turn this into a "help me" post. I am optimistic that I will eventually figure it out ... but anyway, here is what I did.
System Information
Platform: Linux-6.1.0-44-amd64-x86_64 (Debian)
Reticulum: 1.2.0 from source
Python: 3.14.4 with GIL
Setup rngit
Install latest Reticulum from source
$ pip install git+https://github.com/markqvist/reticulum
Configure local only Reticulum
~/.reticulum/config
[reticulum]
enable_transport = no
share_instance = yes
instance_name = local
[interfaces]
[[Auto Server]]
type = AutoInterface
enabled = yes
Create server repository
$ mkdir ~/rngit
$ mkdir ~/rngit/server
$ mkdir ~/rngit/server/test.git
$ cd ~/rngit/server/test.git
$ git init --bare
Create local repository
$ mkdir ~/rngit/local
$ mkdir ~/rngit/local/test
$ cd ~/rngit/local/test
Initialize and configure local `test` repository:
$ git init \
&& git config init.defaultBranch master \
&& git config user.name r8io \
&& git config user.email r8io@example.com \
&& git remote add rns rns://0ab9a453107fc87cc4e7418209734502/server/test
Show configuration
$ git config --local --list
Make initial commit to local repository
$ cd ~/rngit/local/test
Create a file:
$ echo "Commmit 1" > test.txt
Commit:
$ git add *
$ git status
$ git commit -m 'Initial commit'
$ git log
Start Reticulum
$ rnsd -v
Initialize rngit
$ rngit
Default config file created. Make any necessary changes in ~/.rngit/config and restart rngit.
Print rngit info
$ rngit -p
Git Peer Identity : <32d4b47da0ccc32ac91f58917bfed41d>
Repository Node Identity : <9dc004dbea9902ac08cd07b6cec4172f>
Repositories Destination : <0ab9a453107fc87cc4e7418209734502>
Configure rgit
~/.rngit/config
[rngit]
node_name = rngit_node
[repositories]
internal = ~/rngit/server
[access]
internal = rw:32d4b47da0ccc32ac91f58917bfed41d
Test rngit
Start rngit
$ rngit -vv
Reticulum running in interpreted mode
Connected to locally available Reticulum instance via: LocalInterface[rns/local]
Utilising cryptography backend "openssl, PyCA 46.0.7"
Configuration loaded from ~/.reticulum/config
Loaded 23 known destination from storage in 294.45µs
Loaded Transport Identity from storage
Starting Reticulum Git Node...
Repositories identity loaded from ~/.rngit/repositories_identity
Loading repositery group "internal"
Loaded 1 repository for group "internal"
Reticulum Git Node listening on <0ab9a453107fc87cc4e7418209734502>
Announcing repositories destination
Clone test repository from rngit_node
$ cd ~/rngit/local
$ git clone rns://0ab9a453107fc87cc4e7418209734502/server/test test-clone
Cloning into 'test'...
Link established with remote
git-remote-rns failed: Server refused list: Not found
The corresponding rngit log output
Link request includes MTU signalling
Incoming link request with mode AES_256_CBC
Validating link request <a8721d3cc93ca39bcd67e1825706f6ca>
Incoming link request <a8721d3cc93ca39bcd67e1825706f6ca> accepted on LocalInterface[rns/local]
Peer connected to <git.repositories.9dc004dbea9902ac08cd07b6cec4172f:0ab9a453107fc87cc4e7418209734502>
Peer identified as <32d4b47da0ccc32ac91f58917bfed41d> on <a8721d3cc93ca39bcd67e1825706f6ca>
Handling request <1ee5859e84a66accd39dfea97c2bfc6d> for: /git/list
List request from remote <32d4b47da0ccc32ac91f58917bfed41d>
Resolving server/test permission 1 for <32d4b47da0ccc32ac91f58917bfed41d>
Peer disconnected from <git.repositories.9dc004dbea9902ac08cd07b6cec4172f:0ab9a453107fc87cc4e7418209734502>
Cleaned 1 links
Push local test repository to rngit_node
$ cd ~/rngit/local/test
$ git push rns master
Link established with remote
git-remote-rns failed: Server refused list: Not found
The corresponding rngit log output
Link request includes MTU signalling
Incoming link request with mode AES_256_CBC
Validating link request <05f4a7c80634e42566e31a0b60745af4>
Incoming link request <05f4a7c80634e42566e31a0b60745af4> accepted on LocalInterface[rns/local]
Peer connected to <git.repositories.9dc004dbea9902ac08cd07b6cec4172f:0ab9a453107fc87cc4e7418209734502>
Peer identified as <32d4b47da0ccc32ac91f58917bfed41d> on <05f4a7c80634e42566e31a0b60745af4>
Handling request <3937e0a05672fa5541e55e133538c07b> for: /git/list
List request from remote <32d4b47da0ccc32ac91f58917bfed41d>
Resolving server/test permission 2 for <32d4b47da0ccc32ac91f58917bfed41d>
Peer disconnected from <git.repositories.9dc004dbea9902ac08cd07b6cec4172f:0ab9a453107fc87cc4e7418209734502>
Cleaned 1 links