A kubectl-style CLI for managing Docker-based homelab infrastructure across multiple machines.
Walheim provides a familiar Kubernetes-like interface for deploying and managing applications in your homelab. Use whctl (Walheim Control) to manage namespaces, apps, secrets, and configuration across your physical machines.
Key Features:
- kubectl-style CLI interface (
whctl get,whctl apply, etc.) - Context-based configuration for multiple environments
- Docker Compose as the application definition format
- Kubernetes-style Secret management with automatic injection
- SSH-based deployment to remote machines
- Namespace = physical machine mapping
gem install walheimA context points to a data directory containing your homelab configuration:
# Create a context for your homelab
whctl context new homelab --data-dir ~/my-homelab
# The data directory will be created if it doesn't existNamespaces in Walheim represent physical machines:
# Create a namespace for a production server
whctl create namespace production \
--hostname prod.example.com \
--username admin# Import an existing docker-compose.yml
whctl import app nginx -n production -f docker-compose.yml
# Deploy the app to the namespace
whctl apply app nginx -n production