Skip to content

radicle-dev/radicle-interface

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Radicle Explorer

This user interface lets you interact with Radicle, a peer-to-peer code collaboration and publishing stack, directly from your web browser.

Deployment Options:

  • Public Server: The Radicle team maintains a public instance at app.radicle.xyz
  • Local-first: Run the UI locally
  • Self-hosting: Deploy the UI on your own server

Local-first

Prerequisites:

  • Recent versions of Node.js (20.9.0 or higher) and npm installed

Run the following commands to access the web UI locally:

git clone https://seed.radicle.xyz/z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git radicle-explorer
cd radicle-explorer
npm install
npm start

Then open http://localhost:3000 in your favourite browser.

Self-Hosting the UI

There are several ways to deploy the UI publicly. Here are two common options:

Using your own web server:

  1. Run npm install && npm build to create a build for deployment
  2. Configure your web server to serve the contents of the /build directory

Using Vercel (or similar static file hosting):

  1. Fork this repository to create your own version
  2. Configure your Vercel account to deploy the forked repository

Configuration

There are two ways to configure the UI: at build time and at run time.

Build-Time Configuration

This method is recommended when deploying to static hosting platforms such as Vercel.

Option 1: Create a local.json file

  1. Copy default.json to a new file in the same directory called local.json.
  2. Modify the properties in local.json to suit your setup.

Option 2: Use environment variables

  1. Refer to custom-environment-variables.json for a list of supported environment variables.
  2. Set the desired variables in your environment before building the UI.

For advanced configuration options, refer to the node-config documentation.

Run-Time Configuration

This method is useful when the app is distributed as a precompiled static JS/HTML bundle, such as when installed via a package manager.

You can build the app in a mode that loads configuration dynamically from the server it's deployed to, instead of bundling it at build time.

To enable this behavior, set the environment variable VITE_RUNTIME_CONFIG=true during the build:

VITE_RUNTIME_CONFIG=true npm run build

This will inject a blocking script into the index.html that attempts to load the configuration from a pre-defined location (/config.json) on the server.

The config file must be served as static content and must be publicly accessible. The structure of the runtime config.json must match the shape of the application's base configuration defined in config/default.json.

Contributing

  • For detailed contribution guidelines, refer to the CONTRIBUTING.md file
  • To propose changes, open an issue or submit a patch using Radicle

Getting in touch

To get in touch with the maintainers, sign up to our official chat on Zulip.

License

The UI is distributed under the terms of GPLv3. See LICENSE for details.