When you launch Gekko UI, you start a basic nodejs webserver with 3 components:
- It will serve frontend (HTML/CSS/JS) files for frontend written as a vuejs app (v2.5.16).
- It will will handle API requests as koa (v1) routes, it will also start a websocket server used to broadcast messages in realtime (used for long lived processes Importing and Live Gekkos for example). The server API documentation can be found here.
The frontend is setup as a very basic vue app. Additionally the following libraries are used:
The vue app itself uses the following libraries:
- pug (all html is either written in pug of markdown)
- superagent (cross browser ajax)
You first need to install all developer dependencies so the frontend app can be recompiled on your machine.
cd gekko/web/vue npm install
After this you can launch a hot reload version of the app which will automatically recompile the frontend and reload your browser:
# path to webserver cd gekko/web # launch the server - we use this API node server # path to vue app cd vue npm run serve
Gekko UI is now served from port 8080, the webpack dev server will compile the vue app (in memory) and intercept all calls to the app itself (
/dist/js/app.xxx.js) and serve the in memory app. It is important to note that this UI still talks to the API served from the
node server command (on default http://localhost:3000/api).
If you have configured Gekko to run on non standards ports (using the UIconfig), you can have your config applied to the development environment by copying
Note: as part of the compilation process Gekko will reset the UIconfig in both
gekko/web/vue/public/UIconfig.js. Only compile if you are ready to lose your personal changes.
When you are done developing you can compile the app using these instructions:
# path to vue app cd gekko/web/vue npm run build