An awesome user interface (even for mobile devices!) for an awesome scheduler, plain and simple :-)
This project was previously known as iverberk/nomad-ui
Download the latest release from the Github repository and start it with:
./hashi-ui-<os>-<arch>
This will start the hashi-ui server that will try to connect to local
nomad server. The frontend can be accessed on port 3000 by default.
You can override this with the -web.listen-address.
Another way to run hashi-ui is through Docker. Run the following command to start a webserver that will serve the application.
docker run -e NOMAD_ADDR=... -p 8000:3000 jippi/hashi-ui
Check the releases page on GitHub to see which version is current.
The user interface will be accessible on localhost, port 8000. Adjust the Docker
run parameters as needed. If you need to change the port that Nomad is listening
on, you should do it with -e NOMAD_ADDR environment variable that contains
both hostname and port.
hashi-ui can be controlled by both ENV or CLI flags as described below
| Environment | CLI (--flag) |
Default | Description |
|---|---|---|---|
NOMAD_ADDR |
nomad.address |
http://127.0.0.1:4646 |
Must point to the correct location of your Nomad server. |
NOMAD_CACERT |
nomad.ca_cert |
<empty> |
(optional) path to a CA Cert file (remember to use https:// in NOMAD_ADDR if you enable TLS) |
NOMAD_CLIENT_CERT |
nomad.client_cert |
<empty> |
(optional) path to a client cert file (remember to use https:// in NOMAD_ADDR if you enable TLS) |
NOMAD_CLIENT_KEY |
nomad.client_key |
<empty> |
(optional) path to a client key file (remember to use https:// in NOMAD_ADDR if you enable TLS) |
NOMAD_READ_ONLY |
nomad.read-only |
false |
Should hash-ui allowed to modify nomad state (stop/start jobs and so forth) |
NOMAD_PORT_http |
web.listen-address |
0.0.0.0:3000 |
The IP + PORT to listen on |
NOMAD_PROXY_ADDRESS |
web.proxy-address |
<empty> |
(optional) The base URL of the UI when running behind a reverse proxy (ie: example.com/nomad/) |
NOMAD_LOG_LEVEL |
log.level |
info |
Log level to use while running the hashi-ui server - (critical, error, warning, notice, info, debug) |
NEWRELIC_APP_NAME |
newrelic.app_name |
hashi-ui |
(optional) NewRelic application name |
NEWRELIC_LICENSE |
newrelic.license |
<empty> |
(optional) NewRelic license key |
You need a running nomad server to try Hashi UI:
nomad agent -server -client -bootstrap-expect 1 -data-dir /tmp/nomad
Now you can run Hashi UI in other terminal (we assume you have it in PATH):
hashi-ui-<os>-<arch>
Open browser and visit http://127.0.0.1:3000.
Project is built using make:
make
The resulting files will be stored in build/ folder:
build/webpack - frontend webapp that can be served by any webserver
build/hashi-ui-<os>-<arch> - hashi-ui binary containing both the backend server and frontend webapp
By default it builds binary for host system. You can cross-compile and build binaries for different systems and architectures as well:
GOBUILD='linux-amd64 windows-386 <GOOS>-<GOARCH>' make
See docs for the whole list of available GOOS and GOARCH
values.
If you would like to contribute please open a pull-request. See DEVELOPMENT.md