blob: 944e5cb8e4c90c1a7432c125eefeecbac2c1a5b0 [file] [log] [blame] [view]
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
# Metron Management UI
This module provides a user interface for management functions in Metron.
## Prerequisites
* A network accessible Metron REST application
* nvm (or a similar node verison manager) should be installed. The node version required for this project is listed in the [.nvmrc](https://github.com/creationix/nvm#nvmrc) file.
## Installation
### From Source
1. Package the application with Maven:
```
cd metron-interface/metron-config
mvn clean package
```
1. Untar the archive in the $METRON_HOME directory. The directory structure will look like:
```
bin
metron-management-ui
web
expressjs
package.json
server.js
management-ui
web assets (html, css, js, ...)
```
1. Copy the `$METRON_HOME/bin/metron-management-ui` script to `/etc/init.d/metron-management-ui`
1. Install the [Express](https://expressjs.com/) web framework from the `package.json` file in `$METRON_HOME/web/expressjs`:
```
npm --prefix $METRON_HOME/web/expressjs/ install
```
### From Package Manager
1. Deploy the RPM at `/metron/metron-deployment/packaging/docker/rpm-docker/target/RPMS/noarch/metron-config-$METRON_VERSION-*.noarch.rpm`
1. Install the RPM with:
```
rpm -ih metron-config-$METRON_VERSION-*.noarch.rpm
```
## Configuration
The Managment UI is configured in the `$METRON_HOME/config/management_ui.yml` file. Create this file and set the values to match your environment:
```
port: port the managment UI will run on
rest:
host: REST application host
port: REST applciation port
```
## Usage
After configuration is complete, the Management UI can be managed as a service:
```
service metron-management-ui start
```
The application will be available at http://host:4200 assuming the port is set to `4200`. Logs can be found at `/var/log/metron/metron-management-ui.log`.
## Development
The Management UI can also be started in development mode. This allows changes to web assets to be seen interactively.
1. Switch to the correct node version and install all the dependent node_modules using the following commands:
```
cd metron-interface/metron-config
nvm use
npm install
```
1. Start the application:
```
./scripts/start_dev.sh
```
The application will be available at http://localhost:4200/. The REST application url defaults to `http://localhost:8080` but can be changed in the `proxy.conf.json` file.
## Testing
1. Install the application with dev dependencies:
```
cd metron-interface/metron-config
npm install
```
1. Unit tests can be run with:
```
npm test
```
## License
This projects bundles Font Awesome which is available under the SIL Open Font License. See http://fontawesome.io/license/ for more details.