← All updates

Getting started with an always-on node

A short walkthrough from "freshly registered" to "private repositories replicating in the background".

Published by The Radicle Garden Team

Prerequisites

You’ll need a working Radicle setup before Radicle Garden can replicate anything:

Skip this section if you’re already using Radicle.

  1. Install Radicle on the machine where you write code.

  2. Create an identity (ED25519 key pair), which is what you’ll use to sign all the work you publish to Radicle. (In Radicle, all actions are cryptographically signed - this means you only need to trust the signer’s key - not a closed-source platform, or its big-tech owner).

  3. Start your node on this machine. This is a daemon process that runs in the background and announces your (public) work to the Radicle network and fetches others' work that you care about.

  4. Publish your first repository to the Radicle network.

At this point, you’ll have a repository seeded by your local node. Other nodes in the network can fetch your repository as long as your own node is online (or some other peer happens to be seeding it).

Connect your Radicle Garden node

Once you’ve completed the steps above (or if you’re an existing Radicle user), you can have your Radicle Garden node replicate repositories.

  1. Register for a new account. Make sure to select a suitable name for your node, as others will be able to browse your code under (node_name).radicle.garden.

  2. Start the 7-day free trial, following the on-screen instructions. You will need to provide a credit card, but you can cancel anytime and never be charged, if you are unhappy with the offering or if this wasn’t quite what you were looking for.

  3. Seed your repo on your public Radicle Garden node: Find the unique repository ID of your newly-published repository by running rad . inside the working copy where you ran rad init. Copy the rad:z…​ ID, switch to the web UI of your Radicle Garden node, click the "Add a repo" button and paste in the ID. Once you click "Add", your node will start fetching your git repository in the background.

  4. Your repository will now be seeded. Depending on the load of the peer-to-peer network, your code will be browseable under https://radicle.network/nodes/(node_name).radicle.garden/(repo_id)

Use Garden as your preferred seed

tl;dr

rad config push preferredSeeds <connect-address>
rad config push node.connect <connect-address>
rad node stop
rad node start

Under the hood

A preferred seed is the seed your local node treats as the canonical home for your code. Adding Garden as a preferred seed has three concrete effects:

  • Pushes target it by default. When you rad sync (or sync implicitly via rad init), your local node uses your preferred seeds as the seed set unless you pass --seed. The command considers the sync successful as soon as one of your preferred seeds confirms it has received your refs.

  • Browser URLs point to it. The rad CLI prints a "View it in your browser at…​" link after a successful sync from a preferred seed’s host — so with Garden set, your repo is browsable at https://radicle.network/nodes/(node_name).radicle.garden/…​; rather than at a public seed you don’t operate.

  • Your local node maintains a persistent connection to it. The node.connect list is what the Radicle daemon reads on startup to decide which peers to keep an open session with — connections to anything in there are reconnected automatically. Adding your Garden node to it means your local node re-establishes the Garden session every time it starts, instead of waiting for the next gossip round to rediscover it.

The push subcommand appends to the list — adding Garden as a preferred seed does not remove the seeds your config already had. Your local node keeps talking to whichever peers it already knew about; Garden is added to the front of that relationship, not in place of it.

Even though they look redundant, the two settings are complementary: - preferredSeeds governs sync targets and the browser URL; - node.connect governs reconnection behaviour.

Fine-print: The Radicle daemon does merge preferred seeds into node.connect in memory at startup, so a single preferredSeeds entry will keep you connected in practice — but listing Garden explicitly under both keeps each behaviour grounded in its own config key, and makes the intent obvious if anyone later inspects your rad config.

The <connect-address> is shown on your Radicle Garden dashboard once you’ve registered; it has the form <garden-node-id>@<host>:<port>.

From this point on, pushes from your local node propagate to your hosted node within a few seconds. You can leave your laptop closed and your collaborators will still be able to clone, fetch, and review.

What if something looks off?

Reach out to us on zulip for any issues you encounter, or if you have any questions.

Want to learn more about Radicle, the sovereign forge? Visit radicle.xyz
© 2026 The Radicle Team
Terms of Service Privacy Policy