Giter Site home page Giter Site logo

jade-desktop's Introduction

Jade Service Runner UI

Jade Service Runner UI

A UI app for managing JSON-RPC services.
Report Bug ยท Request Feature

Table of Contents

About The Project

Jade Service Runner UI is an app that bundles Jade Service Runner and its interface into an easy to use application for users to install, manage, and discover locally run services.

Better dApp Development

Service Runner improves the dApp development cycle, by reducing the number of steps required for running services that are local to the user, in addition to associated with relying on locally running JSON-RPC services. To do this effectively, Jade Service Runner supports the following:

  • Allows dApp developers to specify what services they'd like to use
  • Provides defaults for the services to run
  • Provides users with an easy installation path
  • Provides reliable discovery of pre-existing services run by the service runner
  • Provides OpenRPC interface to the Service Runnner functionality, as well as the underlying services
  • Allows dApp developers the ability to retrieve reliable JSON-RPC connection information from the service
  • Provides typed interfaces to develop applications against

Getting Started

Installation

Install via binary

Download and install the latest binary for Windows, MacOS, or Linux here.

Usage

Development

  • npm install
  • npm start
  • npm run electron

Extended services

A way to extend services, see here for more info.

jade-service-runner-ui.app/Contents/MacOS/jade-service-runner-ui -c my-extended-config.json

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

How to contribute, build and release are outlined in CONTRIBUTING.md, BUILDING.md and RELEASING.md respectively. Commits in this repository follow the CONVENTIONAL_COMMITS.md specification.

License

Apache License 2.0

Resources

jade-desktop's People

Contributors

belfordz avatar dependabot-preview[bot] avatar meowsbits avatar semantic-release-bot avatar shanejonas avatar stevanlohja avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

wizardsorb

jade-desktop's Issues

Change project name from UI to GUI?

Can we rename the project from UI to GUI? User Interface is not defined enough. For example, a CLI is a command-line interface and GUI is a graphical user interface.

change link for RUN IT img

The Run It img in the readme links to the actual img. Changing this to the releases page would transition users to get started installing and running the software.

Click to copy end point url

Describe the solution you'd like
Once a user clicks START for a given service. They are provided the url end-point for that service. However, it's very small and requires manual highlight and copy. It would be helpful to have a copy-to-clipboard feature to easily copy the end-point url.

ezgif com-video-to-gif

Describe alternatives you've considered
Here is a screen shot from AWS console. Notice the copy-to-clip-board icon. This is a possible solution.

ice_screenshot_20191107-122735

Tray icon not showing

Describe the bug
The tray icon does not show on my machine.

To Reproduce
Steps to reproduce the behavior:

  1. Downloaded the release .tar - link to specific tar
  2. Extracted into a new folder
  3. Opened a terminal window, navigate into the folder and executed the @etclabscorejade-service-runner-ui
    Below is the output I get:
> ./@etclabscorejade-service-runner-ui 
19:16:20.847 โ€บ Initialized Service Runner UI
19:16:20.935 โ€บ App Ready
info: Service Runner port starting on [object Object] {"service":"ServiceRunner","context":"startServiceRunner"}
info: Service Runner started on [object Object] {"service":"ServiceRunner","context":"startServiceRunner"}
19:16:20.993 โ€บ Service Runner Server Started {
  "config": {
    "$schema": "./lib/service-runner-schema.json",
    "services": [
      {
        "name": "multi-geth",
        "rpcPort": "${DYNAMIC_TCP_PORT_1}",
        "version": "1.9.0",
        "environments": [
          {
            "name": "mainnet",
            "args": {
              "start": [
                "--classic",
                "--datadir",
                "${SERVICE_DIR}/multi-geth/1.9.0/classic",
                "--ipcpath",
                "${SERVICE_DIR}/multi-geth/1.9.0/classic/geth.ipc",
                "--port",
                "${DYNAMIC_TCP_PORT_2}",
                "--rpc",
                "--rpcport",
                "${DYNAMIC_TCP_PORT_1}",
                "--rpccorsdomain",
                "*"
              ],
              "stop": [],
              "teardown": []
            },
            "health": {
              "interval": 20000,
              "retries": 5,
              "port": "${DYNAMIC_TCP_PORT_1}",
              "protocol": "tcp"
            }
          },
          {
            "name": "kotti",
            "args": {
              "start": [
                "--kotti",
                "--datadir",
                "${SERVICE_DIR}/multi-geth/1.9.0/kotti",
                "--ipcpath",
                "${SERVICE_DIR}/multi-geth/1.9.0/kotti/geth.ipc",
                "--port",
                "${DYNAMIC_TCP_PORT_2}",
                "--rpc",
                "--rpcport",
                "${DYNAMIC_TCP_PORT_1}",
                "--rpcaddr",
                "localhost",
                "--rpccorsdomain",
                "*"
              ],
              "stop": [],
              "teardown": []
            },
            "health": {
              "interval": 20000,
              "retries": 5,
              "port": "${DYNAMIC_TCP_PORT_1}",
              "protocol": "tcp"
            }
          },
          {
            "name": "dev",
            "args": {
              "start": [
                "--dev",
                "--datadir",
                "${SERVICE_DIR}/multi-geth/1.9.0/dev",
                "--ipcpath",
                "${SERVICE_DIR}/multi-geth/1.9.0/dev/geth.ipc",
                "--port",
                "${DYNAMIC_TCP_PORT_2}",
                "--rpc",
                "--rpcport",
                "${DYNAMIC_TCP_PORT_1}",
                "--rpccorsdomain",
                "*"
              ],
              "stop": [],
              "teardown": []
            },
            "health": {
              "interval": 20000,
              "retries": 5,
              "port": "${DYNAMIC_TCP_PORT_1}",
              "protocol": "tcp"
            }
          },
          {
            "name": "ethereum",
            "args": {
              "start": [
                "--datadir",
                "${SERVICE_DIR}/multi-geth/1.9.0/ethereum",
                "--ethereum",
                "${SERVICE_DIR}/multi-geth/1.9.0/ethereum/geth.ipc",
                "--port",
                "${DYNAMIC_TCP_PORT_2}",
                "--rpc",
                "--rpcport",
                "${DYNAMIC_TCP_PORT_1}",
                "--rpccorsdomain",
                "*"
              ],
              "stop": [],
              "teardown": []
            },
            "health": {
              "interval": 20000,
              "retries": 5,
              "port": "${DYNAMIC_TCP_PORT_1}",
              "protocol": "tcp"
            }
          },
          {
            "name": "goerli",
            "args": {
              "start": [
                "--goerli",
                "--datadir",
                "${SERVICE_DIR}/multi-geth/1.9.0/goerli",
                "--ipcpath",
                "${SERVICE_DIR}/multi-geth/1.9.0/goerli/geth.ipc",
                "--port",
                "${DYNAMIC_TCP_PORT_2}",
                "--rpc",
                "--rpcport",
                "${DYNAMIC_TCP_PORT_1}",
                "--rpccorsdomain",
                "*"
              ],
              "stop": [],
              "teardown": []
            },
            "health": {
              "interval": 20000,
              "retries": 5,
              "port": "${DYNAMIC_TCP_PORT_1}",
              "protocol": "tcp"
            }
          },
          {
            "name": "rinkeby",
            "args": {
              "start": [
                "--rinkeby",
                "--datadir",
                "${SERVICE_DIR}/multi-geth/1.9.0/rinkeby",
                "--ipcpath",
                "${SERVICE_DIR}/multi-geth/1.9.0/rinkeby/geth.ipc",
                "--port",
                "${DYNAMIC_TCP_PORT_2}",
                "--rpc",
                "--rpcport",
                "${DYNAMIC_TCP_PORT_1}",
                "--rpccorsdomain",
                "*"
              ],
              "stop": [],
              "teardown": []
            },
            "health": {
              "interval": 20000,
              "retries": 5,
              "port": "${DYNAMIC_TCP_PORT_1}",
              "protocol": "tcp"
            }
          }
        ],
        "os": {
          "osx": {
            "commands": {
              "setup": [
                {
                  "cmd": "chmod",
                  "args": [
                    "+x",
                    "${SERVICE_DIR}/geth"
                  ]
                }
              ],
              "start": "${SERVICE_DIR}/geth",
              "stop": "",
              "teardown": ""
            },
            "assets": [
              "https://github.com/multi-geth/multi-geth/releases/download/v1.9.0/multi-geth-osx.zip"
            ]
          },
          "linux": {
            "commands": {
              "setup": [
                {
                  "cmd": "chmod",
                  "args": [
                    "+x",
                    "${SERVICE_DIR}/geth"
                  ]
                }
              ],
              "start": "${SERVICE_DIR}/geth",
              "stop": "",
              "teardown": ""
            },
            "assets": [
              "https://github.com/multi-geth/multi-geth/releases/download/v1.9.0/multi-geth-linux.zip"
            ]
          }
        }
      }
    ]
  }
}

Expected behavior
I guess I should see a new tray icon

Screenshots
/

Desktop (please complete the following information):

  • OS:
> lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.3 LTS
Release:	18.04
Codename:	bionic
  • Browser
Chromium/Chrome
Version 76.0.3809.100 (Official Build) Built on Ubuntu , running on Ubuntu 18.04 (64-bit)

add way to accept extension config

Is your feature request related to a problem? Please describe.
To get full use out of service runner, I'd like to extend the config to support any service.

'npm install .' from scratch causes error with long message

Describe the bug
Running 'npm install .' on a fresh clone of this dir causes following issue:

$ npm start
                                                                                                    
> @etclabscore/[email protected] start /home/ia/dev/etclabscore/jade-service-runner-ui   
> rescripts start
                                                                                                                  
                                                                                      
There might be a problem with the project dependency tree.
It is likely not a bug in Create React App, but something you need to fix locally.
                                                                                                   
The react-scripts package provided by Create React App requires a dependency:
                                                                                     
  "jest": "24.8.0"                                                                     

Don't try to install it manually: your package manager does it automatically.                       
However, a different version of jest was detected higher up in the tree:

  /home/ia/dev/etclabscore/jade-service-runner-ui/node_modules/jest (version: 24.9.0)
                                                    
Manually installing incompatible versions is known to cause hard-to-debug issues.
                    
If you would prefer to ignore this check, add SKIP_PREFLIGHT_CHECK=true to an .env file in your project.
That will permanently disable this message but you might encounter other issues.       
                      
To fix the dependency tree, try following the steps below in the exact order:
                                                                                                            
  1. Delete package-lock.json (not package.json!) and/or yarn.lock in your project folder.
  2. Delete node_modules in your project folder.                                                       
  3. Remove "jest" from dependencies and/or devDependencies in the package.json file in your project folder.
  4. Run npm install or yarn, depending on the package manager you use.

To Reproduce

git clone ...
npm install .

Expected behavior
npm should install all the things properly

Desktop (please complete the following information):

$ uname -a
Linux ubp52 5.2.9-050209-lowlatency #201908160940 SMP PREEMPT Fri Aug 16 09:45:23 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
ubp52 ~/dev/etclabscore/jade-service-runner-ui master %=
$ npm -v
3.5.2
ubp52 ~/dev/etclabscore/jade-service-runner-ui master %=
$ node -v
v8.10.0

rel #20

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.