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
Prerequisites:
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.
There are several ways to deploy the UI publicly. Here are two common options:
Using your own web server:
- Run
npm install && npm build
to create a build for deployment - Configure your web server to serve the contents of the
/build
directory
Using Vercel (or similar static file hosting):
- Fork this repository to create your own version
- Configure your Vercel account to deploy the forked repository
There are two ways to configure the UI: at build time and at run time.
This method is recommended when deploying to static hosting platforms such as Vercel.
- Copy
default.json
to a new file in the same directory calledlocal.json
. - Modify the properties in
local.json
to suit your setup.
- Refer to
custom-environment-variables.json
for a list of supported environment variables. - Set the desired variables in your environment before building the UI.
For advanced configuration options, refer to the
node-config
documentation.
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
.
- For detailed contribution guidelines, refer to the CONTRIBUTING.md file
- To propose changes, open an issue or submit a patch using Radicle
To get in touch with the maintainers, sign up to our official chat on Zulip.
The UI is distributed under the terms of GPLv3. See LICENSE for details.