(Code-name) Halite is a Salt GUI. Status is pre-alpha. Contributions are very welcome. Join us in #salt-devel on Freenode or on the salt-users mailing list.
Clone the Halite repository:
git clone https://github.com/saltstack/halite
Generate an
index.htmlfile:cd halite/halite ./genindex.py -C
Install salt-api 0.8.2 or greater.
Follow the instructions for installing CherryPy and configuring the rest_cherrypy module.
Configure the
appandstaticsettings to point at the files in your halite clone. For example:rest_cherrypy: port: 8000 debug: True static: /path/to/halite/halite app: /path/to/halite/halite/index.html
Note
The above configuration is for local use only and does not use HTTPS. Your Salt authentication credentials will be sent in the clear.
Follow the rest_cherrypy module installation instructions to disable
debugand generate self-signed SSL certiifcates, or use existing SSL certificates, for non-local usage.Start
salt-api:salt-api
Open a browser and navigate to http://localhost:8000/app (substitute whatever
portandappprefix you configured).
Support for ES5 and HTML5 is required. This means any modern browser or IE9+.
- This app requires the rest_cherrypy module in
salt-apito communicate with a running Salt installation via a REST API. - The static media for this app is server-agnostic and may be served from any web server at a configurable URL prefix.
- This app uses the HTML5 history API and so the
index.htmlshould should be served from a base URL that otherwise ignores the rest of the URL path. In other words, if the base URL that serves theindex.htmlfile is/app, then/app/some/pathshould also serve that same file.
Client side web application requirements:
- AngularJS framework (http://angularjs.org/)
- Twitter Bootstrap Layout CSS (http://twitter.github.io/bootstrap/)
- AngularUI framework (http://angular-ui.github.io/)
- Karma Test Runner (http://karma-runner.github.io/0.8/index.html)
- Jasmine unit test framework (http://pivotal.github.io/jasmine/)
- CoffeeScript Python/Ruby like javascript transpiler (http://coffeescript.org/)
- Express javascript web server
- Less CSS compiler
The halite/genindex.py script is used to generate an HTML file that will
bootstrap the app containing configurable paths to all required static JS/CSS
assets. See the output of genindex.py --help for available options.
Note
Updating your halite clone
genindex.py should be run and the index.html file regnerated any
time any static assets are added or removed.
For development genindex.py -C will build the index.html file
referencing the .coffee files which will be transpiled directly by the
browser.
For production builds, JavaScript files should first be generated via coffee
-c halite/app, then genindex.py will produce a production-ready build of
index.html.
To run the karma jasmine unit test runner
$ cd halite
$ karma start karma_unit.conf.jsTo run the karma angular scenario e2e test runner first start up a web server. A multithreaded or asynchronous one will be needed if more than one browser is tested at once.
$ cd halite
$ karma start karma_e2e.conf.js