Warren - Simple Container Orchestrator for Edge

Warren: Simple like Docker Swarm, feature-rich like Kubernetes, zero external dependencies.
Warren is a container orchestration platform built for edge computing with telco-grade reliability. Delivered as a single binary (< 100MB) with built-in HA, secrets, metrics, ingress controller, and encrypted networking.
β¨ Why Warren?
- π Simple to Deploy: Single binary, zero config, production-ready in 5 minutes
- π Secure by Default: AES-256-GCM secrets, automatic Let's Encrypt, mTLS ready
- π Edge-Optimized: Fast failover (2-3s), partition tolerance, low resource usage
- π¦ Feature-Complete: Rolling updates, secrets, volumes, HA, ingress, metricsβall built-in
- β‘ High Performance: 10 svc/s creation, 10,000 req/s ingress, < 256MB memory
- π€ Open Source: Apache 2.0, active development, welcoming community
π― Use Cases
- Edge Computing: Deploy at cell towers, IoT gateways, retail locations
- Small Teams: Production orchestration without Kubernetes complexity
- Multi-Site: Distributed deployments across geographic locations
- Migration: Drop-in replacement for Docker Swarm (now closed-source)
π Quick Start
Installation
Homebrew (macOS):
brew install cuemby/tap/warren
APT (Debian/Ubuntu):
curl -sL https://packagecloud.io/cuemby/warren/gpgkey | sudo apt-key add -
echo "deb https://packagecloud.io/cuemby/warren/ubuntu/ focal main" | sudo tee /etc/apt/sources.list.d/warren.list
sudo apt update && sudo apt install warren
Binary Download:
# Linux AMD64
curl -LO https://github.com/cuemby/warren/releases/latest/download/warren-linux-amd64.tar.gz
tar xzf warren-linux-amd64.tar.gz
sudo mv warren /usr/local/bin/
From Source:
git clone https://github.com/cuemby/warren.git
cd warren
make build
sudo make install
macOS Support
Warren uses Lima VM to provide seamless container orchestration on macOS:
# Install Lima (if not already installed)
brew install lima
# Warren will automatically manage Lima VM
sudo warren cluster init
# Lima VM starts automatically, no manual setup needed!
Warren automatically creates and manages a lightweight Linux VM (Alpine-based) with containerd. The Lima VM is stopped gracefully when Warren shuts down.
Deploy Your First Service (with HTTPS!)
# 1. Initialize cluster
sudo warren cluster init
# 2. Start worker (in another terminal)
sudo warren worker start --manager 127.0.0.1:8080
# 3. Deploy nginx with health checks
warren service create nginx \
--image nginx:latest \
--replicas 3 \
--port 80 \
--health-http / \
--health-interval 30 \
--manager 127.0.0.1:8080
# 4. Create HTTPS ingress with automatic Let's Encrypt
warren ingress create my-ingress \
--host myapp.example.com \
--service nginx \
--port 80 \
--tls \
--tls-email admin@example.com \
--manager 127.0.0.1:8080
# 5. Check status
warren service list --manager 127.0.0.1:8080
warren ingress list --manager 127.0.0.1:8080
That's it! You have a production-ready orchestrator with HTTPS routing and automatic certificate management.
π Documentation
Essential Guides:
Concepts:
Migration:
Community:
ποΈ Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Warren Cluster β
β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Manager 1 β β Manager 2 β β Manager 3 β β
β β (Leader) ββββ€ (Follower) ββββ€ (Follower) β β
β ββββββββ¬ββββββββ ββββββββ¬ββββββββ ββββββββ¬ββββββββ β
β β β β β
β β Raft Consensus (State) β β
β β β β
β βββββββββββββββ¬βββββββββββββββββββββ β
β β β
β WireGuard Encrypted Overlay β
β β β
β βββββββββββββββββ΄ββββββββββββββββ β
β β β β
β ββββββΌββββββ ββββββΌββββββ β
β β Worker 1 β β Worker 2 β β
β β β β β β
β β [nginx] β β [redis] β β
β β [api] β β [db] β β
β ββββββββββββ ββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Key Components:
- Managers: Raft consensus, state storage (BoltDB), API server, scheduler, reconciler, ingress controller
- Workers: Task execution (containerd), heartbeat, local state cache
- Networking: DNS service discovery, WireGuard mesh, service VIPs, HTTP/HTTPS ingress
- Storage: Encrypted secrets (AES-256-GCM), local volumes, BoltDB state
β‘ Features
Core Orchestration
- β
Multi-manager HA (Raft consensus)
- β
Auto-scaling and self-healing
- β
Health checks (HTTP, TCP, Exec)
- β
DNS service discovery
- β
Global services (DaemonSet equivalent)
Networking & Ingress π
- β
HTTP/HTTPS ingress controller (no nginx/traefik needed!)
- β
Let's Encrypt integration (automatic certificates)
- β
Host & path-based routing
- β
Load balancing with health checks
- β
Advanced routing (rate limiting, access control, headers, path rewriting)
- β
TLS certificate management
Deployment
- β
Rolling updates (zero downtime)
- β
Resource limits (CPU/memory)
- β
Graceful shutdown
- β
Published ports
- β
YAML declarative config
Security
- β
Encrypted secrets (AES-256-GCM)
- β
mTLS for gRPC
- β
Automatic TLS certificates
- β
IP-based access control
- β
WireGuard encrypted overlay (planned M8)
Storage
- β
Local volumes with node affinity
- β
Automatic volume management
- β
Distributed drivers (NFS, Ceph - M8)
Observability
- β
Prometheus metrics (/metrics)
- β
Structured logging (JSON + zerolog)
- β
Event streaming (foundation)
- β
Profiling support (pprof)
Developer Experience
- β
Single binary (< 100MB)
- β
Comprehensive CLI
- β
Shell completion (bash, zsh, fish)
- β
YAML apply support
Validated on 3-node cluster (1 manager, 2 workers):
| Metric |
Target |
Actual |
| Service creation |
> 1 svc/s |
10 svc/s β
|
| Ingress throughput |
> 5,000 req/s |
10,000 req/s β
π |
| API latency |
< 100ms |
66ms β
|
| Binary size |
< 100MB |
80MB β
|
| Manager memory |
< 256MB |
~200MB β
|
| Worker memory |
< 128MB |
~100MB β
|
| Failover time |
< 10s |
2-3s β
|
πΊοΈ Roadmap
β
Milestone 0: Foundation (Complete)
- POCs (Raft, containerd, WireGuard)
- Architecture Decision Records
β
Milestone 1: Core Orchestration (Complete)
- Single-manager cluster, scheduler, reconciler
- Worker agent with heartbeat
- gRPC API, full CLI
β
Milestone 2: High Availability (Complete)
- Multi-manager Raft cluster
- Leader election & failover
- Containerd integration
β
Milestone 3: Advanced Deployment (Complete)
- Secrets management (AES-256-GCM)
- Volume orchestration
- Global services
- Deployment strategies foundation
β
Milestone 4: Observability (Complete)
- Prometheus metrics
- Structured logging
- Multi-platform builds
- Performance tuning
β
Milestone 5: Open Source (Complete)
- Documentation (14 guides)
- CI/CD automation
- Package distribution
- Community infrastructure
β
Milestone 6: Production Hardening (Complete)
- mTLS for gRPC
- Health checks (HTTP, TCP, Exec)
- Published ports with conflict detection
- Resource limits (CPU/memory)
- DNS service discovery
- Graceful shutdown
β
Milestone 7: Built-in Ingress (Complete) π
- HTTP/HTTPS ingress controller
- Let's Encrypt ACME integration
- Host & path-based routing
- Load balancing with health checks
- Advanced routing (rate limiting, access control, headers, path rewriting)
- TLS certificate management
π Milestone 8: Advanced Features (Next)
- WireGuard encrypted overlay
- Distributed volume drivers (NFS, Ceph)
- Network policies
- Blue/green & canary deployment
- Custom schedulers
π€ Contributing
We welcome contributions! Warren is a community-driven project.
Getting Started:
- Read CONTRIBUTING.md
- Check good first issues
- Join GitHub Discussions
Ways to Contribute:
- π Report bugs
- π‘ Suggest features
- π Improve documentation
- π§ͺ Add tests
- π» Submit code
Development:
# Clone repository
git clone https://github.com/cuemby/warren.git
cd warren
# Build
make build
# Run tests
go test ./...
# Run linter
golangci-lint run
π Comparison
| Feature |
Warren |
Docker Swarm |
Kubernetes |
| Setup Time |
< 5 min |
< 5 min |
30+ min |
| Binary Size |
80MB |
50MB |
N/A (distributed) |
| Manager Memory |
256MB |
200MB |
2GB+ |
| Built-in HA |
β
|
β
|
β
|
| Built-in Secrets |
β
|
β
|
β
|
| Built-in Metrics |
β
|
β |
β (add-on) |
| Built-in Ingress |
β
π |
β |
β (add-on) |
| Let's Encrypt |
β
π |
β |
β (add-on) |
| Edge Optimized |
β
|
β |
β |
| Open Source |
β
|
β (closed) |
β
|
| Failover Time |
2-3s |
10-15s |
30-60s |
Warren = Swarm simplicity + K8s features - K8s complexity
π Project Structure
warren/
βββ cmd/warren/ # CLI entry point
βββ pkg/
β βββ manager/ # Manager (Raft, scheduler, reconciler)
β βββ worker/ # Worker agent
β βββ api/ # gRPC API server
β βββ scheduler/ # Task scheduler
β βββ reconciler/ # Desired state reconciler
β βββ ingress/ # HTTP/HTTPS ingress controller π
β βββ security/ # Secrets encryption
β βββ volume/ # Volume orchestration
β βββ events/ # Event streaming
β βββ types/ # Core data models
βββ api/proto/ # Protobuf definitions
βββ docs/ # Documentation
βββ test/ # Integration tests
βββ packaging/ # Homebrew, APT setup
βββ .github/workflows/ # CI/CD automation
π Acknowledgments
Warren is inspired by:
- Docker Swarm - Simplicity of UX
- Kubernetes - Feature richness
- Nomad - Single binary distribution
Built with:
π License
Apache 2.0 - See LICENSE for details.
Copyright 2025 Cuemby Inc.
π Status
Current Release: v1.1.0 (Milestone 7 Complete) π
Warren is production-ready for edge deployments with:
- β
Multi-manager HA validated
- β
10,000+ tasks tested
- β
Built-in HTTPS ingress with Let's Encrypt π
- β
100-node clusters validated
- β
Comprehensive documentation
- β
Automated CI/CD
- β
Package distribution
Deploy with HTTPS in 3 commands! π
Maintained by: Cuemby π° | Status: Production Ready β