Skip to main content

Overview

This template provides a production‑ready Radicle instance as a Monk runnable. You can:
  • Run it directly to get a managed peer-to-peer code collaboration platform
  • Inherit it in your own infrastructure to add decentralized Git hosting
Radicle is a sovereign peer-to-peer network for code collaboration. It enables developers to collaborate on code without relying on trusted intermediaries. Built on Git, Radicle provides secure peer-to-peer collaboration, resilient to censorship and centralized control.

What this template manages

  • Radicle node (seed node)
  • Radicle HTTP API
  • Git repository hosting
  • Peer-to-peer networking
  • Identity and authentication
  • Web UI on port 8080 (httpd)

Quick start (run directly)

  1. Load templates
  1. Run Radicle seed node
  1. Customize configuration (recommended via inheritance)
Running directly uses the defaults defined in this template’s variables. To customize node configuration:
  • Preferred: inherit and override variables as shown below.
  • Alternative: fork/clone and edit the variables in radicle.yaml, then monk load MANIFEST and run.
Once started:
  • HTTP API: http://localhost:8080
  • Connect with Radicle CLI (rad)

Configuration

Key variables you can customize in this template:
Data is persisted under ${monk-volume-path}/radicle on the host. Inherit the Radicle seed node in your infrastructure for decentralized Git hosting. Example:
Run the seed node:

Ports and connectivity

  • Service: radicle-httpd on TCP port 8080 (HTTP API)
  • Service: radicle-node on TCP port 8776 (P2P network)
  • Git over HTTP: accessible via HTTP API
  • From Radicle CLI, connect to seed node using node ID and address

Persistence and data

  • Data path: ${monk-volume-path}/radicle:/app/.radicle
  • Git repositories: stored in Radicle storage
  • Node identity and configuration persisted in data path

Features

  • Peer-to-Peer: No central server, censorship-resistant
  • Git Native: Built on Git, compatible with existing workflows
  • Cryptographic Identity: Key-based authentication
  • Offline-First: Work locally, sync when connected
  • Social Coding: Issues, patches, and discussions
  • Seed Nodes: Public nodes for discovery and availability
  • Secure: End-to-end encrypted, signed commits

Radicle CLI Usage

Install Radicle CLI and connect to your seed:

Seed Node

Seed nodes provide:
  • Discovery: Help peers find each other
  • Availability: Always-online repository hosting
  • Replication: Backup copies of repositories
  • HTTP Gateway: Web access to repositories

Identities

Radicle uses cryptographic identities:
  • Device ID: Unique identifier for each device
  • Project ID: Unique identifier for each project
  • Peer ID: Unique identifier for each peer

Use cases

Radicle excels at:
  • Decentralized open-source development
  • Censorship-resistant code collaboration
  • Private team collaboration without GitHub
  • Air-gapped environments
  • Sovereign infrastructure
  • Web3 and crypto projects

Integration with Git

Radicle integrates seamlessly:
  • Combine with monitoring tools for observability
  • Integrate with CI/CD pipelines for automated workflows

Troubleshooting

  • Access HTTP API at http://localhost:8080 to verify the seed node is running.
  • Check node status:
  • View node ID and peer list:
  • Check logs:
  • For connectivity issues:
    • Verify P2P port 8776 is accessible from external networks
    • Check firewall rules allow incoming connections on port 8776
    • Ensure external-address matches your actual public address
  • For synchronization issues, check seed node connectivity and peer list
  • Monitor disk space for repository storage under ${monk-volume-path}/radicle
  • Ensure system time is synchronized (important for P2P networking)