From 35464f84ef3ac59c9565aa911593f3c4fb993977 Mon Sep 17 00:00:00 2001 From: Paulo Truta Date: Sun, 8 Nov 2020 23:07:50 +0100 Subject: [PATCH] Added README and docs folder --- README.md | 152 +++++++++++++++++++++++++++++++++++++++++++++- docs/img/logo.png | Bin 0 -> 14460 bytes 2 files changed, 150 insertions(+), 2 deletions(-) create mode 100644 docs/img/logo.png diff --git a/README.md b/README.md index 4500965..d7d4e30 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,150 @@ -# sysctl -Edgebox system and dependencies configuration and control module + + + +[![Contributors][contributors-shield]][contributors-url] +[![Forks][forks-shield]][forks-url] +[![Stargazers][stars-shield]][stars-url] +[![Issues][issues-shield]][issues-url] +[![MIT License][license-shield]][license-url] +[![LinkedIn][linkedin-shield]][linkedin-url] + + + + +
+

+ + Logo + + +

Edgebox SysCtl Module

+ +

+ A System Control module written in Go. Its resonsability is to configure dependencies and perform system tasks, automatically in a schedule, or by command. +
+ Explore the docs » +
+
+ Report Bug + · + Request Feature +

+

+ + + + +## Table of Contents + +* [About the Project](#about-the-project) + * [Built With](#built-with) +* [Getting Started](#getting-started) + * [Prerequisites](#prerequisites) + * [Installation](#installation) +* [Usage](#usage) +* [Roadmap](#roadmap) +* [Contributing](#contributing) +* [License](#license) + + + + +## About The Project + +[![Edgebox Screen Shot][product-screenshot]](https://edgebox.co) + +Edgebox is a small box that connects alongside your home internet router. It brings powerful features that go alongside or can even completely replace various services that you already use in the day-to-day. + + +### Built With + +* [Go Lang](https://golang.org/) +* [SH](https://en.wikipedia.org/wiki/Bourne_shell) +* [Lots of Love <3](https://edgebox.co/team) + + + + +## Getting Started + +To get a local copy up and running follow these simple steps. + +### Prerequisites + +If you're installing this to run natively in the system, you better be doing it inside of the [Development Virtual Machine](https://github.com/edgebox-iot/devm). This software can do destructive action in the system is is running. You've been warned. + +If you're running for development purposes, a Docker container suffices, so make sure you have: +* Docker +* Docker Compose +```sh +sudo apt-get install docker docker-compose +``` + +Check the following links for more info on [Docker](https://www.docker.com/) and [Docker Compose](https://docs.docker.com/compose/). + +### Installation + +1. Clone the repo +```sh +git clone https://github.com/edgebox-iot/sysctl.git +``` +2. Run Docker-Compose +```sh +docker-compose up +``` + + + + +## Usage + +_For more examples, please refer to the [Documentation](https://github.com/edgebox-iot/docs/)_ + + + + +## Roadmap + +See the [open issues](https://github.com/edgebox-iot/sysctl/issues) for a list of proposed features (and known issues). + + + + +## Contributing + +Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are **greatly appreciated**. + +1. Fork the Project +2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) +3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) +4. Push to the Branch (`git push origin feature/AmazingFeature`) +5. Open a Pull Request + + + + +## License + +Distributed under the MIT License. See `LICENSE` for more information. + + + + +[contributors-shield]: https://img.shields.io/github/contributors/edgebox-iot/repo.svg?style=flat-square +[contributors-url]: https://github.com/edgebox-iot/repo/graphs/contributors +[forks-shield]: https://img.shields.io/github/forks/edgebox-iot/repo.svg?style=flat-square +[forks-url]: https://github.com/edgebox-iot/repo/network/members +[stars-shield]: https://img.shields.io/github/stars/edgebox-iot/repo.svg?style=flat-square +[stars-url]: https://github.com/edgebox-iot/repo/stargazers +[issues-shield]: https://img.shields.io/github/issues/edgebox-iot/repo.svg?style=flat-square +[issues-url]: https://github.com/edgebox-iot/repo/issues +[license-shield]: https://img.shields.io/github/license/edgebox-iot/repo.svg?style=flat-square +[license-url]: https://github.com/edgebox-iot/repo/blob/master/LICENSE.txt +[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=flat-square&logo=linkedin&colorB=555 +[linkedin-url]: https://linkedin.com/in/edgebox-iot diff --git a/docs/img/logo.png b/docs/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..014e0dd19e7a7d735ea04ec8a6ce2af7bcf14a0e GIT binary patch literal 14460 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 P5K3BHL99~5DCB