diff --git a/README.md b/README.md index e165bfb0..f3197eac 100644 --- a/README.md +++ b/README.md @@ -243,6 +243,19 @@ Scalable datastore for metrics, events, and real-time analytics [:books: InfluxDB add-on documentation][addon-doc-influxdb] +### ✓ [JupyterLab][addon-jupyterlab] + +![Latest Version][jupyterlab-version-shield] +![Supports armhf Architecture][jupyterlab-armhf-shield] +![Supports armv7 Architecture][jupyterlab-armv7-shield] +![Supports aarch64 Architecture][jupyterlab-aarch64-shield] +![Supports amd64 Architecture][jupyterlab-amd64-shield] +![Supports i386 Architecture][jupyterlab-i386-shield] + +Create documents containing live code, equations, visualizations, and explanatory text + +[:books: JupyterLab add-on documentation][addon-doc-jupyterlab] + ### ✓ [Log Viewer][addon-log-viewer] ![Latest Version][log-viewer-version-shield] @@ -622,6 +635,7 @@ on the correct GitHub repository matching the add-on. - [Open an issue for the add-on: Grocy][grocy-issue] - [Open an issue for the add-on: Home Panel][home-panel-issue] - [Open an issue for the add-on: InfluxDB][influxdb-issue] +- [Open an issue for the add-on: JupyterLab][jupyterlab-issue] - [Open an issue for the add-on: Log Viewer][log-viewer-issue] - [Open an issue for the add-on: Lutron Certificate][lutron-cert-issue] - [Open an issue for the add-on: MQTT Server & Web client][mqtt-issue] @@ -839,6 +853,15 @@ SOFTWARE. [influxdb-armhf-shield]: https://img.shields.io/badge/armhf-no-red.svg [influxdb-armv7-shield]: https://img.shields.io/badge/armv7-yes-green.svg [influxdb-i386-shield]: https://img.shields.io/badge/i386-yes-green.svg +[addon-jupyterlab]: https://github.com/hassio-addons/addon-jupyterlab/tree/v0.4.0 +[addon-doc-jupyterlab]: https://github.com/hassio-addons/addon-jupyterlab/blob/v0.4.0/README.md +[jupyterlab-issue]: https://github.com/hassio-addons/addon-jupyterlab/issues +[jupyterlab-version-shield]: https://img.shields.io/badge/version-v0.4.0-blue.svg +[jupyterlab-aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg +[jupyterlab-amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg +[jupyterlab-armhf-shield]: https://img.shields.io/badge/armhf-no-red.svg +[jupyterlab-armv7-shield]: https://img.shields.io/badge/armv7-no-red.svg +[jupyterlab-i386-shield]: https://img.shields.io/badge/i386-no-red.svg [addon-log-viewer]: https://github.com/hassio-addons/addon-log-viewer/tree/v0.9.1 [addon-doc-log-viewer]: https://github.com/hassio-addons/addon-log-viewer/blob/v0.9.1/README.md [log-viewer-issue]: https://github.com/hassio-addons/addon-log-viewer/issues diff --git a/jupyterlab/CHANGELOG.md b/jupyterlab/CHANGELOG.md new file mode 100644 index 00000000..2724ad64 --- /dev/null +++ b/jupyterlab/CHANGELOG.md @@ -0,0 +1,22 @@ +## What’s changed + +**EVERYTHING**! + +Even its name has been changed from "JupyterLab Lite" to just "JupyterLab". + +So, it has been a while since this add-on had an update. This was mainly caused by a heavy build process and an almost impossible set to build for all architectures. Therefore, this release brings almost a completely new add-on! + +So for the biggest changes since the last release: + +- The add-on now runs on Debian as its base. +- Support for `armhf`/`armv7` has been dropped. +- Direct access to the JupyterLabs ports has been dropped. +- **Home Assistant Ingress** support has been added! +- All dependencies are updated to the latest possible versions. +- The add-on is now built on GitHub Actions. +- The add-on is distributed via the GitHub Container Registry. + +The add-on is now a single-click install, start and go experience 🤘 +And with all current changes, I can actually maintain it now 😁 + +Enjoy the release! \ No newline at end of file diff --git a/jupyterlab/DOCS.md b/jupyterlab/DOCS.md new file mode 100644 index 00000000..9af340df --- /dev/null +++ b/jupyterlab/DOCS.md @@ -0,0 +1,171 @@ +# Home Assistant Community Add-on: JupyterLab + +JupyterLab is an open-source web application that allows you to create and share +documents that contain live code, equations, visualizations and narrative text. +Uses include: data cleaning and transformation, numerical simulation, +statistical modeling, data visualization, machine learning, and much more. + +This add-on runs JupyterLab, which is the next-generation user interface for +Project Jupyter. It is an extensible environment for interactive and +reproducible computing, based on the Jupyter Notebook and Architecture. + +## Installation + +The installation of this add-on is pretty straightforward and not different in +comparison to installing any other Home Assistant add-on. + +1. Search for the "JupyterLab" add-on in the Supervisor add-on store + and install it. +1. Start the "JupyterLab" add-on +1. Check the logs of the "JupyterLab" add-on to see if everything went well. + +## Configuration + +**Note**: _Remember to restart the add-on when the configuration is changed._ + +Example add-on configuration: + +```yaml +log_level: info +github_access_token: abcdef1234567890abcdef0123456789abcdef01 +system_packages: + - ffmpeg +init_commands: + - pip install virtualenv + - pip install yamllint +``` + +**Note**: _This is just an example, don't copy and past it! Create your own!_ + +### Option: `log_level` + +The `log_level` option controls the level of log output by the addon and can +be changed to be more or less verbose, which might be useful when you are +dealing with an unknown issue. Possible values are: + +- `trace`: Show every detail, like all called internal functions. +- `debug`: Shows detailed debug information. +- `info`: Normal (usually) interesting events. +- `warning`: Exceptional occurrences that are not errors. +- `error`: Runtime errors that do not require immediate action. +- `fatal`: Something went terribly wrong. Add-on becomes unusable. + +Please note that each level automatically includes log messages from a +more severe level, e.g., `debug` also shows `info` messages. By default, +the `log_level` is set to `info`, which is the recommended setting unless +you are troubleshooting. + +### Option: `github_access_token` + +Sets an GitHub access token. When making unauthenticated requests to GitHub +(as we must do to get repository data), GitHub imposes fairly strict rate-limits +on how many requests we can make. As such, you are likely to hit that limit +within a few minutes of work. + +There is a chapter in this document with instruction on obtaining such a token. + +**Note**: _This option support secrets, e.g., `!secret github_token`._ + +### Option: `system_packages` + +Allows you to specify additional [Alpine packages][alpine-packages] to be +installed to your JupyterLab setup (e.g., `g++`. `make`, `ffmpeg`). + +**Note**: _Adding many packages will result in a longer start-up time +for the add-on._ + +#### Option: `init_commands` + +Customize your environment even more with the `init_commands` option. +Add one or more shell commands to the list, and they will be executed every +single time this add-on starts. + +## Getting a GitHub access token + +You can get an access token by following these steps: + +1. [Verify][github-verify] your email address with GitHub. +1. Go to your account settings on GitHub and select "Developer Settings" + from the left panel. +1. On the left, select "Personal access tokens" +1. Click the "Generate new token" button, and enter your password. +1. Give the token a description, and check the "**repo**" scope box. +1. Click "Generate token" +1. You should be given a string which will be your access token. + +Remember that this token is effectively a password for your GitHub account. +_Do not_ share it online or check the token into version control, +as people can use it to access all of your data on GitHub. + +## Changelog & Releases + +This repository keeps a change log using [GitHub's releases][releases] +functionality. + +Releases are based on [Semantic Versioning][semver], and use the format +of `MAJOR.MINOR.PATCH`. In a nutshell, the version will be incremented +based on the following: + +- `MAJOR`: Incompatible or major changes. +- `MINOR`: Backwards-compatible new features and enhancements. +- `PATCH`: Backwards-compatible bugfixes and package updates. + +## Support + +Got questions? + +You have several options to get them answered: + +- The [Home Assistant Community Add-ons Discord chat server][discord] for add-on + support and feature requests. +- The [Home Assistant Discord chat server][discord-ha] for general Home + Assistant discussions and questions. +- The Home Assistant [Community Forum][forum]. +- Join the [Reddit subreddit][reddit] in [/r/homeassistant][reddit] + +You could also [open an issue here][issue] GitHub. + +## Authors & contributors + +The original setup of this repository is by [Franck Nijhof][frenck]. + +For a full list of all authors and contributors, +check [the contributor's page][contributors]. + +## License + +MIT License + +Copyright (c) 2018-2021 Franck Nijhof + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +[alpine-packages]: https://pkgs.alpinelinux.org/packages +[contributors]: https://github.com/hassio-addons/addon-jupyterlab/graphs/contributors +[discord-ha]: https://discord.gg/c5DvZ4e +[discord]: https://discord.me/hassioaddons +[forum-shield]: https://img.shields.io/badge/community-forum-brightgreen.svg +[forum]: https://community.home-assistant.io/t/home-assistant-community-add-on-jupyterlab/87337?u=frenck +[frenck]: https://github.com/frenck +[github-verify]: https://help.github.com/articles/verifying-your-email-address +[issue]: https://github.com/hassio-addons/addon-jupyterlab/issues +[python-packages]: https://pypi.org/ +[reddit]: https://reddit.com/r/homeassistant +[releases]: https://github.com/hassio-addons/addon-jupyterlab/releases +[semver]: http://semver.org/spec/v2.0.0.htm diff --git a/jupyterlab/README.md b/jupyterlab/README.md new file mode 100644 index 00000000..428a1574 --- /dev/null +++ b/jupyterlab/README.md @@ -0,0 +1,40 @@ +# Home Assistant Community Add-on: JupyterLab + +[![Release][release-shield]][release] ![Project Stage][project-stage-shield] ![Project Maintenance][maintenance-shield] + +[![Discord][discord-shield]][discord] [![Community Forum][forum-shield]][forum] + +[![Sponsor Frenck via GitHub Sponsors][github-sponsors-shield]][github-sponsors] + +[![Support Frenck on Patreon][patreon-shield]][patreon] + +Create documents containing live code, equations, visualizations, +and explanatory text. + +![The JupyterLab add-on][screenshot] + +## About + +JupyterLab is an open-source web application that allows you to create and share +documents that contain live code, equations, visualizations and narrative text. +Uses include: data cleaning and transformation, numerical simulation, +statistical modeling, data visualization, machine learning, and much more. + +This add-on runs JupyterLab, which is the next-generation user interface for +Project Jupyter. It is an extensible environment for interactive and +reproducible computing, based on the Jupyter Notebook and Architecture. + + +[discord-shield]: https://img.shields.io/discord/478094546522079232.svg +[discord]: https://discord.me/hassioaddons +[forum-shield]: https://img.shields.io/badge/community-forum-brightgreen.svg +[forum]: https://community.home-assistant.io/t/home-assistant-community-add-on-jupyterlab-lite/87337?u=frenck +[github-sponsors-shield]: https://frenck.dev/wp-content/uploads/2019/12/github_sponsor.png +[github-sponsors]: https://github.com/sponsors/frenck +[maintenance-shield]: https://img.shields.io/maintenance/yes/2021.svg +[patreon-shield]: https://frenck.dev/wp-content/uploads/2019/12/patreon.png +[patreon]: https://www.patreon.com/frenck +[project-stage-shield]: https://img.shields.io/badge/project%20stage-experimental-yellow.svg +[release-shield]: https://img.shields.io/badge/version-v0.4.0-blue.svg +[release]: https://github.com/hassio-addons/addon-jupyterlab/tree/v0.4.0 +[screenshot]: https://github.com/hassio-addons/addon-jupyterlab/raw/main/images/screenshot.png \ No newline at end of file diff --git a/jupyterlab/config.json b/jupyterlab/config.json new file mode 100644 index 00000000..4b649cb0 --- /dev/null +++ b/jupyterlab/config.json @@ -0,0 +1,34 @@ +{ + "name": "JupyterLab", + "version": "0.4.0", + "slug": "jupyterlablite", + "description": "Create documents containing live code, equations, visualizations, and explanatory text", + "url": "https://github.com/hassio-addons/addon-jupyterlab", + "ingress": true, + "panel_icon": "mdi:flask-outline", + "arch": [ + "aarch64", + "amd64" + ], + "homeassistant_api": true, + "map": [ + "config:rw", + "share:rw" + ], + "options": { + "github_access_token": "", + "system_packages": [], + "init_commands": [] + }, + "schema": { + "log_level": "list(trace|debug|info|notice|warning|error|fatal)?", + "github_access_token": "password", + "system_packages": [ + "str" + ], + "init_commands": [ + "str" + ] + }, + "image": "ghcr.io/hassio-addons/jupyterlab/{arch}" +} \ No newline at end of file diff --git a/jupyterlab/icon.png b/jupyterlab/icon.png new file mode 100644 index 00000000..20e4baec Binary files /dev/null and b/jupyterlab/icon.png differ diff --git a/jupyterlab/logo.png b/jupyterlab/logo.png new file mode 100644 index 00000000..2301809c Binary files /dev/null and b/jupyterlab/logo.png differ