Hivemind is a modern, lightweight container orchestration system designed with simplicity and performance in mind. Think of it as a Kubernetes alternative that's easier to set up, understand, and operate - perfect for smaller deployments, edge computing, or when you need a container platform without the complexity.
- π Simple yet powerful - Deploy containers with a clean REST API or straightforward CLI
- β‘ Blazing fast - Built in Rust for minimal resource usage and maximum performance
- π¦ Containerd integration - Works directly with containerd for reliable container operations
- π Service Discovery - Automatic DNS-based service discovery for your applications
- π Clustering - Seamlessly scale from a single node to a distributed cluster
- π Volume Management - Persistent storage for your stateful applications
- π₯οΈ Clean Web UI - Monitor and manage everything through an intuitive dashboard
- π Container Networking - Seamless communication between containers across nodes
cargo install hivemind
hivemind daemon --web-port 3000
hivemind app deploy --image nginx:latest --name my-web-app --service web.local
Visit http://localhost:3000
to see your application in the Hivemind dashboard!
Hivemind offers a comprehensive CLI for all operations:
hivemind --data-dir <PATH> # Set the data directory (default: ~/.hivemind)
# Start the Hivemind daemon
hivemind daemon --web-port <PORT> # Start the server (default port: 3000)
# Start only the web interface (useful for development)
hivemind web --port <PORT> # Start only the web UI (default port: 3000)
# Join an existing Hivemind cluster
hivemind join --host <HOST_ADDRESS> # Connect to an existing cluster
# List all nodes in the cluster
hivemind node ls
# Show detailed node information
hivemind node info
# List all applications
hivemind app ls
# Deploy a new application
hivemind app deploy --image <IMAGE> --name <NAME> [--service <DOMAIN>]
# Scale an application to a specific number of replicas
hivemind app scale --name <NAME> --replicas <COUNT>
# List all containers
hivemind app containers
# Show detailed container information
hivemind app container-info --container-id <CONTAINER_ID>
# Restart an application
hivemind app restart --name <NAME>
# Check system health
hivemind health # Shows health status of nodes, containers, and services
# Create a new volume
hivemind volume create --name <VOLUME_NAME>
# List all volumes
hivemind volume ls
# Delete a volume
hivemind volume delete --name <VOLUME_NAME>
# Deploy with volume mounts
hivemind app deploy --image <IMAGE> --name <NAME> --volume <VOLUME_NAME>:<CONTAINER_PATH>
Hivemind offers a RESTful API for all operations:
Endpoint | Method | Description |
---|---|---|
/api/nodes |
GET | List all nodes |
/api/containers |
GET | List all containers |
/api/images |
GET | List available images |
/api/services |
GET | List all services |
/api/service-endpoints |
GET | List all service endpoints |
/api/health |
GET | Get system health metrics |
/api/deploy |
POST | Deploy a new container |
/api/scale |
POST | Scale an application |
/api/restart |
POST | Restart an application |
/api/service-url |
POST | Get URL for a service |
/api/volumes |
GET | List all volumes |
/api/volumes/create |
POST | Create a new volume |
/api/volumes/delete |
POST | Delete a volume |
- Simple to learn - No steep learning curve or complex YAML files
- Resource-efficient - Runs well even on lower-powered hardware
- Predictable - Designed to be stable and behave consistently
- Self-contained - Minimal dependencies means fewer things to break
- Clean codebase - Well-structured Rust code that's a joy to work with
- Modular architecture - Easy to extend with new features
- API-first design - Build tools and integrations with our comprehensive API
- Fast compile-test cycle - Quick iteration for development
Feature | Hivemind | Kubernetes | Docker Swarm |
---|---|---|---|
Startup time | β‘ Seconds | β±οΈ Minutes | β±οΈ Minutes |
Memory usage | π ~50MB | ποΈ ~500MB+ | ποΈ ~200MB+ |
Learning curve | π Low | π High | π Medium |
Scaling | β Yes | β Yes | β Yes |
Auto-healing | β Yes | β Yes | β Yes |
Cloud native | β Yes | β Yes |
Hivemind follows a clean, modular architecture:
- App Manager - Application and container lifecycle management
- Node Manager - Cluster coordination and node discovery
- Node Membership Protocol - SWIM-based cluster membership management
- Service Discovery - DNS-based service discovery and routing
- Storage Manager - Volume and persistence handling
- Container Manager - Container runtime integration
- Web UI - Dashboard and visual management
Hivemind provides comprehensive container lifecycle management:
- Deploy containers from various image sources
- Scale applications up or down with automatic load balancing
- Restart containers with zero downtime
- Monitor container metrics including CPU, memory, and network usage
- View container logs directly from the dashboard
Enhanced DNS-based service discovery allows:
- Service domains for easy access to your applications
- Automatic load balancing across container instances with multiple strategies
- Advanced health checking with configurable protocols and parameters
- Built-in DNS server for resolving service domains
- Network integration for seamless cross-node communication
- Circuit breaking to prevent routing traffic to unhealthy endpoints
Persistent storage for stateful applications:
- Create and manage volumes for persistent data
- Mount volumes to containers during deployment
- Back up volume data for disaster recovery
- Monitor volume usage to prevent storage issues
Distributed operation for scaling and high availability:
- Auto-discovery of nodes on the network
- Seamless joining of new nodes to the cluster
- Resource-aware scheduling of containers
- Node health monitoring for reliability
- Distributed storage for cluster state
Seamless communication between containers across nodes:
- Automatic IP allocation - Each container gets a unique IP address
- Overlay networking - VXLAN-based overlay for cross-node communication
- Network policies - Control traffic flow between containers
- Service discovery integration - Find services by name rather than IP
- Network health monitoring - Track network status and connectivity
- Network-aware scheduling - Optimize container placement based on network topology
- Service affinity/anti-affinity - Place related services together or apart based on rules
- Dynamic rebalancing - Move containers to optimize network performance
- Rust 1.60 or newer
- containerd (for non-mock deployments)
- SQLite
# Clone the repository
git clone https://github.com/ao/hivemind.git
cd hivemind
# Build the project
cargo build --release
For faster development cycles, you can run with mock implementations:
cargo run -- web --port 3000
cargo test
src/app.rs
- Application & container managementsrc/service_discovery.rs
- Service discovery & DNSsrc/storage.rs
- Persistence layersrc/node.rs
- Node & cluster managementsrc/membership.rs
- SWIM-based node membership protocolsrc/network.rs
- Container networking & overlay networksrc/scheduler.rs
- Container schedulersrc/web.rs
- Web UI & dashboardsrc/main.rs
- CLI & entry pointdocs/node_membership_protocol.md
- Documentation for the node membership protocoldocs/container_networking.md
- Documentation for the container networking systemdocs/container_networking_scheduler.md
- Documentation for the network-aware container schedulerdocs/service_discovery.md
- Documentation for the service discovery mechanism
Hivemind is licensed under the MIT License - see the LICENSE file for details.