Get OpenFrame CLI up and running in 5 minutes! This guide will walk you through installing OpenFrame CLI and bootstrapping your first environment.
If you have all prerequisites installed, here's the fastest path:
# 1. Download and install OpenFrame CLI (choose your platform)
# Linux/macOS
curl -fsSL https://github.com/flamingo-stack/openframe-cli/releases/latest/download/openframe-cli_linux_amd64.tar.gz | tar -xz
sudo mv openframe /usr/local/bin/
# Windows (download manually)
# Download: https://github.com/flamingo-stack/openframe-cli/releases/latest/download/openframe-cli_windows_amd64.zip
# 2. Verify installation
openframe --version
# 3. Bootstrap complete environment
openframe bootstrap
# 4. Check cluster status
openframe cluster statusThat's it! Continue reading for detailed steps and explanations.
Choose your platform and download the latest release:
curl -fsSL https://github.com/flamingo-stack/openframe-cli/releases/latest/download/openframe-cli_linux_amd64.tar.gz | tar -xz
sudo mv openframe /usr/local/bin/
chmod +x /usr/local/bin/openframecurl -fsSL https://github.com/flamingo-stack/openframe-cli/releases/latest/download/openframe-cli_linux_arm64.tar.gz | tar -xz
sudo mv openframe /usr/local/bin/
chmod +x /usr/local/bin/openframecurl -fsSL https://github.com/flamingo-stack/openframe-cli/releases/latest/download/openframe-cli_darwin_amd64.tar.gz | tar -xz
sudo mv openframe /usr/local/bin/
chmod +x /usr/local/bin/openframecurl -fsSL https://github.com/flamingo-stack/openframe-cli/releases/latest/download/openframe-cli_darwin_arm64.tar.gz | tar -xz
sudo mv openframe /usr/local/bin/
chmod +x /usr/local/bin/openframe- Download: https://github.com/flamingo-stack/openframe-cli/releases/latest/download/openframe-cli_windows_amd64.zip
- Extract the ZIP file
- Move
openframe.exeto a directory in yourPATH - Open WSL2 terminal and verify access
If you have Go 1.24.6+ installed:
# Clone the repository
git clone https://github.com/flamingo-stack/openframe-cli.git
cd openframe-cli
# Build the binary
go build -o openframe main.go
# Move to PATH
sudo mv openframe /usr/local/bin/Confirm OpenFrame CLI is installed correctly:
openframe --versionExpected output:
openframe version v1.x.x (commit: abc123, built: 2024-01-01)
Check available commands:
openframe --helpYou should see the main command groups:
bootstrap- Complete environment setupcluster- Kubernetes cluster managementchart- Helm chart and ArgoCD managementdev- Development tools and workflows
The bootstrap command creates a complete OpenFrame environment with a single command:
openframe bootstrapThe command will guide you through setup with prompts:
🚀 OpenFrame Bootstrap Wizard
? Select deployment mode:
> oss-tenant (Single tenant, open source)
saas-tenant (Multi-tenant SaaS mode)
saas-shared (Shared SaaS infrastructure)
? Enable verbose logging? (y/N): y
🔍 Checking prerequisites...
✅ Docker is running
✅ kubectl is available
✅ Helm is available
✅ K3D is available
🎯 Creating K3D cluster...
✅ Cluster 'openframe-local' created
🎭 Installing ArgoCD...
✅ ArgoCD installed and ready
📦 Installing application charts...
✅ App-of-apps synchronized
✅ All applications healthy
🎉 OpenFrame environment is ready!
For scripts and CI/CD, use flags to skip prompts:
openframe bootstrap \
--mode=oss-tenant \
--non-interactive \
--verboseopenframe cluster statusExpected output:
📊 Cluster Status: openframe-local
Cluster Info:
Name: openframe-local
Status: Running ✅
Nodes: 1 (1 ready)
Kubernetes Version: v1.28.6+k3s1
Resource Usage:
CPU: 2 cores (25% used)
Memory: 8Gi (45% used)
Storage: 50Gi (12% used)
Key Services:
ArgoCD: Healthy ✅
Traefik: Healthy ✅
CoreDNS: Healthy ✅
The bootstrap process installs ArgoCD. Access the web interface:
# Get ArgoCD URL and credentials
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
kubectl port-forward svc/argocd-server -n argocd 8080:443Then open: http://localhost:8080
- Username:
admin - Password: (from the command above)
# List all pods across namespaces
kubectl get pods --all-namespaces
# Check ArgoCD applications
kubectl get applications -n argocdkubectl create namespace test-app
kubectl get namespaces# Create a test deployment
kubectl create deployment nginx --image=nginx:latest -n test-app
kubectl expose deployment nginx --port=80 --target-port=80 -n test-app
# Check deployment
kubectl get pods -n test-app
kubectl get svc -n test-app# Port forward to test connectivity
kubectl port-forward svc/nginx -n test-app 8081:80 &
# Test the service
curl http://localhost:8081
# Clean up
kill %1 # Stop port-forward
kubectl delete namespace test-appThe bootstrap process created:
- K3D Cluster: A lightweight Kubernetes cluster running in Docker
- ArgoCD: GitOps deployment tool for application management
- Traefik: Ingress controller for routing traffic
- Core Services: DNS, metrics, and monitoring components
- Application Templates: Ready-to-use deployment patterns
After successful bootstrap:
| Component | Status | Access Method |
|---|---|---|
| Kubernetes API | ✅ Running | kubectl commands |
| ArgoCD UI | ✅ Running | Port forward to 8080 |
| Traefik Dashboard | ✅ Running | Port forward to 9000 |
| Container Registry | ✅ Running | Docker daemon |
# Check Docker status
docker ps
docker info
# Restart Docker if needed
sudo systemctl restart docker # Linux
# or restart Docker Desktop on macOS/Windows# Check kubeconfig
kubectl config current-context
kubectl config get-contexts
# Switch to openframe context if needed
kubectl config use-context k3d-openframe-local# Check ArgoCD pods
kubectl get pods -n argocd
# Restart ArgoCD if needed
kubectl rollout restart deployment argocd-server -n argocd# Find and kill processes using required ports
lsof -ti:6443,8080,9000 | xargs kill -9
# Or use different ports
kubectl port-forward svc/argocd-server -n argocd 8081:443🎉 Congratulations! You now have a running OpenFrame environment. Here's what to explore next:
- First Steps Guide - Learn key workflows and features
- Architecture Overview - Understand how components work together
- Development Setup - Configure your development environment
# Use ArgoCD to deploy from Git
openframe chart install my-app \
--repo=https://github.com/your-org/your-app \
--path=helm-chart# Intercept a service for local development
openframe dev intercept my-service \
--namespace=default \
--port=8080:3000# List available commands
openframe --help
# Get cluster information
openframe cluster list
openframe cluster status
# Check chart installations
openframe chart listNeed assistance? The OpenFrame community is here to help:
- OpenMSP Slack: Join the community
- Documentation: Browse other guides in this repository
- GitHub Issues: Report bugs or request features (but use Slack for general support)
Note: All community support happens in Slack - we don't monitor GitHub Issues for support requests.
