# Playing Around with Radicle
Radicle is planning to become a "decentralized code collaboration" platform (think "decentralized GitHub").
I'm keeping some notes here around how you can test things out (this is mostly a note-to-self for the time being - you can find me on the radicle discord as `@yorgos` for any questions).
## Install `rad`
### Option 1: Install just the tools
```bash=
cargo install --git https://github.com/radicle-dev/radicle-client-tools.git --force --locked rad rad-auth rad-init rad-push rad-sync
```
### Option 2: Clone Git repo and build manually
```bash=
git clone https://github.com/radicle-dev/radicle-client-tools
cd radicle-client-tools
cargo build --workspace
```
You can then find the binaries in `./target/debug`.
## Create a Radicle Identity
```bash=
./rad-auth --init
Initializing your ๐ฑ profile and identity
ok Username ยท yorgos
ok Passphrase ยท ********
ok Creating your ๐ฑ Ed25519 keypair...
ok Adding to ssh-agent...
ok Profile <redacted> created.
Your radicle Peer ID is <redacted>. This identifies your device.
Your personal ๐ฑ URN is rad:git:<redacted>. This identifies you across devices.
=> To create a radicle project, run `rad init` from a git repository.
```
### View available identities and pick one
You can view the available identities like so:
```bash=
./rad-auth
Your active profile is <redacted>
<redacted>
* <redacted>
```
## Initialize Git repo for Radicle
```bash=
22-02-01 9:57 โ home-on-k8s git:(master) โ rad-init
Initializing local ๐ฑ project home-on-k8s
ok Description ยท A kubernetes for your/my home
ok Default branch ยท main
ok Initializing new project in /Users/gsaslis/...
ok Project initialized: rad:git:<redacted>
=> To publish, run `rad push`.
```
## Push Git Repo to Community Node
1. `git push --set-upstream rad main`
2. Ensure you have `git --version` 2.34.0 or greater
3. Push:
```bash=
22-02-01 11:22 โ home-on-k8s git:(main) โ rad-push
Pushing ๐ฑ to remote `rad`
$ git push rad
Password for 'rad://radicle@<redacted>.git':
Everything up-to-date
Git version 2.34.1
Git signing key ssh-ed25519
<redacted>
Syncing ๐ฑ project rad:git:<redacted> to https://pine.radicle.garden/
ok Syncing delegate identity <redacted>...
ok Syncing project identity...
ok Syncing project refs...
ok Project synced.
๐ฑ Your project is synced and available at:
(web) https://app.radicle.network/seeds/pine.radicle.garden/projects/rad:git:<redacted>
(web) https://app.radicle.network/seeds/pine.radicle.garden/projects/rad:git:<redacted>/remotes/<redacted>
(git) https://pine.radicle.garden/<redacted>.git
```
### Deploy your own community node with radicle-service-init
//todo: ...
## Create Org (through Web UI)
1. Visit https://app.radicle.network/orgs
1. Ensure your wallet is connected.
1. Click on Create, next to "My Orgs"
1. Sign the transaction in your wallet.
1. You should see a success message like below:

## Register an ENS name for your org
0. First you'll need some `RAD` tokens. If you want to try this on a testnet, check [this faucet](https://app.radicle.network/faucet).
1. Visit https://app.radicle.network/registrations
1. Connect your wallet
1. Type in an Ethereum Name Service (ENS) name for your org and click "Check"
1. You should see the below confirmation:

1. Click "Begin registration"
1. Confirm the transaction on your wallet.
1. Wait for some time and then sign the second transaction required to finalize your registration.
1. Finally, you will be able to see your ENS name registration.
