74 lines
2.8 KiB
Markdown
74 lines
2.8 KiB
Markdown
# Mainflux UI Dashboad
|
|
|
|
Mainflux UI, dashboard for [Mainflux](https://github.com/mainflux/mainflux) Industrial IoT Messaging and Device Management Server.
|
|
|
|
> **N.B.** Mainflux UI service is WIP and not suitable for deployment at this moment. You are welcome to contribute and improve it.
|
|
> ## Development
|
|
>- Follow angular-cli [documentation](https://github.com/angular/angular-cli)
|
|
>- Follow [official angular style guide](https://angular.io/styleguide)
|
|
|
|
## Requirements
|
|
|
|
You'll need the following software installed to get started.
|
|
|
|
- [Node](https://nodejs.org/en/) 6 or higher, we recommend current LTS version, together with NPM 3 or higher.
|
|
- [Angular-cli](https://github.com/angular/angular-cli) Newest version with Webpack integration
|
|
- - Depending on how Node is configured on your machine, you may need to run installation command with `sudo`
|
|
- [Git](http://git-scm.com/downloads): Use the installer for your OS.
|
|
- Windows users can also try [Git for Windows](http://git-for-windows.github.io/).
|
|
- For local Development with [Mainflux composition](https://github.com/mainflux/mainflux) running locally, [Chrome extension for Cross origin](https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?utm_source=chrome-app-launcher-info-dialog) is required. Because composition is running on different port then our Angular app, we have cross origin.
|
|
|
|
## Configuration
|
|
|
|
Change into the directory.
|
|
|
|
```bash
|
|
cd dashflux
|
|
```
|
|
|
|
Install the dependencies. If you're running Mac OS or Linux, you may need to run `sudo npm install` instead, depending on how your machine is configured.
|
|
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
Set appropriate endpoint URLs in **environment.ts** (for local development will probably be 0.0.0.0:<_port_>) or **environment.prod.ts** for production.
|
|
|
|
To start the server, run:
|
|
|
|
```bash
|
|
ng serve
|
|
```
|
|
|
|
This will run and assemble our app.
|
|
**Now go to `localhost:4200` in your browser to see it in action.**
|
|
|
|
## Deployment
|
|
|
|
Dashflux is distributed as Docker container. We use nginx to serve dashflux from docker container, supporting environments using docker multi-stage builds.
|
|
Dashflux docker image is available on [Dockerhub mainflux/dashflux](https://hub.docker.com/r/mainflux/dashflux/)
|
|
|
|
If you want to build image locally, you can build image using the **development** environment:
|
|
|
|
```bash
|
|
docker build -f docker/Dockerfile -t dashflux:dev --build-arg env=dev .
|
|
```
|
|
|
|
Build image using the **production** environment:
|
|
|
|
```bash
|
|
docker build -t dashflux:prod -f ./docker/Dockerfile .
|
|
```
|
|
|
|
**Note:** before running *docker build* command, please make sure appropriate endpoint URLs in *environment.ts* or *environment.prod.ts* are set up.
|
|
|
|
You can test image running
|
|
|
|
```bash
|
|
docker run -p 80:80 dashflux:dev
|
|
```
|
|
|
|
This will run dashflux in docker container.
|
|
|
|
Now go to `http://localhost` in your browser to see it in action.
|