open-balena/README.md

132 lines
9.0 KiB
Markdown
Raw Normal View History

2018-11-12 16:02:49 +00:00
<img alt="openBalena" src="docs/assets/openbalena-logo.svg" height="82">
2018-02-20 09:20:12 +00:00
2018-11-12 16:02:49 +00:00
---
2018-02-20 09:20:12 +00:00
2018-11-12 16:02:49 +00:00
OpenBalena is a platform to deploy and manage connected devices. Devices run
[balenaOS][balena-os-website], a host operating system designed for running
containers on IoT devices, and are managed via the [balena CLI][balena-cli],
which you can use to configure your application containers, push updates, check
status, view logs, and so forth. OpenBalenas backend services, composed of
battle-tested components that weve run in production on [balenaCloud][balena-cloud-website]
for years, can store device information securely and reliably, allow remote
management via a built-in VPN service, and efficiently distribute container
images to your devices.
2018-02-20 09:20:12 +00:00
2018-11-12 16:02:49 +00:00
To learn more about openBalena, visit [balena.io/open][open-balena-website].
2018-02-20 09:20:12 +00:00
2018-11-12 16:02:49 +00:00
## Features
2018-02-20 09:20:12 +00:00
2018-11-12 16:02:49 +00:00
- **Simple provisioning**: Adding devices to your fleet is a breeze
- **Easy updates**: Remotely update the software on your devices with a single command
- **Container-based**: Benefit from the power of virtualization, optimized for the edge
- **Scalable**: Deploy and manage one device, or one million
- **Powerful API & SDK**: Extend openBalena to fit your needs
- **Built-in VPN**: Access your devices regardless of their network environment
2018-02-20 09:20:12 +00:00
2018-11-12 16:02:49 +00:00
## Roadmap
2018-02-20 09:20:12 +00:00
2018-11-12 16:02:49 +00:00
OpenBalena is currently in beta. While fully functional, it lacks features we
consider important before we can comfortably call it production-ready. During
this phase, dont be alarmed if things dont work as expected just yet (and
please let us know about any bugs or errors you encounter!). The following
improvements and new functionality is planned:
2018-02-20 09:20:12 +00:00
2018-11-12 16:02:49 +00:00
- Full documentation
- Full test suite
- Simplified deployment
- Remote host OS updates
- Support for custom device types
2018-02-20 09:20:12 +00:00
2018-11-12 16:02:49 +00:00
## Contributing
2018-02-20 09:20:12 +00:00
2018-11-12 16:02:49 +00:00
Everyone is welcome to contribute to openBalena. There are many different ways
to get involved apart from submitting pull requests, including helping other
users on the [forums][forums], reporting or triaging [issues][issue-tracker],
reviewing and discussing [pull requests][pulls], or just spreading the word.
2018-02-20 09:20:12 +00:00
2018-11-12 16:02:49 +00:00
All of openBalena is hosted on GitHub. Apart from its constituent components,
which are the [API][open-balena-api], [VPN][open-balena-vpn], [Registry][open-balena-registry],
[S3 storage service][open-balena-s3], and [Database][open-balena-db], contributions
are also welcome to its client-side software such as the [balena CLI][balena-cli],
the [balena SDK][balena-sdk], [balenaOS][balena-os] and [balenaEngine][balena-engine].
2018-02-20 09:20:12 +00:00
2018-11-12 16:02:49 +00:00
## Getting Started
2018-02-20 09:20:12 +00:00
2018-11-12 16:02:49 +00:00
Our [Getting Started][getting-started] guide is the most direct path to getting
an openBalena installation up and running and successfully deploying your
application to your device(s).
2018-02-20 09:20:12 +00:00
> **IMPORTANT:** Due to changes in [balenaOS][balena-os], only versions up to and including `2.49.0` are currently supported. Additionally, only [balenaCLI](balena-cli) versions `<v12.2.2` are fully supported at the moment.
2018-02-20 09:20:12 +00:00
2018-11-12 16:02:49 +00:00
## Documentation
2018-02-20 09:20:12 +00:00
2018-11-12 16:02:49 +00:00
While we're still working on the project documentation, please refer to the
[balenaCloud documentation][documentation]. BalenaCloud is built on top of
openBalena, so the core concepts and functionality is identical. The following
sections are of particular interest:
2018-02-20 09:20:12 +00:00
2018-11-12 16:02:49 +00:00
- [Overview / A balena primer](https://balena.io/docs/learn/welcome/primer)
- [Overview / Core Concepts](https://balena.io/docs/learn/welcome/concepts)
- [Overview / Going to production](https://balena.io/docs/learn/welcome/production-plan)
- [Develop / Define a container](https://balena.io/docs/learn/develop/dockerfile)
- [Develop / Multiple containers](https://balena.io/docs/learn/develop/multicontainer)
- [Develop / Runtime](https://balena.io/docs/learn/develop/runtime)
- [Develop / Interact with hardware](https://balena.io/docs/learn/develop/hardware)
- [Deploy / Optimize your builds](https://balena.io/docs/learn/deploy/build-optimization)
- [Reference](https://balena.io/docs/reference)
- [FAQ](https://balena.io/docs/faq/troubleshooting/faq)
2018-02-20 09:20:12 +00:00
## Differences between openBalena and balenaCloud
| openBalena | balenaCloud |
| ----- | ---- |
| Device updates using full images | Device updates using [delta images](https://www.balena.io/docs/learn/deploy/delta/) |
| Support for a single user | Support for [multiple users](https://www.balena.io/docs/learn/manage/account/#application-members) |
| Self-hosted deployment and scaling | balena-managed scaling and deployment |
| Community support via [forums](https://forums.balena.io/c/open-balena) | Private support on [paid plans](https://www.balena.io/pricing/) |
| Deploy via `balena deploy` only | Build remotely with native builders using [`balena push`](https://www.balena.io/docs/learn/deploy/deployment/#balena-push) or [`git push`](https://www.balena.io/docs/learn/deploy/deployment/#git-push) |
| No support for building via `git push` | Use the same CI workflow with [`git push`](https://www.balena.io/docs/learn/deploy/deployment/#git-push) |
| No public URL support | Serve websites directly from device with [public device URLs](https://www.balena.io/docs/learn/manage/actions/#enable-public-device-url) |
| Management via `balena-cli` only | Cloud-based device management dashboard |
| Download images from https://www.balena.io/os/ | Download preconfigured images directly from the dashboard |
| No supported remote diagnostics | Remote device diagnostics |
Additionally, refer back to the [roadmap](#roadmap) above for planned but not yet implemented features.
2018-02-20 09:20:12 +00:00
2018-11-12 16:02:49 +00:00
## Getting Help
You are welcome to submit any questions, participate in discussions and request
help with any issue in [openBalena forums][forums]. The balena team frequents
these forums and will be happy to help. You can also ask other community members
for help, or contribute by answering questions posted by fellow openBalena users.
Please do not use the issue tracker for support-related questions.
## License
OpenBalena is licensed under the terms of AGPL v3. See [LICENSE](LICENSE) for details.
[balena-cli]: https://github.com/balena-io/balena-cli
[balena-cloud-website]: https://balena.io/cloud
[balena-engine]: https://github.com/balena-os/balena-engine
[balena-os-website]: https://balena.io/os
[balena-os]: https://github.com/balena-os/meta-balena
[balena-sdk]: https://github.com/balena-io/balena-sdk
[documentation]: https://balena.io/docs/learn/welcome/introduction/
[forums]: https://forums.balena.io/c/open-balena
[getting-started]: https://balena.io/open/docs/getting-started
[issue-tracker]: https://github.com/balena-io/open-balena/issues
[open-balena-api]: https://github.com/balena-io/open-balena-api
[open-balena-db]: https://github.com/balena-io/open-balena-db
[open-balena-registry]: https://github.com/balena-io/open-balena-registry
[open-balena-s3]: https://github.com/balena-io/open-balena-s3
[open-balena-vpn]: https://github.com/balena-io/open-balena-vpn
[open-balena-website]: https://balena.io/open
[pulls]: https://github.com/balena-io/open-balena/pulls