open-consul/ui/README.md

81 lines
2.5 KiB
Markdown
Raw Normal View History

2014-04-21 20:01:53 +00:00
## Consul Web UI
This directory contains the Consul Web UI. Consul contains a built-in
2014-05-02 12:41:02 +00:00
HTTP server that serves this directory, but any common HTTP server
2014-04-21 20:01:53 +00:00
is capable of serving it.
2014-05-01 03:08:10 +00:00
It uses JavaScript and [Ember](http://emberjs.com) to communicate with
2017-04-04 16:52:00 +00:00
the [Consul API](https://www.consul.io/api/index.html). The basic
2014-04-21 20:01:53 +00:00
features it provides are:
- Service view. A list of your registered services, their
health and the nodes they run on.
- Node view. A list of your registered nodes, the services running
on each and the health of the node.
- Key/value view and update
2015-02-19 22:45:47 +00:00
It's aware of multiple datacenters, so you can get a quick global
2014-04-21 20:01:53 +00:00
overview before drilling into specific data-centers for detailed
views.
2014-05-01 03:08:10 +00:00
The UI uses some internal undocumented HTTP APIs to optimize
performance and usability.
2014-04-21 20:01:53 +00:00
### Development
Improvements and bug fixes are welcome and encouraged for the Web UI.
2014-05-01 15:21:55 +00:00
You'll need sass to compile CSS stylesheets. Install that with
bundler:
2014-04-21 20:01:53 +00:00
2014-05-01 15:21:55 +00:00
cd ui/
bundle
2014-04-21 20:01:53 +00:00
Reloading compilation for development:
make watch
2014-05-01 03:08:10 +00:00
Consul ships with an HTTP server for the API and UI. By default, when
you run the agent, it is off. However, if you pass a `-ui-dir` flag
2014-05-29 19:15:13 +00:00
with a path to this directory, you'll be able to access the UI via the
2014-05-01 03:08:10 +00:00
Consul HTTP server address, which defaults to `localhost:8500/ui`.
2014-05-01 03:08:54 +00:00
An example of this command, from inside the `ui/` directory, would be:
consul agent -bootstrap -server -data-dir /tmp/ -ui-dir .
2014-07-22 17:31:44 +00:00
Basic tests can be run by adding the `?test` query parameter to the
application.
2014-05-01 15:21:55 +00:00
2014-08-22 00:42:10 +00:00
When developing Consul, it's recommended that you use the included
development configuration.
consul agent -config-file=development_config.json
2014-05-01 15:21:55 +00:00
### Releasing
2014-05-01 19:43:49 +00:00
`make dist`
2014-05-01 15:31:56 +00:00
The `../pkg/web_ui` folder will contain the files you should use for deployment.
### Acknowledgments
Cog icon by useiconic.com from the [Noun Project](https://thenounproject.com/term/setting/45865/)
### Compiling the UI into the Go binary
The UI is compiled and shipped with the Consul go binary. The generated bindata
file lives in the `command/agent/bindata_assetfs.go` file and is checked into
source control. This is useful so that not every Consul developer needs to set
up bundler etc. To re-generate the file, first follow the compilation steps
above to build the UI assets into the `pkg/web_ui` folder. With that done, from the
root of the Consul repo, run:
```
$ make static-assets
```
The file will now be refreshed with the current UI data. You can now rebuild the
Consul binary normally with `make bin` or `make dev`, and see the updated UI
after re-launching Consul.