makiatto-cli

Crates.iomakiatto-cli
lib.rsmakiatto-cli
version0.3.2
created_at2025-07-09 13:28:29.47912+00
updated_at2025-08-21 01:48:25.482477+00
descriptionCLI tool for managing Makiatto CDN deployments
homepagehttps://github.com/halcyonnouveau/makiatto
repositoryhttps://github.com/halcyonnouveau/makiatto
max_upload_size
id1744932
size186,153
justin (beanpuppy)

documentation

https://halcyonnouveau.github.io/makiatto/

README

mochaccino

Makiatto

status crate docs license

Makiatto is a lightweight CDN that lets you deploy and distribute content across multiple servers with minimal infrastructure overhead. It creates a secure WireGuard mesh network between your machines and provides automatic content synchronisation, GeoDNS routing, and coordinate-based geographic distribution through simple CLI commands.

Features

  • One-command deployment: Initialise nodes with a single CLI command
  • GeoDNS with coordinate-based routing: Automatically direct users to their nearest server
  • No single point of failure: Decentralised architecture with no control plane
  • Automatic SSL certificates: Built-in Let's Encrypt integration
  • Simple content management: Easy file uploads and website deployments

Who is this for?

  • Developers who want their own CDN infrastructure instead of using commercial providers
  • Privacy-conscious users who prefer self-hosted solutions
  • Small teams serving static sites that need global performance without vendor lock-in
  • Hobbyists who enjoy building their own infrastructure

Quick Start

  1. Install the CLI

    cargo install makiatto-cli
    
  2. Create your CDN nodes

    Set up nodes in different geographic regions. Each node will automatically join the mesh network and sync content. We recommend using at least 3 nodes as you'll need a minimum of 3 nameservers for proper DNS redundancy.

    makiatto-cli machine init <name> <user>@<ip address>
    makiatto-cli machine init vector root@203.0.113.1
    makiatto-cli machine init klukai ubuntu@2001:db8::1
    
  3. Configure your project

    Create a makiatto.toml file in your project to define your domain and content paths.

    [[domain]]
    name = "zuccherocat.cafe"
    path = "./dist"
    
  4. Deploy your content

    Sync your static files and domain config to all nodes in the mesh.

    makiatto-cli sync
    
  5. Configure your domain nameservers

    Set up your domain to use Makiatto's custom nameservers for GeoDNS routing. Follow the guide to add glue records and configure your domain registrar.

    makiatto-cli dns nameserver-setup
    

Your content should now be distributed globally with automatic geolocation DNS routing! For more detailed instructions, see the documentation.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Commit count: 98

cargo fmt