GraphSense's Web GUI for interactive cryptocurrency analysis written in Elm.
Run cp config/Config.elm.tmp config/Config.elm and optionally configure plugins and your custom theme here.
- Place plugins in the
pluginsfolder. - Run
make clean-generated-plugins && make - Configure the plugin in
config/Config.elm, eg:
import Myplugin
...
plugins : Plugin.Plugins
plugins =
Plugin.empty
|> Plugin.myplugin (Myplugin.plugin {- plugin specific arguments here -})Run make serve. It starts Vite's development server.
Run make build. It builds the app together with all configured plugins to ./dist.
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.elmandstub.jsto your plugin's name. Keep the respective capitalization. - replace
Stubin the stub Elm files with your plugin's Elm package.
Place plugin specific dependencies in plugin's ./dependencies.txt.
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.
Install Docker and Docker Compose:
- Docker, see e.g. https://docs.docker.com/engine/install/
- Docker Compose: https://docs.docker.com/compose/install/
Copy docker/env.template to .env:
cp docker/env.template .env
Edit the file .env and set the URL of the graphsense-lib Web Api
service, e.g.:
VITE_GS_REST_URL="https://api.iknaio.com"
For local development against the upstream Iknaio API, use
tools/proxy-iknaio-api.sh. The script starts an Nginx container on
http://localhost:8080 and injects your API key as Authorization header.
-
Export your Iknaio API key:
export GS_API_KEY="<your_iknaio_api_key>"
-
Start the proxy:
./tools/proxy-iknaio-api.sh
-
Point the dashboard to the local proxy (for example in
.env):VITE_GS_REST_URL="http://localhost:8080"
Optional: set the initial user-info endpoint path (empty disables startup call):
VITE_GS_USER_ENDPOINT_URL="/user"
-
Run the dashboard as usual (
make serveor Docker setup).
Notes:
-
The proxy container name is
nginx-proxy-iknaio-prod-api. -
CORS in the script is currently configured for
http://localhost:3000. If you use a different frontend dev origin (for example Vite defaulthttp://localhost:5173), update the origin intools/proxy-iknaio-api.sh. -
The dashboard only performs the initial user-info request when
VITE_GS_USER_ENDPOINT_URLis configured. -
Stop/remove the proxy container with:
docker rm -f nginx-proxy-iknaio-prod-api
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