makiatto-cli 0.2.2

CLI tool for managing Makiatto CDN deployments
Documentation

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.

[!WARNING] Makiatto is currently under active development and not all features have been implemented. Do NOT use this yet.

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
  • Anyone with multiple VPS instances who wants to put them to good use

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.

    #       init machine args <name> <ssh: user@address:port>
    makiatto-cli machine init tololo user@server1.example.com
    makiatto-cli machine init vector user@server2.example.com
    makiatto-cli machine init klukai user@server3.example.com
    
  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:

    makiatto-cli dns nameserver-setup
    

    Follow the guide to add glue records and configure your domain registrar.

Your content is now distributed globally with automatic geolocation DNS routing!

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.