3.9 KiB
3.9 KiB
Wild CLI
A unified Go CLI tool for managing Wild Cloud personal infrastructure, replacing the collection of wild-* bash scripts with a single, modern CLI application.
Overview
Wild CLI provides comprehensive management of your personal cloud infrastructure built on Talos Linux and Kubernetes. It offers better error handling, progress tracking, cross-platform support, and improved user experience compared to the original bash scripts.
Features
- Unified interface - Single
wild
command instead of manywild-*
scripts - Better error handling - Detailed error messages with suggestions
- Cross-platform support - Works on Linux, macOS, and Windows
- Progress tracking - Visual progress indicators for long-running operations
- Improved validation - Input validation and environment checks
- Native Go performance - Fast startup and execution
- Comprehensive testing - Unit and integration tests
Installation
From Source
git clone <repository-url>
cd wild-cli
make build
make install
Pre-built Binaries
Download the latest release from the releases page and place the binary in your PATH.
Usage
Basic Commands
# Show help
wild --help
# Configuration management
wild config get cluster.name
wild config set cluster.domain example.com
# Secret management
wild secret get database.password
wild secret set database.password mySecretPassword
# Application management
wild app list
wild app fetch nextcloud
wild app add nextcloud
wild app deploy nextcloud
# Cluster management
wild cluster nodes list
wild cluster config generate
# System setup
wild setup scaffold
wild setup cluster
wild setup services
Global Flags
--verbose, -v
- Enable verbose logging--dry-run
- Show what would be done without making changes--no-color
- Disable colored output--config-dir
- Specify configuration directory--wc-root
- Wild Cloud installation directory--wc-home
- Wild Cloud project directory
Development
Prerequisites
- Go 1.22 or later
- Make
Building
# Build for current platform
make build
# Build for all platforms
make build-all
# Development build with formatting
make quick
Testing
# Run tests
make test
# Run tests with coverage
make test-coverage
# Run linter
make lint
# Run all checks
make check
Project Structure
wild-cli/
├── cmd/wild/ # CLI commands
│ ├── app/ # App management commands
│ ├── cluster/ # Cluster management commands
│ ├── config/ # Configuration commands
│ ├── secret/ # Secret management commands
│ ├── setup/ # Setup commands
│ └── util/ # Utility commands
├── internal/ # Internal packages
│ ├── config/ # Configuration management
│ ├── environment/ # Environment detection
│ ├── output/ # Output formatting
│ └── ...
├── test/ # Test files
├── docs/ # Documentation
└── scripts/ # Build scripts
Migration from Bash Scripts
Wild CLI maintains compatibility with the existing Wild Cloud workflow:
Bash Script | Wild CLI Command |
---|---|
wild-config <path> |
wild config get <path> |
wild-config-set <path> <value> |
wild config set <path> <value> |
wild-secret <path> |
wild secret get <path> |
wild-app-list |
wild app list |
wild-app-deploy <name> |
wild app deploy <name> |
wild-setup-cluster |
wild setup cluster |
Environment Variables
WC_ROOT
- Wild Cloud installation directoryWC_HOME
- Wild Cloud project directory (auto-detected if not set)
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Run
make check
to ensure quality - Submit a pull request
License
This project follows the same license as the Wild Cloud project.