Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
RAD(1)			      Radicle CLI Manual			RAD(1)

NAME
       rad - Radicle command-line tooling.

SYNOPSIS
       rad *

DESCRIPTION
       The Radicle CLI is a set	of tools designed for users of the Radicle
       peer-to-peer code collaboration stack. The CLI provides the ability to
       manage Radicle profiles and publish repositories	to the Radicle
       network.

REQUIREMENTS
       There are a few important requirements for running the Radicle CLI:
       first, a	recent version of git (2.34.0 or later)	must be	installed. You
       can check your installation by running git --version. Second, ssh-agent
       must be installed and running. To bypass	ssh-agent, it's	possible to
       set the RAD_PASSPHRASE environment variable. See	the Environment
       section.

GETTING	STARTED
       Let's see how we	can setup Radicle and clone a repository from the
       network.

       Before we start,	make sure that the rad binary is available on your
       system by running:

	   $ rad

       This is the base	command	and the	output will show you all available
       sub-commands.

   Creating a profile
       When using Radicle for the first	time, you have to create a new Radicle
       profile.	A profile is simply a cryptographic key	pair associated	with
       some storage space on your local	device.	Radicle	stores everything
       under the Radicle home directory, which defaults	to ~/.radicle on most
       systems.	To create your profile,	run:

	   $ rad auth

       Follow the instructions by entering an alias and	a passphrase to
       protect your key	pair. When you've completed the	steps, your new
       Radicle DID (Decentralized Identifier) will be displayed. This
       identifies your device, as well as all the code you publish. Share it
       freely with collaborators. Your alias is	a non-unique name that is
       shared across the network to identify your node.	It can always be
       changed at a later time.

       After running rad auth, you should have a new profile and key pair
       under your Radicle home.	The key	pair is	used for identifying peers
       across the network, as well as signing code and other artifacts
       published on the	network.

       To avoid	having to re-enter your	passphrase every time a	signature is
       required, rad auth adds your secret key to ssh-agent.

       You can always display the full path to your Radicle home directory
       using:

	   $ rad self --home

       The self	sub-command is useful for querying profile information.	You
       can run it without any arguments	to show	all of your profile
       information, including your DID:

	   $ rad self

   Connecting to the network
       Radicle is a peer-to-peer system. This means that there are no clients
       or servers; only	nodes, and every user has to run their own. This
       ensures that there is no	single point of	failure, and the Radicle
       network can keep	on existing as long as there are users to run nodes.

       The Radicle node	is a lightweight process that runs in the background
       and manages connections with other nodes, as well as data replication.
       To check	your node's status, run:

	   $ rad node status

       If the node is not running, you can start it with:

	   $ rad node start

       This will start the node	in the foreground. Simply add --daemon to run
       the node	in the background.

       When daemonized,	the node will log all output to	a file under your
       Radicle home. On	most systems, this will	be ~/.radicle/node/node.log.

       You can also display the	latest logs at any time	using:

	   $ rad node logs

       After your node starts, it will attempt to connect to peers on the
       network.

       To connect to a specific	peer, the connect sub-command can be used: For
       example,	to connect to the radicle.garden community node, you can run:

	   $ rad node connect z6MkrLMMsiPWUcNPHcRajuMi9mDfYckSoJyPwwnknocNYPm7@seed.radicle.garden:8776

       The argument given to connect is	called a node address. It is composed
       of a Node ID (NID), followed by an @ symbol, and	the host name and
       port. You can display your NID with rad self --nid.

       To make these connections permanent, such that they are always tried on
       startup,	add the	addresses to your configuration	file at
       ~/.radicle/config.json, under the "connect" field.

       Now that	you're connected to the	network, we can	try to clone a
       repository hosted on Radicle.

   Cloning a repository
       To clone	a repository from the Radicle network, you need	to be
       connected to a seed which is hosting the	repository. Eventually,	this
       won't be	necessary, but for now,	a direct connection with the seed you
       are cloning from	is required. Once the connection is established, you
       can run the rad clone command to	clone a	repository, by supplying a
       Repository Identifier (RID). RIDs are globally unique URNs that
       identify	a repository on	Radicle. For example, let's clone the Radicle
       heartwood repository:

	   $ rad clone rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5

       If the command succeeds,	you will have a	checkout of the	repository
       under ./heartwood, with a rad remote setup, which you can pull from and
       push to.

       The rad remote is special in that it will always	return the
       authoritative branch of the repo, when fetched from. This is defined as
       the latest commit on the	repository's default branch that a threshold
       of delegates have published.

       Under the hood, the clone command does a	few important things:

          It subscribes to updates from this repository; this is called
	   tracking.

          It creates a	copy of	the repository under your local	storage, which
	   provides a replica to the network.

          It creates a	Git remote for every repository	delegate. These	are
	   usually the repository maintainers.

          It creates a	fork of	the repository that is under your public key.

          It creates a	rad remote which you can push to, to update your fork.

       You can see all replicated and locally-available	repositories using:

	   $ rad ls --all

       By default, your	node will subscribe to updates from all	peers. This
       behavior	can be changed by passing --scope followed when	cloning. It
       can also	be changed later via the rad seed command.

   Publishing a	repository on Radicle
       To publish an existing Git repository on	the Radicle network, navigate
       to a working copy and run the rad init command:

	   $ cd	my-repo
	   $ rad init

       You will	be prompted to enter a repository name and default branch.
       Once the	repository is created, the Repository Identifier (RID) will be
       printed.	Share this with	collaborators so that they can clone your
       repository.

       Note that your new repository will only be replicated by	nodes that you
       are connected to	and either have	an open	tracking policy, or trust your
       Node ID.

       The rad init command creates a special remote in	your working copy
       named rad. Pushing to this remote publishes changes to your local
       storage and to the network.

       You can view information	about the rad remote with:

	   $ git remote	show rad

       You can display the Repository ID (RID) from the	root of	any Git
       repository by running:

	   $ rad .

       You can also show the repository's identity payload, which contains its
       name, description and default branch by running:

	   $ rad inspect --payload

FILES
       ~/.radicle
	   The Radicle Home. This is the default location for Radicle
	   configuration files,	keys, and repository storage. Can be
	   controlled by settting the RAD_HOME environment variable.

       ~/.radicle/config.json
	   The default configuration file for Radicle. To display its exact
	   location on your system, you	can use	the rad	self --config command.

ENVIRONMENT
       Various environment variables are used by rad.

       RAD_HOME
	   This	sets the location of your Radicle home.	If unset, your Radicle
	   home	will be	located	at ~/.radicle.

       RAD_PASSPHRASE
	   If you would	like to	bypass ssh-agent, you can store	your
	   passphrase in this environment variable. Note that this is not
	   secure and is equivalent to having an unencrypted secret key.

AUTHOR
       The Radicle Team

rad 1.0.0			  1970-01-01				RAD(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=rad&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help