Skip to content

AlexRogalskiy/fury-dashboard

Repository files navigation

Fury Dashboard

This is a PoC project for the Fury Dashboard container, that actually runs on a GOLANG server, taking some configurations in order to import and show other UIs that runs as standalone.

It imports the other UIs as a webpack federated modules, so it must know the basic info (url, scope, module name).

Requirements

To deploy this utility in your hosts, take in mind the following requirements must be already addressed in your host:

WARNING: Only tested on debian based systems.

  • libsystemd-dev package installed.
  • systemd working
  • journal working

FE build needs the following env variables:

  • APP_ENV: production || development
  • SERVER_OFFLINE: true || false
  • SERVER_BASE_PATH: "" || https://examplepath

Deployment

To install/update the latest version in your hosts:

$ curl -s https://api.github.com/repos/sighupio/fury-dashboard/releases/latest | grep browser_download_url | cut -d '"' -f 4 | xargs curl -Ls -o fury-dashboard
$ chmod +x fury-dashboard

Then, don't forget to create a config.yml file (you can copy/paste the sample-config.yaml):

$ cat config.yml
---
listener: 0.0.0.0:8080
externalEndpoint: https://localhost:8087
remoteComponents:
  furyconnectswitchui:
    scope: FuryConnectSwitchUI 
    module: ./FurySupport
    url: https://localhost:8083/remoteEntry.js
    params:
      apiUrl: https://localhost:8083

Run

$ ./fury-dashboard

Building

The agent requires to be compiled using golang 1.16 as it embeds the static assets of the frontend application.

Locally (docker)

You can build the linux (amd64) binary using docker by running:

$ make build

You will find the generated binary in the ./bin/linux/fury-dashboard directory.

Vagrant

The project provides another alternative to actually builds the binary, this is using vagrant. The provided Vagrantfile contains a defintion to spin up an ubuntu box containing all the requirements to build the binary using docker.

$ vagrant destroy --force # Just in case
$ vagrant up
$ vagrant ssh
vagrant@fury-dashboard:~$ cd /vagrant
vagrant@fury-dashboard:~$ make build
vagrant@fury-dashboard:~$ cp example-config.yml config.yml
vagrant@fury-dashboard:~$ ./bin/linux/fury-dashboard

License

For license details please see LICENSE