[](https://github.com/nxthat/nanocl) [](https://github.com/nxthat/nanocl) [](https://discord.gg/WV4Aac8uZg)
[](https://github.com/nxthat/nanocl/actions/workflows/tests.yml) [](https://github.com/nxthat/nanocl/actions/workflows/clippy.yml)
[](https://codecov.io/gh/nxthat/nanocl)
Test, Deploy, Scale, Monitor, Orchestrate
Nanocl is all about easing your container and VM management with Rust-powered platform.
With Nanocl, say goodbye to complex setups and hello to easy, efficient deployments.
We stand for robust performance and efficiency with simplicity, trimming the bloat to keep your systems lean.
Join us and help shape the future of cloud computing - it's about time things got a bit more rusty.
Nanocl is designed in a micro services architecture several component are required and they are running as container included the Nanocl Daemon itself.
The following components will be installed during nanocl setup and are required to ensure Nanocl functionnality:
nstore to save our statendaemon as REST API to manage everythingnmetrics to monitor cpu, memory and network usagenproxy proxy to redirect traffic to our containers and virtual machinesncproxy to update proxy configuration based on the current statendns to manage the dns entries for the containers and virtual machinesncdns to update dns entries based on the current stateSimplified version of our architecture for a single node:
To learn more about Nanocl, you can take a look at the following resources:
To work properly Nanocl must have theses dependencies installed on the system:
To install Nanocl, please refer to our online installation guide.
Nanocl is designed to be easy to operate by mostly using state files.
State Files are yaml files that define the state you want.
There is an example used to deploy our documentation:
```yaml ApiVersion: v0.8 Kind: Deployment
Namespace: nexthat
Cargoes: - Name: doc Container: Image: nexthat-doc:0.4.1
Resources: - Name: docs.next-hat.com Kind: ProxyRule Version: v0.6 Config: Watch: - doc.nexthat.c Rules: - Domain: docs.next-hat.com Network: Public Ssl: Certificate: /etc/letsencrypt/live/docs.next-hat.com/fullchain.pem CertificateKey: /etc/letsencrypt/live/docs.next-hat.com/privkey.pem Dhparam: /etc/letsencrypt/ssl-dhparams.pem Includes: - /etc/letsencrypt/options-ssl-nginx.conf Locations: - Path: / Target: Key: doc.nexthat.c Port: 80 ```
To apply a state we can do it easily bu running nanocl state apply -s path|url
We can also revert a state by calling nanocl state rm -s path|url
Every contribution is very welcome.
But to be abble to do so you need a dev environnement right ?
You can learn more about it on the contribution guide.
Also don't hesitate to join the discord if you have any question!