Thymis: Unlocking Smart Device Configuration and Management
Thymis is an open-source project that aims to provide a seamless and secure IoT device management solution. With Thymis, users can easily configure and manage their devices running on the NixOS operating system.
Thymis does this by allowing users to define and configure their device state and generating NixOS configurations for their devices. The controller can build device images as well as deploy to live devices.
Thymis also exposes a API that enables CRUD operations on device and module data.
Visit the Thymis Website for more information.
The project uses SvelteKit for the frontend and FastAPI for a device controller. The frontend communicates with the controller using a REST API. The controller is responsible for managing device and module data.
The projects documentation is in a TODO state. It is mainly documented by code comments and explanations in the codebase. We are working on pretty docs for you.
Requirements
Ensure you have the following dependencies installed on your system:
- Nix
- Python 3
- Node.js
- Clone the thymis repository:
git clone https://github.com/Thymis-io/thymis
- Change to the project directory:
cd thymis
- Install the dependencies:
cd frontend
npm install
cd ../controller
poetry install
Use the following command to run thymis:
First, start the controller:
cd controller
poetry run uvicorn thymis_controller.api:app --reload
Then, start the frontend:
cd frontend
npm run dev
-
Release 0.1.0
: Initial release of the project.
Contributions are welcome! Here are several ways you can contribute:
- Submit Pull Requests: Review open PRs, and submit your own PRs.
- Join the Discussions: Share your insights, provide feedback, or ask questions.
- Report Issues: Submit bugs found or log feature requests for the
thymis
project.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your github account.
- Clone Locally: Clone the forked repository to your local machine using a git client.
git clone https://github.com/Thymis-io/thymis
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.'
- Push to GitHub: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
Once your PR is reviewed and approved, it will be merged into the main branch.
This project is protected under the GNU Affero General Public License v3.0 License. For more details, refer to the LICENSE file.
We love using these technologies and tools: