Lightweight container orchestration, simplified
Deploy and manage containerized applications with declarative YAML, a REST API, and zero complexity. A lightweight alternative to Kubernetes.
cargo install --git https://github.com/kemeter/ring.gitDefine once, deploy anywhere
Describe your entire deployment in a simple YAML file. Ring handles container creation, networking, health checks, and scaling automatically.
deployments:
web-app:
name: web-app
namespace: production
runtime: docker
image: "nginx:1.21"
replicas: 3
environment:
NODE_ENV: "production"
health_checks:
- type: http
url: "http://localhost:80/"
interval: "10s"
timeout: "5s"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.
$ 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
}'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.
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"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.
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: restartNamespace isolation
Organize deployments by environment with namespaces. Each namespace gets its own isolated Docker network. Deploy the same application across multiple environments.
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