Radicle
- "Radicle is an open source, peer-to-peer code collaboration stack built on Git. Unlike centralized code hosting platforms, there is no single entity controlling the network. Repositories are replicated across peers in a decentralized manner, and users are in full control of their data and workflow." - from radicle.xyz.
See upstream documentation for any missing parts.
Radicle, though great, has some notable missing features compared to Forgejo:
- The web frontend is purely read-only, interaction is done only via the CLI or the desktop application.
- No "releases". Unless you count git tags.
- No built-in "project management", e.g kanban. See #Planning board/kanban.
- Relatively simple issue management with assigning, commenting, reacting & tagging.
- No "milestones", "due date" or "dependencies".
- No bundled package registries, you will have to use a separate programs.
If you're alright without those features, or find the minimalism itself a feature, then continue on.
Installation
Install the radicle-binAUR package which includes radicle-cli-binAUR and radicle-node-binAUR.
Configuration
First we need to generate our Radicle DID (Decentralized Identifier):
$ rad auth
We can also query it with:
$ rad self
To be able to have any peer to peer communications, we need to have our node up and running:
$ rad node start
We can query the node's status with:
$ rad node status
Usage
Radicle manages issues and content distribution, but the core is still git, so make sure you're familiar with it.
In an already initialized git repository, create a globally unique Repository ID (RID).
$ rad init
This creates a new remote "rad".
$ git remote show rad
We can now locally or remotely clone the repository with the shown "Fetch URL". We can also emit the "//" from the command.
$ rad clone rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
The example RID is for heartwood, the backbone for radicle.
We can also just seed the repository without checking it out.
$ rad seed rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
And to stop seeding:
$ rad unseed rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
The seeded repositories storage directory is mentioned in rad self as "Home" => "Storage".
We can list all, including seeded, repositories with:
$ rad ls --all
Managing Issues
Radicle bundles issues with the repository.
$ rad issue
Seed node Setup
Node uptime isn't guaranteed for regular users, so having a dedicated server to seed your repository is a good idea.
Also see upstream guide.
Instead of running rad seed for every new repository you might create. It's simpler to "follow" your node to automatically seed every published repository.
$ rad follow
Frontend Web Server Setup
Since radicle is decentralized, there is no real need for a server, but for users not using radicle, it can be used to introduce them and to clone with regular git.
Note that the frontend is purely read-only. You can not "log in" nor create issues with it.
Frontend maintained by the core team: https://app.radicle.xyz/
Install the radicle-httpd-binAUR
Tips and tricks
CI/CD
See radicle-ci-broker.