Embedded Development Infrastructure - edi ========================================= .. image:: https://github.com/lueschem/edi/actions/workflows/package-build.yml/badge.svg?branch=master :target: https://github.com/lueschem/edi/actions?query=branch%3Amaster .. image:: https://github.com/lueschem/edi/actions/workflows/package-build.yml/badge.svg?branch=develop :target: https://github.com/lueschem/edi/actions?query=branch%3Adevelop .. image:: https://img.shields.io/badge/deb-packagecloud.io-844fec.svg :target: https://packagecloud.io/get-edi/debian .. image:: https://readthedocs.org/projects/edi/badge/?version=latest :target: https://docs.get-edi.io/en/latest/?badge=latest :alt: Documentation Status edi is a generic tool that helps you to streamline your *e*\ mbedded *d*\ evelopment *i*\ nfrastructure. By itself edi does not do a lot but together with a project configuration (examples: `edi-pi`_, `edi-cl`_ and `edi-var`_) it unfolds its potential and you can build - artifacts like *full OS images* that can be directly flashed to a device, - artifacts that allow you to *update your device over the air*\ , - *Linux containers* that serve as a *digital twin* of the device and can be used for development, build automation, testing and even container based deployments and - nice *documents* about the content of your artifacts in a reproducible manner that easily fits into a modern, automated development workflow. .. _`edi-pi`: https://github.com/lueschem/edi-pi .. _`edi-cl`: https://github.com/lueschem/edi-cl .. _`edi-var`: https://github.com/lueschem/edi-var edi is proven in use and OS and container images generated by edi are running on 700k+ devices all around the world! edi project configurations can easily be adjusted to individual use cases and additional hardware devices. The setup is designed in a way that it scales up to large development projects. Instead of reinventing the wheel, edi leverages best of breed open source technologies: - Ansible_ is the tool of choice for doing the configuration management. - LXD_ or Podman_ allow you to run multiple OS twin instances on your development host. - Yaml_ and Jinja2_ are the consistent way to write edi configuration files and Ansible playbooks. - Python_ is the language and ecosystem that makes the system integration efficient. - edi is supposed to be used on the `Ubuntu Linux`_ or `Debian Linux`_ distribution. - By default, edi generates `Debian Linux`_ based target systems. .. _Ansible: https://www.ansible.com .. _LXD: https://www.linuxcontainers.org .. _Podman: https://podman.io .. _Yaml: https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html .. _Jinja2: https://jinja.palletsprojects.com/ .. _Python: https://www.python.org .. _Ubuntu Linux: https://www.ubuntu.com .. _Debian Linux: https://www.debian.org ---- License +++++++ edi is licensed under the LGPL license. Contributions +++++++++++++ You are welcome to contribute to edi. In case of questions you can contact me by e-mail (lueschem@gmail.com). More Information ++++++++++++++++ For more information please visit `https://www.get-edi.io`_. .. _`https://www.get-edi.io`: https://www.get-edi.io