Micron Document
Reticulum Manual 90/128
Git Configuration Parameters

Repositories created through rngit store metadata in Git configuration:
repository.rngit.type - Either fork or mirror
repository.rngit.upstream.source - The source URL used during creation
repository.rngit.upstream.sync - Unix timestamp of last successful sync for mirrors
These parameters are used by the sync system and can be queried using standard Git commands:

$ git config --get repository.rngit.type
mirror

$ git config --get repository.rngit.upstream.source
https://github.com/user/upstream

$ git config --get repository.rngit.upstream.sync
1716230400
Repository Structure

The rngit node organizes repositories into groups. Each group is a directory containing bare Git repositories. The repository path format is group_name/repo_name. For example, a repository at /var/git/public/myrepo would be accessible as public/myrepo via the URL rns://DESTINATION_HASH/public/myrepo.

Configuration

The rngit node configuration file is located at ~/.rngit/config (or /etc/rngit/config for system-wide installations). The default configuration includes:
• Repository group paths defining where to find bare repositories
• Access permissions for groups and individual repositories
• Announce intervals for network visibility
• Optional statistics recording for repository activity

Permissions

The rngit permission system provides fine-grained access control at multiple levels: group-level, repository-level, and document-level. Permissions can be statically configured in files or dynamically generated via executable scripts.

Access permissions can be configured at the group level in the config file or per-group .allowed files, or per-repository .allowed files. The s (stats) permission allows viewing repository activity statistics, including views, fetches and pushes over time. To enable statistics recording, set record_stats = yes in the [rngit] section of the configuration file. You can also exclude specific identities from statistics by adding their hashes to stats_ignore_identities.

By default, no permissions are granted for anything! You will have to enable the permissions you require to be able to actually do something with rngit.

Permissions can be modified by editing the rngit config file, individual .allowed files on disk, or remotely using the rngit perms command.

Permission Types

The following permissions are supported:
r (read) - Clone, fetch, and view repositories and work documents
w (write) - Push changes and manage work documents
rw (read/write) - Combined read and write access
c (create) - Create, fork or mirror new repositories within a group
s (stats) - View repository activity statistics
rel (release) - Create and manage releases
i (interact) - Comment on and interact with work documents
p (propose) - Propose new work documents (without full write access)
adm (admin) - Full access
Permission targets can be:
all or a - Everyone
none or n - Nobody
• A specific Reticulum identity hash

Permission Hierarchy

Permissions are resolved in the following hierarchy:

1. Repository-level permissions - Checked first, if none exists group permissions are checked

2. Group-level permissions - Used as fallback if no repository-level permissions are set

3. Admin override - Finally, potential admin rights are checked

For work documents, work document specific permissions are always checked first, and work documents have additional specific checks such as modifications only being possible by the document author.

Configuration Methods

Group-Level Configuration
Group permissions can be configured in the [access] section of the main config file:

[access]
public = r:all, w:9710b86ba12c42d1d8f30f74fe509286
internal = rw:9710b86ba12c42d1d8f30f74fe509286
collaborative = r:all, i:all, p:all, w:9710b86ba12c42d1d8f30f74fe509286