# ❤️🪵 > ## Fork: Git LFS support, backed by IPFS > > This is a fork of upstream [`radicle-dev/heartwood`](https://github.com/radicle-dev/heartwood) > adding Git LFS (large file) support, with large file content stored on each contributor's own > local IPFS node rather than a central server. Everything below the horizontal rule is > upstream's own README, unchanged. See [`LFS-IPFS.md`](LFS-IPFS.md) for the full design, > troubleshooting, and background — this section is just the quick start. > > The LFS byte-transfer logic lives in a separate, small companion repository: > [**radicle-lfs-transfer**](https://git.hswro.org/mab122/radicle-lfs-transfer), included here > as a git submodule. > > ### Dependencies (Arch Linux) > > ```sh > # To build and install rad/radicle-node/radicle-lfs-transfer > sudo pacman -S --needed rust git openssh base-devel > > # To actually use Git LFS (not needed to build/install anything) > sudo pacman -S --needed git-lfs kubo > ``` > > On other distributions: a Rust toolchain (e.g. via [rustup](https://rustup.rs)), Git, OpenSSH, > a C toolchain — and, only for using `rad lfs`, [Git LFS](https://git-lfs.com) and > [Kubo](https://docs.ipfs.tech/install/). > > ### Zero to usable > > ```sh > # Clone with the submodule > git clone --branch rad-lfs-ipfs --recurse-submodules \ > ssh://git@git.hswro.org:9022/mab122/radicle-heartwood-lfs.git > cd radicle-heartwood-lfs > > # Build & install rad, radicle-node, git-remote-rad, and rad-lfs-transfer to one place > cargo install --path crates/radicle-cli --force --locked --root ~/.radicle > cargo install --path crates/radicle-node --force --locked --root ~/.radicle > cargo install --path crates/radicle-remote-helper --force --locked --root ~/.radicle > cargo install --path radicle-lfs-transfer --force --locked --root ~/.radicle > > # Add the install root to your PATH (e.g. in ~/.bashrc / ~/.zshrc) > export PATH="$HOME/.radicle/bin:$PATH" > > # Verify > rad --version > ``` > > From here, use `rad` exactly as upstream describes below (`rad auth`, `rad init`, etc). The > only new command is `rad lfs init`, run once inside a repository you want large-file support > in — see [`LFS-IPFS.md`](LFS-IPFS.md) for that workflow. **Nothing above requires IPFS**; > Git LFS support specifically needs a running `ipfs daemon`, and `rad lfs init` will tell you > plainly if one isn't reachable rather than failing confusingly later. --- *Radicle Heartwood Protocol & Stack* Heartwood is the third iteration of the Radicle Protocol, a powerful peer-to-peer code collaboration and publishing stack. The repository contains a full implementation of Heartwood, complete with a user-friendly command-line interface (`rad`) and network daemon (`radicle-node`). Radicle was designed to be a secure, decentralized and powerful alternative to code forges such as GitHub and GitLab that preserves user sovereignty and freedom. See the [Radicle home page](https://radicle.dev/) for general information, and the [Zulip chat](https://radicle.zulipchat.com/) to talk to the project. See the [Protocol Guide](https://radicle.dev/guides/protocol) for an in-depth description of how Radicle works. ## Installation **Requirements** * *Linux* or *Unix* based operating system. * Git 2.34 or later * OpenSSH 9.1 or later with `ssh-agent` ### 📀 From binaries > Requires `curl` and `tar`. Run the following command to install the latest binary release: curl -sSf https://radicle.dev/install | sh Or visit our [download](https://radicle.dev/download) page. ### 📦 From source > Requires the Rust toolchain. You can install the Radicle stack from source, by running the following commands from inside this repository: cargo install --path crates/radicle-cli --force --locked --root ~/.radicle cargo install --path crates/radicle-node --force --locked --root ~/.radicle cargo install --path crates/radicle-remote-helper --force --locked --root ~/.radicle Or directly from our seed node: cargo install --force --locked --root ~/.radicle \ --git https://seed.radicle.dev/z3gqcJUoA1n9HaHKufZs5FCSGazv5.git \ crates/radicle-cli crates/radicle-node crates/radicle-remote-helper ## Running *Systemd* unit files are provided for the node under the `/systemd` folder. They can be used as a starting point for further customization. For running in debug mode, see [HACKING.md](HACKING.md). ## Feedback If you have feedback, feel free to create issues using `rad issue`, join [our Zulip][zulip], or email [feedback@radicle.dev][mail-feedback]. Emails sent to this address are [automatically posted][zulip-help-email] to [our **public** #feedback channel on Zulip][zulip-feedback], revealing the [`From` header][rfc2822s3.6.2] (which usually contains your name and email address). This allows us to discuss your feedback on Zulip, and, if necessary, respond to you via email. ## Contributing See [CONTRIBUTING.md](CONTRIBUTING.md) and [HACKING.md](HACKING.md) for an introduction to contributing to Radicle. ## License Radicle is distributed under the terms of both the MIT license and the Apache License (Version 2.0). See [LICENSE-APACHE](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT) for details. [zulip]: https://radicle.zulipchat.com/ [zulip-feedback]: https://radicle.zulipchat.com/#narrow/channel/392584-feedback [zulip-help-email]: https://talently.zulip.com/help/message-a-channel-by-email [mail-feedback]: mailto:feedback@radicle.dev [rfc2822s3.6.2]: https://datatracker.ietf.org/doc/html/rfc2822#section-3.6.2