readme: add zero-to-install quick start, Arch deps, cross-repo links
This commit is contained in:
parent
fb95fd0c68
commit
11236adf83
51
README.md
51
README.md
|
|
@ -3,10 +3,14 @@
|
||||||
A [Git LFS custom transfer agent][custom-transfer] that backs large file storage with
|
A [Git LFS custom transfer agent][custom-transfer] that backs large file storage with
|
||||||
[IPFS](https://ipfs.tech), for use with [Radicle](https://radicle.xyz) repositories.
|
[IPFS](https://ipfs.tech), for use with [Radicle](https://radicle.xyz) repositories.
|
||||||
|
|
||||||
This is the companion binary for the `rad lfs` support added to a
|
This is the companion binary for the `rad lfs` support added in
|
||||||
[fork of `heartwood`](../radicle-heartwood-lfs) (Radicle's core node/CLI). It is not meant to
|
[**radicle-heartwood-lfs**](https://git.hswro.org/mab122/radicle-heartwood-lfs) (a fork of
|
||||||
be invoked directly — `git lfs` spawns it automatically once a repository has been set up with
|
Radicle's core node/CLI, `heartwood`). **Most people want to start there, not here** — that
|
||||||
`rad lfs init`.
|
repo has the full zero-to-usable setup guide. This repo is what you're reading if you want to
|
||||||
|
build/understand the transfer agent on its own, or you're following a link back from there.
|
||||||
|
|
||||||
|
`rad-lfs-transfer` is not meant to be invoked directly — `git lfs` spawns it automatically,
|
||||||
|
once a repository has been set up with `rad lfs init` (from the fork above).
|
||||||
|
|
||||||
[custom-transfer]: https://github.com/git-lfs/git-lfs/blob/main/docs/custom-transfers.md
|
[custom-transfer]: https://github.com/git-lfs/git-lfs/blob/main/docs/custom-transfers.md
|
||||||
|
|
||||||
|
|
@ -26,9 +30,25 @@ Instead of a shared, seed-hosted LFS server, every peer uses their own local IPF
|
||||||
looks up its `cid=` note, and fetches the content from your local IPFS daemon (which will
|
looks up its `cid=` note, and fetches the content from your local IPFS daemon (which will
|
||||||
pull it from the wider IPFS network if it isn't local yet).
|
pull it from the wider IPFS network if it isn't local yet).
|
||||||
|
|
||||||
There is no central server anywhere in this design — see the companion `heartwood` fork's
|
There is no central server anywhere in this design — see
|
||||||
documentation for the full rationale and how `rad seed`/`rad unseed` tie IPFS pinning to
|
[radicle-heartwood-lfs's `LFS-IPFS.md`](https://git.hswro.org/mab122/radicle-heartwood-lfs/src/branch/rad-lfs-ipfs/LFS-IPFS.md)
|
||||||
Radicle's existing seeding lifecycle.
|
for the full rationale and how `rad seed`/`rad unseed` tie IPFS pinning to Radicle's existing
|
||||||
|
seeding lifecycle.
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
On Arch Linux:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# To build and install
|
||||||
|
sudo pacman -S --needed rust git
|
||||||
|
|
||||||
|
# To actually use it (not needed to build/install — see "Requirements" below)
|
||||||
|
sudo pacman -S --needed kubo
|
||||||
|
```
|
||||||
|
|
||||||
|
On other distributions, install a Rust toolchain (e.g. via [rustup](https://rustup.rs)), Git,
|
||||||
|
and — only when you want to use LFS, not to build this — [Kubo](https://docs.ipfs.tech/install/).
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
|
|
@ -37,16 +57,27 @@ Radicle's existing seeding lifecycle.
|
||||||
running when `git lfs push`/`pull` tries to use it, you'll get a clear error telling you to
|
running when `git lfs push`/`pull` tries to use it, you'll get a clear error telling you to
|
||||||
start one (`ipfs daemon`) — nothing fails silently, and nothing about building or installing
|
start one (`ipfs daemon`) — nothing fails silently, and nothing about building or installing
|
||||||
this binary requires IPFS to be present at all.
|
this binary requires IPFS to be present at all.
|
||||||
- [Git LFS](https://git-lfs.com) installed (`git-lfs` on your `PATH`).
|
- [Git LFS](https://git-lfs.com) installed (`git-lfs` on your `PATH`) — `git-lfs` package on
|
||||||
|
Arch (`sudo pacman -S --needed git-lfs`).
|
||||||
|
|
||||||
## Build & install
|
## Build & install
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
git clone ssh://git@git.hswro.org:9022/mab122/radicle-lfs-transfer.git
|
||||||
|
cd radicle-lfs-transfer
|
||||||
cargo install --path .
|
cargo install --path .
|
||||||
```
|
```
|
||||||
|
|
||||||
This installs the `rad-lfs-transfer` binary to `~/.cargo/bin` (make sure that's on your
|
This installs the `rad-lfs-transfer` binary to `~/.cargo/bin` by default — make sure that's on
|
||||||
`PATH` — it's needed there so `git lfs` can find it once `rad lfs init` configures it).
|
your `PATH`. If you're installing it alongside `radicle-heartwood-lfs` (the usual case), install
|
||||||
|
it to that project's shared root instead so everything ends up in one place:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cargo install --path . --force --locked --root ~/.radicle
|
||||||
|
```
|
||||||
|
|
||||||
|
(You normally don't need to clone this repo separately at all for that — `radicle-heartwood-lfs`
|
||||||
|
includes it as a git submodule and its own setup instructions cover installing both together.)
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue