BitBuilder Cloud CLI (bbctl) is a command-line tool for provisioning and managing infrastructure across multiple providers, focusing on bare metal deployments with VyOS and Proxmox. It's designed to offer a seamless experience similar to fly.io's flyctl, but targeted at self-hosted infrastructure.
This guide will help you understand how to use bbctl effectively, covering installation, basic operations, and advanced features.
If you have Rust installed, the simplest way to install bbctl is via Cargo:
cargo install bbctlFor systems without Rust, download pre-compiled binaries:
- Visit the releases page
- Download the appropriate binary for your platform
- Make it executable:
chmod +x bbctl - Move it to your PATH:
sudo mv bbctl /usr/local/bin/
To build the latest version from source:
git clone https://github.com/bitbuilder-io/bbctl.git
cd bbctl
cargo build --releaseThe compiled binary will be in target/release/bbctl.
When running bbctl for the first time, you'll need to set up your provider credentials:
# Initialize bbctl configuration
bbctl init
# Add a VyOS provider
bbctl providers add vyos-router --type vyos --host 192.168.1.1 --username vyos --api-key your-api-key
# Add a Proxmox provider
bbctl providers add proxmox-host --type proxmox --host 192.168.1.2 --token-id your-token-id --token-secret your-token-secretBitBuilder Cloud CLI organizes resources into the following categories:
- Providers: Infrastructure providers like VyOS routers or Proxmox hosts
- Regions: Logical groupings of infrastructure, typically by location
- Instances: Virtual machines running on the providers
- Volumes: Storage volumes that can be attached to instances
- Networks: Virtual networks for connecting instances
bbctl providers listbbctl providers test vyos-routerbbctl providers remove vyos-routerbbctl instances create web-server-1 \
--provider vyos-router \
--region nyc \
--cpu 2 \
--memory 4 \
--disk 80bbctl instances list# Start an instance
bbctl instances start i-01234567
# Stop an instance
bbctl instances stop i-01234567bbctl instances show i-01234567bbctl instances delete i-01234567bbctl volumes create db-data \
--size 100 \
--region nycbbctl volumes listbbctl volumes attach vol-01234567 \
--instance i-01234567bbctl volumes detach vol-01234567bbctl networks create app-network \
--cidr 192.168.1.0/24bbctl networks listbbctl networks connect net-01234567 \
--instance i-01234567bbctl networks disconnect net-01234567 \
--instance i-01234567BitBuilder Cloud CLI includes an interactive terminal interface that can be launched by running bbctl without any commands.
- Use Tab or number keys (1-5) to switch between views
- Use arrow keys or j/k to select items in lists
- Press Enter to view or interact with a selected item
- Press ? to view help
- Home: Dashboard with summary information
- Instances: List and manage virtual machines
- Volumes: Manage storage volumes
- Networks: Configure virtual networks
- Settings: Configure bbctl options
| Key | Action |
|---|---|
| 1-5 | Switch to numbered view |
| Tab | Next view |
| Shift+Tab | Previous view |
| j or ↓ | Move selection down |
| k or ↑ | Move selection up |
| Enter | View or interact with item |
| a | Add new item |
| d | Delete selected item |
| e | Edit selected item |
| r | Refresh data |
| q or Esc | Quit or go back |
| ? | Show help |
BitBuilder Cloud CLI uses the following configuration files in ~/.bbctl/:
settings.toml: Global settings for bbctlproviders.toml: Provider configurationscredentials.toml: Authentication credentials (API keys, tokens, etc.)
default_provider = "vyos-router"
default_region = "nyc"
telemetry_enabled = false
auto_update_enabled = true
colors_enabled = true
default_cpu = 2
default_memory_gb = 4
default_disk_gb = 80
log_level = "info"You can use environment variables to override configuration values:
export BBCTL_DEFAULT_PROVIDER=vyos-router
export BBCTL_LOG_LEVEL=debugFor scripting, you can use the --json flag with most commands to get machine-readable output:
bbctl instances list --json > instances.jsonBitBuilder Cloud CLI supports setting up WireGuard for secure connectivity:
bbctl networks create secure-net \
--cidr 10.10.0.0/24 \
--wireguard enabledIf you're having trouble connecting to a provider:
# Test provider connectivity with verbose output
bbctl providers test vyos-router --verbose
# Ensure credentials are correct
bbctl providers update vyos-router --api-key new-api-keyFor detailed error information, increase the log level:
bbctl --log-level debug instances listIf you suspect configuration problems:
# View current configuration
bbctl config show
# Reset configuration
bbctl config resetFor additional help with specific commands:
bbctl help
bbctl instances --helpBitBuilder Cloud CLI provides a powerful, unified interface for managing multi-tenant infrastructure across VyOS and Proxmox providers. By combining the command-line interface with the interactive TUI, you can efficiently manage your infrastructure whether you're working interactively or scripting automated workflows.
For more detailed information, refer to the other documentation: