nanocl

Crates.ionanocl
lib.rsnanocl
version0.14.0
sourcesrc
created_at2022-11-11 16:32:27.332476
updated_at2024-05-08 13:59:00.956367
descriptionThe Self-Sufficient Orchestrator CLI
homepagehttps://next-hat.com/nanocl
repositoryhttps://github.com/next-hat/nanocl
max_upload_size
id712925
size273,855
leone (leon3s)

documentation

README

Nanocl

Stars Build With Chat on Discord

Tests Clippy

codecov

Test, Deploy, Scale, Monitor, Orchestrate

❓ Why Nanocl

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.

📙 Table of Contents

🚀 Key Benefits

  • Easy deployment and management
  • Significantly reduce the delay between writing code and shipping it to production
  • Efficiently manage and scale your infrastructure as your needs evolve
  • Enhance security by isolating services using namespaces and networks.
  • Enjoy peace of mind with automatic backups, zero downtime fail-over, and comprehensive log monitoring
  • Enjoy history tracking of your container and virtual machine configuration
  • Revert configuration as quickly as pressing a button
  • Build an entire CI/CD pipeline, from tests to high-availability production
  • Best ideas and practices from the community

🔧 Usage

Nanocl is designed to be easy to operate by mostly using Statefiles.
Statefiles are yaml files that define the state you want.
There is an example used to deploy our documentation:

ApiVersion: v0.14

# See all options:
# https://docs.next-hat.com/references/nanocl/objects/cargo
Cargoes:
- Name: doc
  Container:
    Image: ghcr.io/next-hat/documentation:0.13.0

# See all options:
# https://docs.next-hat.com/references/nanocl/objects/resource
Resources:
- Name: docs.next-hat.com
  Kind: ncproxy.io/rule/v0.10
  Data:
    Rules:
    - Domain: docs.next-hat.com
      Network: Public
      Locations:
      - Path: /
        Target:
          Key: doc.global.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

📺 Demo

Demo of Nanocl in action when applying example/deploy_example.yml:

🧿 Architecture

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 functionality:

  • nstore to save our state
  • ndaemon as REST API to manage everything
  • nmetrics to monitor cpu, memory and network usage
  • nproxy proxy to redirect traffic to our containers and virtual machines
  • ncproxy to update proxy configuration based on the current state
  • ndns to manage the dns entries for the containers and virtual machines
  • ncdns to update dns entries based on the current state

Simplified version of our architecture for a single node:

📚 Documentation

To learn more about Nanocl, you can take a look at the following resources:

📋 Requirements

To work properly Nanocl must have theses dependencies installed on the system:

💾 Installation

To install Nanocl, please refer to our online installation guide.

👨‍💻 Contributing

Every contribution is very welcome.

But to be able 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!

💎 Sponsors

Huge thanks to our sponsors

mamaicode
Mamaicode
xf10w
xf10w

⭐️ Show your support

Give a ⭐️ if this project helped you!

Commit count: 1209

cargo fmt