Code Monkey home page Code Monkey logo

next-hat / nanocl Goto Github PK

View Code? Open in Web Editor NEW
655.0 11.0 37.0 56.08 MB

Distributed System that simplifies the management of containers and virtual machines.

Home Page: https://next-hat.com/nanocl

License: Apache License 2.0

Shell 1.07% Rust 97.01% Dockerfile 1.56% PLpgSQL 0.13% HTML 0.10% Crystal 0.13%
hybrid-cloud self-hosted orchestrator cli containers dns-manager kubernetes-alternative proxy-manager self-hosting virtual-machines vpn-manager distributed networking distributed-systems daemon microservices

nanocl's Introduction

Develop, Distribute

DocsExamplesDiscord

Tests Clippy

codecov

Test, Deploy, Scale, Monitor, Orchestrate

Nanocl is an open-source distributed system designed to revolutionize developers' workflows.
It aims to provide an easy solution for localhost development, addressing common issues like CORS and cookies when working with complex microservice architectures.
Nanocl also facilitates seamless deployment to production.
By empowering developers and DevOps professionals, Nanocl helps optimize workflows, enhance security, and reduce operational costs.

Join our discord and help us shape the future of infrastructure management.

Latest news

Installation

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

Documentation

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

Usage

Nanocl is designed to be easy to operate by mostly using Statefiles.
Statefiles are yaml, toml or json 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.14.0

# See all options:
# https://docs.next-hat.com/references/nanocl/objects/resource
Resources:
- Name: docs.next-hat.com
  Kind: ncproxy.io/rule
  Data:
    Rules:
    - Domain: docs.next-hat.com
      Network: Public
      Locations:
      - Path: /
        Target:
          Key: doc.global.c
          Port: 80

To apply a state you can do it easily bu running nanocl state apply -s path|url
You can also remove a state by calling nanocl state rm -s path|url

Demo

Below are live demos of Nanocl in action:

Cargo and Resource

Job

Vm

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 install 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 (optional)
  • ncproxy to update proxy configuration based on the current state (optional)
  • ndns to manage the dns entries for the containers and virtual machines (optional)
  • ncdns to update dns entries based on the current state (optional)

Simplified version of our architecture for a single node:

Contributing

Every contribution is very welcome. Bug reports, feature requests, and pull requests are the most common ways to contribute.

You can also help us by improving the documentation.

Learn how to setup a development environment by reading the contribution guide. Also don't hesitate to join the discord if you have any question!

Sponsors

Sponsors 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.

People that sponsor us will have their name or logo displayed here, and will have access to a special role on our discord server.

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.

You can also help us by contributing to the project, by reporting bugs, by suggesting new features, or by improving the documentation.

Or just give a star it's free and it helps us a lot! ⭐️

Huge thanks to our sponsors

mamaicode
Mamaicode
xf10w
xf10w

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.