From 45c921872376c9c40c21fbbc91d0b5a5423a8eb4 Mon Sep 17 00:00:00 2001 From: "Community Hass.io Add-ons Bot" Date: Tue, 29 May 2018 18:24:57 +0000 Subject: [PATCH] :tada: Release of add-on Grafana 0.1.0 --- README.md | 23 ++++++++++++++++++++++ grafana/CHANGELOG.md | 1 + grafana/README.md | 38 +++++++++++++++++++++++++++++++++++++ grafana/config.json | 44 +++++++++++++++++++++++++++++++++++++++++++ grafana/icon.png | Bin 0 -> 9704 bytes grafana/logo.png | Bin 0 -> 3396 bytes 6 files changed, 106 insertions(+) create mode 100644 grafana/CHANGELOG.md create mode 100644 grafana/README.md create mode 100644 grafana/config.json create mode 100644 grafana/icon.png create mode 100644 grafana/logo.png diff --git a/README.md b/README.md index 849c9171..57099526 100644 --- a/README.md +++ b/README.md @@ -98,6 +98,19 @@ A secure and fast FTP server for Hass.io [:books: FTP add-on documentation][addon-doc-ftp] +### ✓ [Grafana][addon-grafana] + +![Latest Version][grafana-version-shield] +![Supports armhf Architecture][grafana-armhf-shield] +![Supports aarch64 Architecture][grafana-aarch64-shield] +![Supports amd64 Architecture][grafana-amd64-shield] +![Supports i386 Architecture][grafana-i386-shield] +![Docker Pulls][grafana-pulls-shield] + +The open platform for beautiful analytics and monitoring + +[:books: Grafana add-on documentation][addon-doc-grafana] + ### ✓ [Happy Bubbles][addon-happy-bubbles] ![Latest Version][happy-bubbles-version-shield] @@ -279,6 +292,7 @@ on the correct GitHub repository matching the add-on. - [Open an issue for the add-on: AppDaemon][appdaemon3-issue] - [Open an issue for the add-on: Example][example-issue] - [Open an issue for the add-on: FTP][ftp-issue] +- [Open an issue for the add-on: Grafana][grafana-issue] - [Open an issue for the add-on: Happy Bubbles][happy-bubbles-issue] - [Open an issue for the add-on: Home Assistant Control Panel][control-panel-issue] - [Open an issue for the add-on: Homebridge][homebridge-issue] @@ -385,6 +399,15 @@ SOFTWARE. [ftp-amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg [ftp-armhf-shield]: https://img.shields.io/badge/armhf-yes-green.svg [ftp-i386-shield]: https://img.shields.io/badge/i386-yes-green.svg +[addon-grafana]: https://github.com/hassio-addons/addon-grafana/tree/v0.1.0 +[addon-doc-grafana]: https://github.com/hassio-addons/addon-grafana/blob/v0.1.0/README.md +[grafana-issue]: https://github.com/hassio-addons/addon-grafana/issues +[grafana-version-shield]: https://img.shields.io/badge/version-v0.1.0-blue.svg +[grafana-pulls-shield]: https://img.shields.io/docker/pulls/hassioaddons/grafana-armhf.svg +[grafana-aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg +[grafana-amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg +[grafana-armhf-shield]: https://img.shields.io/badge/armhf-yes-green.svg +[grafana-i386-shield]: https://img.shields.io/badge/i386-no-red.svg [addon-happy-bubbles]: https://github.com/hassio-addons/addon-happy-bubbles/tree/v0.3.0 [addon-doc-happy-bubbles]: https://github.com/hassio-addons/addon-happy-bubbles/blob/v0.3.0/README.md [happy-bubbles-issue]: https://github.com/hassio-addons/addon-happy-bubbles/issues diff --git a/grafana/CHANGELOG.md b/grafana/CHANGELOG.md new file mode 100644 index 00000000..be787ead --- /dev/null +++ b/grafana/CHANGELOG.md @@ -0,0 +1 @@ +🎉 Initial release! \ No newline at end of file diff --git a/grafana/README.md b/grafana/README.md new file mode 100644 index 00000000..570c4496 --- /dev/null +++ b/grafana/README.md @@ -0,0 +1,38 @@ +# Community Hass.io Add-ons: Grafana + +[![Release][release-shield]][release] ![Project Stage][project-stage-shield] ![Project Maintenance][maintenance-shield] + +[![Discord][discord-shield]][discord] [![Community Forum][forum-shield]][forum] + +[![Buy me a coffee][buymeacoffee-shield]][buymeacoffee] + +The open platform for beautiful analytics and monitoring. + +## About + +The analytics platform for all your metrics. + +Grafana allows you to query, visualize, alert on and understand your metrics +no matter where they are stored. Create, explore, and share dashboards. Learn +about your Home Automation system using sexy and compelling graphs, and other +data visualizations. + +Combine this add-on with the InfluxDB add-on to get insanely powerful +insights to your home. + +[Click here for the full documentation][docs] + +![Grafana in the Home Assistant Frontend][screenshot] + +[buymeacoffee-shield]: https://www.buymeacoffee.com/assets/img/guidelines/download-assets-sm-2.svg +[buymeacoffee]: https://www.buymeacoffee.com/frenck +[discord-shield]: https://img.shields.io/discord/330944238910963714.svg +[discord]: https://discord.gg/c5DvZ4e +[docs]: https://github.com/hassio-addons/addon-grafana/blob/v0.1.0/README.md +[forum-shield]: https://img.shields.io/badge/community-forum-brightgreen.svg +[forum]: https://community.home-assistant.io/t/community-hass-io-add-on-grafana/54674?u=frenck +[maintenance-shield]: https://img.shields.io/maintenance/yes/2018.svg +[project-stage-shield]: https://img.shields.io/badge/project%20stage-experimental-yellow.svg +[release-shield]: https://img.shields.io/badge/version-v0.1.0-blue.svg +[release]: https://github.com/hassio-addons/addon-grafana/tree/v0.1.0 +[screenshot]: https://github.com/hassio-addons/addon-grafana/raw/master/images/screenshot.png \ No newline at end of file diff --git a/grafana/config.json b/grafana/config.json new file mode 100644 index 00000000..efd2d350 --- /dev/null +++ b/grafana/config.json @@ -0,0 +1,44 @@ +{ + "name": "Grafana", + "version": "0.1.0", + "slug": "grafana", + "description": "The open platform for beautiful analytics and monitoring", + "url": "https://community.home-assistant.io/t/community-hass-io-add-on-grafana/54674?u=frenck", + "webui": "[PROTO:ssl]://[HOST]:[PORT:3000]", + "startup": "services", + "arch": [ + "aarch64", + "amd64", + "armhf" + ], + "map": [ + "ssl" + ], + "boot": "auto", + "ports": { + "3000/tcp": 3000 + }, + "hassio_api": true, + "homeassistant_api": false, + "host_network": false, + "options": { + "log_level": "info", + "ssl": false, + "certfile": "fullchain.pem", + "keyfile": "privkey.pem", + "plugins": [] + }, + "schema": { + "log_level": "match(^(trace|debug|info|notice|warning|error|fatal)$)", + "ssl": "bool", + "certfile": "str", + "keyfile": "str", + "plugins": [ + "str" + ] + }, + "environment": { + "LOG_FORMAT": "{LEVEL}: {MESSAGE}" + }, + "image": "hassioaddons/grafana-{arch}" +} \ No newline at end of file diff --git a/grafana/icon.png b/grafana/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e9dff3b0077bb86b23a6d8b7a6bada9aaee4c594 GIT binary patch literal 9704 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
    `HsLX64T{p=|9=kt^Aw-}@`??X)+_(1>w a000lr9Udn&H~qc<0000