doc updates. fix docker build.
This commit is contained in:
		
							parent
							
								
									d7a1b65885
								
							
						
					
					
						commit
						11eda36692
					
				|  | @ -24,8 +24,8 @@ before_install: | ||||||
| install: | install: | ||||||
| - rvm 2.0.0 do gem install --no-document fpm | - rvm 2.0.0 do gem install --no-document fpm | ||||||
| - dep ensure | - dep ensure | ||||||
| - docker build -t unifi-poller . | - make docker | ||||||
| - docker run -d --name unifi-poller unifi-poller | tee docker_id | - docker run -d --name unifi-poller golift/unifi-poller | tee docker_id | ||||||
| script: | script: | ||||||
|   # Once we figure out how to keep it running we can remove the -a in ps args. |   # Once we figure out how to keep it running we can remove the -a in ps args. | ||||||
| - docker ps -a | grep -q unifi-poller | - docker ps -a | grep -q unifi-poller | ||||||
|  |  | ||||||
|  | @ -0,0 +1,72 @@ | ||||||
|  | _This doc is far from complete._ | ||||||
|  | 
 | ||||||
|  | # Build Pipeline | ||||||
|  | 
 | ||||||
|  | Lets talk about how the software gets built for our users before we talk about | ||||||
|  | making changes to it. | ||||||
|  | 
 | ||||||
|  | ## TravisCI | ||||||
|  | 
 | ||||||
|  | This repo is tested, built and deployed by [Travis-CI](https://travis-ci.org/davidnewhall/unifi-poller). | ||||||
|  | 
 | ||||||
|  | The [.travis.yml](.travis.yml) file in this repo coordinates the entire process. | ||||||
|  | As long as this document is kept up to date, this is what the travis file does: | ||||||
|  | 
 | ||||||
|  | -   Creates a go-capable build environment on a Linux host, some debian variant. | ||||||
|  | -   Install ruby-devel to get rubygems. | ||||||
|  | -   Installs other build tools including rpm and fpm from rubygems. | ||||||
|  | -   Starts docker, builds the docker container and runs it. | ||||||
|  | -   Tests that the Docker container ran and produced expected output. | ||||||
|  | -   Makes a release. `make release`: This does a lot of things, controlled by the [Makefile](Makefile). | ||||||
|  |     -   Runs go tests and go linters. | ||||||
|  |     -   Compiles the application binaries for Linux and macOS. | ||||||
|  |     -   Compiles a man page that goes into the packages. | ||||||
|  |     -   Creates rpm and deb packages using fpm. | ||||||
|  |     -   Puts the packages, gzipped binaries and a file containing the SHA256s of each asset into a release folder. | ||||||
|  | 
 | ||||||
|  | After the release is built and Docker image tested: | ||||||
|  | -   Deploys the release assets to the tagged release on GitHub using an encrypted GitHub Token (api key). | ||||||
|  | -   Runs [another script](scripts/formula-deploy.sh) to create and upload a Homebrew formula to [golift/homebrew-mugs](https://github.com/golift/homebrew-mugs). | ||||||
|  |     -   Uses an encrypted SSH key to upload the updated formula to the repo. | ||||||
|  | -   Travis does nothing else with Docker; it just makes sure the thing compiles and runs. | ||||||
|  | 
 | ||||||
|  | ### Homebrew | ||||||
|  | 
 | ||||||
|  | it's a mac thing. | ||||||
|  | 
 | ||||||
|  | [Homebrew](https://brew.sh) is all I use at home. Please don't break the homebrew | ||||||
|  | formula stuff; it took a lot of pain to get it just right. I am very interested | ||||||
|  | in how it works for you. | ||||||
|  | 
 | ||||||
|  | ### Docker | ||||||
|  | 
 | ||||||
|  | Docker is built automatically by Docker Cloud using the Dockerfile in the path | ||||||
|  | [init/docker/Dockerfile](init/docker/Dockerfile). Other than the Dockerfile, all | ||||||
|  | the configuration is done in the Cloud service under my personal account `golift`. | ||||||
|  | 
 | ||||||
|  | If you have need to change the Dockerfile, please clearly explain what problem your | ||||||
|  | changes are solving, and how it has been tested and validated. As far as I'm | ||||||
|  | concerned this file should never need to change again, but I'm not a Docker expert; | ||||||
|  | you're welcome to prove me wrong. | ||||||
|  | 
 | ||||||
|  | # Contributing | ||||||
|  | 
 | ||||||
|  | Make a pull request and tell me what you're fixing. Pretty simple. If I need to | ||||||
|  | I'll add more "rules." For now I'm happy to have help. Thank you! | ||||||
|  | 
 | ||||||
|  | ## Wiki | ||||||
|  | 
 | ||||||
|  | **If you see typos, errors, omissions, etc, please fix them.** | ||||||
|  | 
 | ||||||
|  | At this point, the wiki is pretty solid. Please keep your edits brief and without | ||||||
|  | too much opinion. If you want to provide a way to do something, please also provide | ||||||
|  | any alternatives you're aware of. If you're not sure, just open an issue and we can | ||||||
|  | hash it out. I'm reasonable. | ||||||
|  | 
 | ||||||
|  | ## Unifi Library | ||||||
|  | 
 | ||||||
|  | If you're trying to fix something in the unifi data collection (ie. you got an | ||||||
|  | unmarshal error, or you want to add something I didn't include) then you | ||||||
|  | should look at the [unifi library](https://github.com/golift/unifi). All the | ||||||
|  | data collection and export code lives there. Contributions and Issues are welcome | ||||||
|  | on that code base as well. | ||||||
							
								
								
									
										47
									
								
								README.md
								
								
								
								
							
							
						
						
									
										47
									
								
								README.md
								
								
								
								
							|  | @ -13,7 +13,7 @@ device configuration. This controller can be installed on Windows, macOS and Lin | ||||||
| Ubiquiti also provides a dedicated hardware device called a | Ubiquiti also provides a dedicated hardware device called a | ||||||
| [CloudKey](https://www.ui.com/unifi/unifi-cloud-key/) that runs the controller software. | [CloudKey](https://www.ui.com/unifi/unifi-cloud-key/) that runs the controller software. | ||||||
| 
 | 
 | ||||||
| Unifi-Poller is a smaller application that runs on macOS, Linux or Docker. It | Unifi-Poller is a small application that runs on macOS, Linux or Docker. It | ||||||
| polls your controller every 30 seconds for metric data and stores that data in | polls your controller every 30 seconds for metric data and stores that data in | ||||||
| an Influx Database. A small setup with 2 APs, 1 switch, 1 gateway and 40 clients | an Influx Database. A small setup with 2 APs, 1 switch, 1 gateway and 40 clients | ||||||
| produces nearly 3000 fields (metrics). | produces nearly 3000 fields (metrics). | ||||||
|  | @ -28,6 +28,7 @@ graphs to slice the data any way you choose. Good luck! | ||||||
| ## Installation | ## Installation | ||||||
| 
 | 
 | ||||||
| [See the Wiki!](https://github.com/davidnewhall/unifi-poller/wiki/Installation) | [See the Wiki!](https://github.com/davidnewhall/unifi-poller/wiki/Installation) | ||||||
|  | We have a special place for [Docker Users](https://github.com/davidnewhall/unifi-poller/wiki/Docker). | ||||||
| 
 | 
 | ||||||
| # Backstory | # Backstory | ||||||
| 
 | 
 | ||||||
|  | @ -59,9 +60,35 @@ for making this dashboard; it gave me a fantastic start to making my own. | ||||||
| 
 | 
 | ||||||
| I've also created [another forum post](https://community.ubnt.com/t5/UniFi-Wireless/Unifi-Poller-Store-Unifi-Controller-Metrics-in-InfluxDB-without/td-p/2811951) you may use to get additional help. | I've also created [another forum post](https://community.ubnt.com/t5/UniFi-Wireless/Unifi-Poller-Store-Unifi-Controller-Metrics-in-InfluxDB-without/td-p/2811951) you may use to get additional help. | ||||||
| 
 | 
 | ||||||
|  | # Development | ||||||
|  | 
 | ||||||
|  | The "What now..." section below used to be a lot larger. I've received a lot of | ||||||
|  | support, feedback and assistance from the community. Many thanks! This app is | ||||||
|  | extremely stable with a tiny memory and cpu footprint. I imagine one day we'll | ||||||
|  | figure out how to make it run on a CloudKey device directly; once I have one | ||||||
|  | personally that will be my goal. In addition to stability, this app provides | ||||||
|  | an intuitive installation and configuration process. Maintenance is a breeze too. | ||||||
|  | 
 | ||||||
|  | I'm not a software engineer, I'm a a firm believer in operational excellence above | ||||||
|  | all else. To that end, this app shall remain easy, intuitive and highly adaptable. | ||||||
|  | I'm totally open to add more configuration options if someone raises a need or concern. | ||||||
|  | 
 | ||||||
|  | You can control this app with puppet, chef, saltstack, homebrew or a simple bash | ||||||
|  | script if you needed to. It's available for macOS, Linux and Docker. It comes with | ||||||
|  | a systemd service unit that allows you automatically start it up on most Linux | ||||||
|  | hosts. It probably works just fine on Windows too; | ||||||
|  | [let me know eh](https://github.com/davidnewhall/unifi-poller/wiki/Windows)? | ||||||
|  | 
 | ||||||
|  | The unifi data extraction is provided as an [external library](https://github.com/golift/unifi), | ||||||
|  | and you can import that code directly without futzing with this application. That | ||||||
|  | means, if you wanted to do something like make telegraf collect your data instead | ||||||
|  | of unifi-poller you can achieve that with a little bit of Go code. You could write | ||||||
|  | a small app that acts as a telegraf input plugin using the available | ||||||
|  | [unifi](https://github.com/golift/unifi) library to grab the data from your controller. | ||||||
|  | 
 | ||||||
| # What now... | # What now... | ||||||
| 
 | 
 | ||||||
| - Are there other devices that need to be included? | ### Are there other devices that need to be included? | ||||||
| 
 | 
 | ||||||
| I have: switch, router, access point. Three total, and the type structs are | I have: switch, router, access point. Three total, and the type structs are | ||||||
| likely missing data for variants of these devices. e.g. Some UAPs have more | likely missing data for variants of these devices. e.g. Some UAPs have more | ||||||
|  | @ -70,15 +97,7 @@ ports, some switches have 10Gb, etc. These are things I do not have data on | ||||||
| to write code for. If you have these devices, and want them graphed, open an | to write code for. If you have these devices, and want them graphed, open an | ||||||
| Issue and lets discuss. | Issue and lets discuss. | ||||||
| 
 | 
 | ||||||
| - Better Installation instructions. | ### Radios, Frequencies, Interfaces, vAPs | ||||||
| 
 |  | ||||||
| If you're a nerd you can probably figure it out. I'd still like some pretty |  | ||||||
| pictures and maybe even a Twitch VOD. Update: The installation has been |  | ||||||
| simplified tremendously with the |  | ||||||
| [creation of binary packages](https://github.com/davidnewhall/unifi-poller/wiki/Installation). |  | ||||||
| More to come! |  | ||||||
| 
 |  | ||||||
| - Radios, Frequencies, Interfaces, vAPs |  | ||||||
| 
 | 
 | ||||||
| My access points only seem to have two radios, one interface and vAP per radio. | My access points only seem to have two radios, one interface and vAP per radio. | ||||||
| I'm not sure if the graphs, as-is, provide enough insight into APs with other | I'm not sure if the graphs, as-is, provide enough insight into APs with other | ||||||
|  | @ -107,6 +126,6 @@ sites side-by-side. So easy! This screenshot barely does it justice. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## Copyright & License | ## Copyright & License | ||||||
| - Copyright © 2016 Garrett Bjerkhoel. | -   Copyright © 2016 Garrett Bjerkhoel. | ||||||
| - Copyright © 2018-2019 David Newhall II. | -   Copyright © 2018-2019 David Newhall II. | ||||||
| - See [LICENSE](LICENSE) for license information. | -   See [LICENSE](LICENSE) for license information. | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue