Skip to content

graphsense/graphsense-dashboard

Repository files navigation

GraphSense Dashboard

GraphSense's Web GUI for interactive cryptocurrency analysis written in Elm.

Configuration

Run cp config/Config.elm.tmp config/Config.elm and optionally configure plugins and your custom theme here.

Install plugins

  1. Place plugins in the plugins folder.
  2. Run node generate.js (NodeJS needs to be installed)
  3. Run elm install for each package named in the plugin's dependencies.txt.
  4. Configure the plugin in config/Config.elm, eg:
plugins : Plugin.Plugins
plugins =
    Plugin.empty
    |> Plugin.myplugin (Myplugin.plugin {- plugin specific arguments here -})

Development setup

You need to have NodeJS installed. It comes with NPM, the package manager for JavaScript.

In order to install all dependencies, run the following from the root of this repository:

npm install

Then start the vite development server:

npm run dev

Point your browser to localhost:3000.

Develop plugins

Bootstrapping

Use plugin_stub as a starting point: cp -r plugin_stub plugins/myplugin

The name of the plugin is case insensitive. Elm package name of the plugin is the plugin name with the first letter capitalized, eg. Myplugin.

Adapt the stub accordingly:

  • rename ./Stub, ./Stub.elm and stub.js to your plugin's name. Keep the respective capitalization.
  • replace Stub in the stub Elm files with your plugin's Elm package.

Place plugin specific dependencies in plugin's ./dependencies.txt.

Development

Plugins can hook into the dashboard functionality in order to extend it.

Plugin's hook implementations need to be set in your plugin's root module which was derived from ./Stub.elm. Please see the comments in the respective files of ./src/PluginInterface for detailed documentation.

Production setup

Prerequisites

Install Docker and Docker Compose:

Configuration

Copy docker/env.template to .env:

cp docker/env.template .env

Edit the file .env and set the URL of the graphsense-REST service, e.g.:

REST_URL="https://example.com:9000"

Usage

Build the Docker image:

docker-compose build

Start a container (in detached mode):

docker-compose up -d

Finally, test the application in a web browser:

http://localhost:8000

Color configuration

You can map tag concepts to colors in ./config/conceptsColors.yaml. The file itself contains hints on the format.

This file is deployed as is. You can easily replace it at runtime in the deployed directory.