One orchestrator for containers and VMs,
simplified.

Run your workloads on Docker, Podman, containerd, Cloud Hypervisor, or Firecracker — from the same declarative YAML and REST API. A lightweight alternative to Kubernetes.

$cargo install --git https://github.com/kemeter/ring.git
Multi-runtime

One manifest, any runtime

Describe your deployment once and pick where it runs. Switch between Docker, Podman, containerd, Cloud Hypervisor, and Firecracker by changing a single line — Ring handles creation, networking, health checks, and scaling the same way for each.

deployments:
  web-app:
    name: web-app
    namespace: production
    runtime: docker
    image: "nginx:1.21"
    replicas: 3

    health_checks:
      - type: http
        url: "http://localhost:80/"
        interval: "10s"
        timeout: "5s"
API-First

Complete REST API

Every operation available through the CLI is also available via the REST API. Integrate Ring into your CI/CD pipelines, scripts, and automation workflows.

Terminal
$ curl -X POST http://localhost:3030/deployments \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "web-app",
    "namespace": "production",
    "runtime": "docker",
    "image": "nginx:1.21",
    "replicas": 3
  }'
Security

Built-in secret management

Store sensitive values encrypted at rest with AES-256-GCM. Reference secrets in your deployments and they are decrypted and injected at deployment time.

secure-app.yaml
deployments:
  secure-app:
    name: secure-app
    namespace: production
    image: "myapp:latest"

    environment:
      DATABASE_HOST: "db.production"
      DATABASE_PASSWORD:
        secretRef: "database-password"
      API_KEY:
        secretRef: "api-key"
Reliability

Health checks & rolling updates

Configure health checks and Ring performs zero-downtime rolling updates automatically. If a new container fails, the rollout stops and old containers stay running.

health-check.yaml
deployments:
  web-app:
    name: web-app
    image: "nginx:1.21"
    replicas: 3

    health_checks:
      - type: http
        url: "http://localhost:80/healthz"
        interval: "10s"
        timeout: "5s"
        threshold: 3
        on_failure: restart
Isolation

Namespace isolation

Organize deployments by environment with namespaces. Each namespace gets its own isolated network. Deploy the same application across multiple environments.

multi-env.yaml
namespaces:
  production:
    name: production
  staging:
    name: staging

deployments:
  prod-app:
    name: my-app
    namespace: production
    image: "myapp:v1.2.3"
    replicas: 5

  staging-app:
    name: my-app
    namespace: staging
    image: "myapp:staging"
    replicas: 2
Features

Everything you need, nothing you don't.

A pragmatic alternative to Kubernetes for single-node deployments.

01

Pluggable runtimes

Run the same workload on Docker, Podman, containerd, Cloud Hypervisor, or Firecracker. One manifest, swap the runtime in a single line.

02

Complete REST API

Every CLI operation is also an API call. Integrate Ring into your CI/CD pipelines and scripts.

03

Encrypted secrets

Sensitive values encrypted at rest with AES-256-GCM, decrypted and injected at deployment time.

04

Health checks & rolling updates

Zero-downtime rolling updates. If a new workload fails, the rollout stops automatically.

Ready to deploy?

Get started in minutes. Deploy your first container with Ring.

Get started