{"id":13478108,"url":"https://github.com/next-hat/nanocl","last_synced_at":"2025-03-27T07:30:55.155Z","repository":{"id":53519921,"uuid":"516678346","full_name":"next-hat/nanocl","owner":"next-hat","description":"Distributed System that simplifies the management of containers and virtual machines.","archived":false,"fork":false,"pushed_at":"2024-10-29T08:31:54.000Z","size":57929,"stargazers_count":710,"open_issues_count":32,"forks_count":44,"subscribers_count":11,"default_branch":"nightly","last_synced_at":"2024-10-29T09:19:55.300Z","etag":null,"topics":["cli","containers","daemon","distributed","distributed-systems","dns-manager","hacktoberfest","hybrid-cloud","kubernetes-alternative","microservices","networking","orchestrator","proxy-manager","self-hosted","self-hosting","virtual-machines","vpn-manager"],"latest_commit_sha":null,"homepage":"https://next-hat.com/nanocl","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/next-hat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["leon3s"]}},"created_at":"2022-07-22T08:51:48.000Z","updated_at":"2024-10-29T08:31:59.000Z","dependencies_parsed_at":"2023-11-12T10:24:09.328Z","dependency_job_id":"efed706d-9fab-485b-9c9a-b99e1ae38c56","html_url":"https://github.com/next-hat/nanocl","commit_stats":{"total_commits":1084,"total_committers":10,"mean_commits":108.4,"dds":0.4843173431734318,"last_synced_commit":"824b32d1af36205b0e08b81ae36dbf786f9e48f1"},"previous_names":["next-hat/nanocl","nxthat/nanocl"],"tags_count":192,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/next-hat%2Fnanocl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/next-hat%2Fnanocl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/next-hat%2Fnanocl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/next-hat%2Fnanocl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/next-hat","download_url":"https://codeload.github.com/next-hat/nanocl/tar.gz/refs/heads/nightly","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245802257,"owners_count":20674622,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","containers","daemon","distributed","distributed-systems","dns-manager","hacktoberfest","hybrid-cloud","kubernetes-alternative","microservices","networking","orchestrator","proxy-manager","self-hosted","self-hosting","virtual-machines","vpn-manager"],"created_at":"2024-07-31T16:01:52.613Z","updated_at":"2025-03-27T07:30:50.109Z","avatar_url":"https://github.com/next-hat.png","language":"Rust","readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg width=\"142\" height=\"142\" src=\"https://download.next-hat.com/ressources/images/logo.png\" \u003e\n  \u003ch3\u003eDevelop, Deploy.\u003c/h3\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://next-hat.com/nanocl\" target=\"_blank\"\u003e\u003cb\u003eDocs\u003c/b\u003e\u003c/a\u003e •\n    \u003ca href=\"https://github.com/next-hat/nanocl/tree/nightly/examples\" target=\"_blank\"\u003e\u003cb\u003eExamples\u003c/b\u003e\u003c/a\u003e •\n    \u003ca href=\"https://discord.gg/WV4Aac8uZg\" target=\"_blank\"\u003e\u003cb\u003eDiscord\u003c/b\u003e\u003c/a\u003e\n  \u003c/p\u003e\n  \u003cp\u003e\n\n[![Tests](https://github.com/next-hat/nanocl/actions/workflows/tests.yml/badge.svg)](https://github.com/next-hat/nanocl/actions/workflows/tests.yml)\n[![Clippy](https://github.com/next-hat/nanocl/actions/workflows/clippy.yml/badge.svg)](https://github.com/next-hat/nanocl/actions/workflows/clippy.yml)\n\n  \u003c/p\u003e\n\n  \u003cp\u003e\n\n[![codecov](https://codecov.io/gh/next-hat/nanocl/branch/nightly/graph/badge.svg?token=4I60HOW6HM)](https://codecov.io/gh/next-hat/nanocl)\n\n  \u003c/p\u003e\n\n\u003c/div\u003e\n\n\u003cblockquote\u003e\n \u003cspan\u003e\n   Test, Deploy, Scale, Monitor, Orchestrate\n \u003c/span\u003e\n\u003c/blockquote\u003e\n\n\n**Nanocl** is an open-source distributed system designed to revolutionize developers' workflows.\u003cbr/\u003e\nIt aims to provide an easy solution for localhost development, addressing common issues like CORS and cookies when working with complex microservice architectures.\u003cbr/\u003e\nNanocl also facilitates seamless deployment to production.\u003cbr/\u003e\nBy empowering developers and DevOps professionals, Nanocl helps optimize workflows, enhance security, and reduce operational costs.\n\n**Join our *[discord][discord]* and help us shape the future of infrastructure management.**\n\n## Latest news\n\n- [2024/06/11] [Man page, Backup, Remove Orphans and more](https://docs.next-hat.com/blog/nanocl-0.15) (release)\n- [2024/06/01] [We are invited to the Merge Berlin 2024](https://www.linkedin.com/feed/update/urn:li:activity:7201921660289998850) (event)\n- [2024/05/07] [Context, SubState and more](https://docs.next-hat.com/blog/nanocl-0.14) (release)\n\n## Installation\n\nTo install **Nanocl** for your system, please refer to our online [installation guide][nanocl_install_guide].\n\n## Documentation\n\nTo learn more about **Nanocl**, you can take a look at the following resources:\n\n- [Overview][nanocl_overview]\n- [Get Started][nanocl_get_started]\n- [CLI References][nanocl_cli_ref]\n- [DAEMON References][nanocl_daemon_ref]\n\n## Usage\n\n**Nanocl** is designed to be easy to operate by mostly using **Statefiles**.\u003cbr /\u003e\n**Statefiles** are `yaml`, `toml` or `json` files that define the state you want.\u003cbr /\u003e\nThere is an example used to deploy our [documentation][documentation]:\n\n```yaml\nApiVersion: v0.15\n\n# See all options:\n# https://docs.next-hat.com/references/nanocl/objects/cargo\nCargoes:\n- Name: doc\n  Container:\n    Image: ghcr.io/next-hat/documentation:0.15.0\n\n# See all options:\n# https://docs.next-hat.com/references/nanocl/objects/resource\nResources:\n- Name: docs.next-hat.com\n  Kind: ncproxy.io/rule\n  Data:\n    Rules:\n    - Domain: docs.next-hat.com\n      Network: Public\n      Locations:\n      - Path: /\n        Target:\n          Key: doc.global.c\n          Port: 80\n```\n\nTo apply a state you can do it easily bu running `nanocl state apply -s path|url`\u003cbr /\u003e\nYou can also remove a state by calling `nanocl state rm -s path|url`\u003cbr /\u003e\n\n## Demo\n\nBelow are live demos of **Nanocl** in action:\n\n### Cargo and Resource\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./doc/cargo_resource_example.gif\" /\u003e\n\u003c/div\u003e\n\n### Job\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./doc/job_example.gif\" /\u003e\n\u003c/div\u003e\n\n### Vm\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./doc/vm_example.gif\" /\u003e\n\u003c/div\u003e\n\n## Architecture\n\n**Nanocl** is designed in a **micro services** architecture several component are required and they are running as **container** included the **Nanocl Daemon** itself.\nThe following components will be installed during `nanocl install` and are required to ensure **Nanocl** functionality:\n\n- `nstore` to save our state\n- `ndaemon` as **REST API** to manage everything\n- `nmetrics` to monitor cpu, memory and network usage\n- `nproxy` proxy to redirect traffic to our **containers** and **virtual machines** (optional)\n- `ncproxy` to update proxy configuration based on the current state (optional)\n- `ndns` to manage the dns entries for the **containers** and **virtual machines** (optional)\n- `ncdns` to update dns entries based on the current state (optional)\n\nSimplified version of our architecture for a single node:\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./doc/architecture.png\" /\u003e\n\u003c/div\u003e\n\n## Contributing\n\nEvery contribution is very welcome.\nBug reports, feature requests, and pull requests are the most common ways to contribute.\n\nYou can also help us by improving the [documentation][documentation_repository].\n\nLearn how to setup a development environment by reading the [contribution guide][contributing_guide].\nAlso don't hesitate to join the [discord][discord] if you have any question!\n\n## Sponsors\n\nSponsors are the ones who make this project possible. They help us to keep the project alive and to improve it. If you want to become a sponsor, you can do so by clicking on the sponsor button. \u003cbr/\u003e\n\nPeople that sponsor us will have their name or logo displayed here, and will have access to a special role on our discord server.\n\n**If you sponsor for more then 40$ you will be rewarded with a VPS server with nanocl pre-installed ready to use for 1 month.** \u003cbr/\u003e\n\nYou can also help us by contributing to the project, by reporting bugs, by suggesting new features, or by improving the [documentation][documentation_repository].\n\n**Or just give a star it's free and it helps us a lot! ⭐️**\n\n\n**Huge thanks to our sponsors**\n\n\n\u003ctable\u003e\n  \u003ctr\u003e\n  \u003ctd align=\"center\"\u003e\n    \u003ca href=\"https://github.com/mamaicode\"\u003e\n      \u003cimg src=\"https://images.weserv.nl/?url=avatars.githubusercontent.com/u/102310764?v=4\u0026h=300\u0026w=300\u0026fit=cover\u0026mask=circle\u0026maxage=7d\" width=\"100\" alt=\"mamaicode\" /\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\n        \u003cb\u003e\n          mamaicode\n        \u003c/b\u003e\n      \u003c/sub\u003e\n    \u003c/a\u003e\n  \u003c/td\u003e\n  \u003ctd align=\"center\"\u003e\n    \u003ca href=\"https://github.com/xf10w\"\u003e\n      \u003cimg src=\"https://images.weserv.nl/?url=avatars.githubusercontent.com/u/43791027?v=4\u0026h=300\u0026w=300\u0026fit=cover\u0026mask=circle\u0026maxage=7d\" width=\"100\" alt=\"xf10w\" /\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\n        \u003cb\u003e\n          xf10w\n        \u003c/b\u003e\n      \u003c/sub\u003e\n    \u003c/a\u003e\n  \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=next-hat/nanocl\u0026type=Date)](https://star-history.com/#next-hat/nanocl\u0026Date)\n\n[contributing_guide]: ./CONTRIBUTING.md\n[documentation]: https://docs.next-hat.com\n[nanocl_overview]: https://docs.next-hat.com/guides/nanocl/overview\n[nanocl_install_guide]: https://docs.next-hat.com/manuals/nanocl/install/overview\n[nanocl_get_started]: https://docs.next-hat.com/guides/nanocl/get-started/orientation-and-setup\n[nanocl_cli_ref]: https://docs.next-hat.com/references/nanocl/cli\n[nanocl_daemon_ref]: https://docs.next-hat.com/references/nanocl/daemon/overview\n[docker]: https://www.docker.com\n[discord]: https://discord.gg/WV4Aac8uZg\n[documentation_repository]: https://github.com/next-hat/documentation\n","funding_links":["https://github.com/sponsors/leon3s"],"categories":["Rust"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnext-hat%2Fnanocl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnext-hat%2Fnanocl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnext-hat%2Fnanocl/lists"}