Skip to main content

Lightweight infrastructure orchestration platform for multi-cloud container deployment

Project description

Mesh

Deploy containers across any cloud. Zero SSH. Auto-HTTPS. Multi-cloud.

Version Python License

Mesh turns any collection of VMs — across AWS, Hetzner, DigitalOcean, and 50+ providers — into a single unified computer. Pulumi provisions. Tailscale connects. Nomad schedules. Zero SSH required.

https://github.com/rethink-paradigms/mesh/assets/demo/mesh-demo-30s.mp4


Why Mesh

10x cheaper than Heroku. 90% less overhead than Kubernetes. Zero SSH. Multi-cloud by default.

Metric Mesh Kubernetes Heroku
3-node cluster $25/mo $72+/mo (control plane) $250+/mo
Control plane RAM 530MB 2GB+ N/A (managed)
Setup time <5 min 2+ hours <5 min
Multi-cloud Native Complex (federation) No
Auto HTTPS Let's Encrypt Cert Manager + config Built-in
SSH required Never Often Never

From $8/month (single VM) to $25/month (3-VM multi-cloud cluster).


Quick Start

# Install
pip install rethink-mesh

# Initialize a cluster (interactive wizard)
mesh init

# Deploy an application
mesh deploy my-app --image nginx:latest --port 80

# View cluster status
mesh status

# View logs
mesh logs my-app --follow

What it looks like

mesh init

╭──────────────────────────────────────╮
│        Mesh Cluster Setup            │
│                                      │
│  Provider: DigitalOcean              │
│  Region:   nyc3                      │
│  Leader:   s-2vcpu-4gb ($24/mo)     │
│  Workers:  2x s-1vcpu-1gb ($6/mo)  │
│                                      │
│  Estimated total: ~$36/mo            │
╰──────────────────────────────────────╯

  Provisioning leader...    ━━━━━ 100%
  Provisioning worker-1...  ━━━━━ 100%
  Provisioning worker-2...  ━━━━━ 100%
  Bootstrapping Consul...   ━━━━━ 100%
  Bootstrapping Nomad...    ━━━━━ 100%
  Joining Tailscale mesh... ━━━━━ 100%

  ✓ Cluster ready in 3m 42s

mesh status

╭──────────────────────────────────────╮
│       Cluster: mesh-prod             │
│       Tier:    Production            │
│       Nodes:   3 healthy             │
╰──────────────────────────────────────╯

  Nodes
  ┌──────────┬───────────┬────────┬──────┐
  │ Node     │ IP        │ Status │ Apps │
  ├──────────┼───────────┼────────┼──────┤
  │ leader   │ 100.x.y.z │ ready  │ 2    │
  │ worker-1 │ 100.a.b.c │ ready  │ 3    │
  │ worker-2 │ 100.d.e.f │ ready  │ 1    │
  └──────────┴───────────┴────────┴──────┘

  Deployments
  ┌────────────┬─────────┬─────────┬──────┐
  │ App        │ Image   │ Status  │ CPU  │
  ├────────────┼─────────┼─────────┼──────┤
  │ api-server │ nginx   │ running │ 12%  │
  │ web-app    │ node:20 │ running │ 8%   │
  │ worker     │ python  │ running │ 45%  │
  └────────────┴─────────┴─────────┴──────┘

Local Development (5 minutes, $0)

# Prerequisites: Multipass, Python 3.11+, Tailscale account (free tier)
brew install --cask multipass

# Clone and configure
git clone https://github.com/rethink-paradigms/mesh.git && cd mesh
cp .env.example .env    # Add your Tailscale auth key

# Launch
mesh init --provider "Local (Multipass)" --workers 2

# Deploy
mesh deploy hello --image nginx:latest
mesh status

Cloud Deployment

# AWS, Hetzner, DigitalOcean — same workflow
mesh init
# → Select provider, region, sizing via interactive wizard
# → Cluster ready in ~3 minutes

For detailed provider setup, instance sizing, and configuration options, see the Deployment Guide or docs/guides/deploy.md.


Architecture

                    ┌─────────────────────┐
                    │   EXTERNAL WORLD    │
                    │   Users / CI/CD     │
                    └──────────┬──────────┘
                               │ HTTP/HTTPS + Pulumi API
                    ┌──────────┴──────────┐
                    │   LEADER NODE (VM-1) │
                    │  Traefik or Caddy    │
                    │  Nomad + Consul      │
                    │  Tailscale + Docker  │
                    └──────────┬──────────┘
                               │
                 Tailscale WireGuard Mesh (100.x.y.z)
                    ┌──────────┴──────────┐
                    │                     │
           ┌────────┴────────┐  ┌─────────┴───────┐
           │  WORKER (VM-2)  │  │  WORKER (VM-N)  │
           │  AWS / Hetzner  │  │  DO / GCP / ... │
           │  App Containers │  │  App Containers │
           └─────────────────┘  └─────────────────┘

How It Works

  1. Pulumi provisions VMs on any provider (AWS, Hetzner, DO, 50+ others)
  2. Modular boot scripts install Docker, Nomad, Consul, Tailscale (~2 min)
  3. Tailscale creates encrypted WireGuard mesh across all VMs
  4. Nomad schedules containers with resource-aware bin-packing
  5. Consul provides health-checked service discovery
  6. Traefik or Caddy handles HTTPS ingress with automatic Let's Encrypt

Technology Stack

Layer Component RAM Why
IaC Pulumi (Python) 0MB Real language vs HCL
Mesh Tailscale 20MB Zero-config multi-cloud
Scheduler Nomad 80MB K8s needs 1GB+
Discovery Consul 50MB Health-aware DNS
Ingress Traefik 256MB Dynamic Consul routing
Ingress (Lite) Caddy 20MB Single-VM HTTPS
Runtime Docker 100MB Standard isolation
Secrets GitHub Secrets 0MB Zero infra overhead

Control plane overhead: ~530MB (full mode) | ~200MB (lite mode)


CLI Commands

Command Description
mesh init Interactive cluster provisioning wizard
mesh deploy <name> Deploy a containerized application
mesh status View cluster health, nodes, and running apps
mesh logs <app> Stream application logs
mesh ssh <node> Connect to a cluster node
mesh destroy Tear down a cluster
mesh compare Show resource comparison vs Kubernetes
mesh roadmap Show the project roadmap
mesh version Show installed version

Extensible via Plugins

Mesh supports a plugin architecture via Python entry_points. Third-party and enterprise extensions can add commands without modifying the core:

# In your plugin's pyproject.toml:
[project.entry-points."mesh.plugins"]
my-command = "my_package.cli:register"

Deployment Tiers

The platform automatically activates services based on cluster topology. No manual configuration required.

Lite Standard Ingress Production
Topology 1 VM 2+ VMs, 1 region 2+ VMs, 1 region 3+ VMs, multi-region
Ingress Caddy (20MB) Caddy (20MB) Traefik (256MB) Traefik (256MB)
Service Discovery -- Consul Consul Consul + WAN
RAM Overhead ~200MB ~400MB ~530MB ~530MB+
Cost ~$8/mo ~$15/mo ~$25/mo ~$50/mo

Project Structure

src/
├── infrastructure/            # Domain: Compute, Network, OS
│   ├── provision_node/        #   Multi-provider VM provisioning (50+ providers)
│   ├── boot_consul_nomad/     #   Modular boot scripts (Jinja2)
│   ├── configure_tailscale/   #   Auth key generation
│   ├── providers/             #   Libcloud provider implementations
│   └── progressive_activation/ #  Tier detection and configuration
├── workloads/                 # Domain: Application Deployment
│   ├── deploy_app/            #   Tier-aware unified deployment API
│   ├── deploy_web_service/    #   Nomad web app templates (Traefik)
│   ├── deploy_lite_web_service/ # Lite web service (Caddy routing)
│   ├── deploy_lite_ingress/   #   Caddy HTTPS ingress controller
│   ├── deploy_traefik/        #   Traefik TLS ingress controller
│   └── manage_secrets/        #   GitHub Secrets to Nomad sync
├── verification/              # Domain: System Testing
│   ├── e2e_app_deployment/    #   Full cluster deployment tests
│   ├── e2e_lite_mode/         #   Lite mode E2E validation
│   └── e2e_multi_node_scenarios/ # Multi-node fault tolerance
└── cli/                       # Domain: mesh CLI Tool
    ├── commands/              #   init, status, deploy, destroy, logs, ssh
    ├── plugins.py             #   Plugin discovery (entry_points)
    └── ui/                    #   Rich panels and themes

Each feature directory contains a CONTEXT.md (interface contract), implementation code, and co-located tests.


Documentation

Resource Description
Deployment Guide Provider setup, sizing, configuration
Architecture How Mesh works under the hood
API Reference Public interfaces from all modules
Comparisons Mesh vs K8s vs Heroku vs Coolify vs Dokku
FAQ Common questions and troubleshooting

Testing

pytest src/mesh -v -m "not e2e"       # Unit + integration
pytest src/mesh/verification/ -v        # End-to-end (requires running cluster)

Security

  • WireGuard encryption on all mesh traffic (Tailscale)
  • TLS/HTTPS on all external endpoints (Let's Encrypt)
  • Docker container isolation with resource limits
  • Zero SSH access — all configuration is declarative

License

MIT — see pyproject.toml.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rethink_mesh-0.3.0.tar.gz (156.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rethink_mesh-0.3.0-py3-none-any.whl (208.1 kB view details)

Uploaded Python 3

File details

Details for the file rethink_mesh-0.3.0.tar.gz.

File metadata

  • Download URL: rethink_mesh-0.3.0.tar.gz
  • Upload date:
  • Size: 156.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for rethink_mesh-0.3.0.tar.gz
Algorithm Hash digest
SHA256 6655cdeeabc5b9448a9ff7d8e85a6ea60adb2e580fa3f6436555df7d50643d35
MD5 3798138e26ff7dc8540634ef5a5d63d3
BLAKE2b-256 8ad8fa27cf7b416e86b9fd08903f4fb926cb664edf4645069b2f878341ec9fd0

See more details on using hashes here.

File details

Details for the file rethink_mesh-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: rethink_mesh-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 208.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for rethink_mesh-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1e652ea7038f1de4f4aba30a6b5691677899341407ca9eec1c1daab38386171b
MD5 2d9bd0a30356fe32c8345819f13232d9
BLAKE2b-256 eb1a62ea00da8d9393810c362704630e391b17b0eab278fe0873848429462668

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page