6.4 KiB
Prerequisites
Before installing the Provisioning platform, ensure your system meets the following requirements.
Required Software
Nushell 0.109.1+
Nushell is the primary shell and scripting environment for the platform.
Installation:
# macOS (Homebrew)
brew install nushell
# Linux (Cargo)
cargo install nu
# From source
git clone [https://github.com/nushell/nushell](https://github.com/nushell/nushell)
cd nushell
cargo install --path .
Verify installation:
nu --version
# Should show: 0.109.1 or higher
Nickel 1.15.1+
Nickel is the infrastructure-as-code language providing type-safe configuration with lazy evaluation.
Installation:
# macOS (Homebrew)
brew install nickel
# Linux (Cargo)
cargo install nickel-lang-cli
# From source
git clone [https://github.com/tweag/nickel](https://github.com/tweag/nickel)
cd nickel
cargo install --path cli
Verify installation:
nickel --version
# Should show: 1.15.1 or higher
SOPS 3.10.2+
SOPS (Secrets OPerationS) provides encrypted configuration and secrets management.
Installation:
# macOS (Homebrew)
brew install sops
# Linux (binary download)
wget [https://github.com/getsops/sops/releases/download/v3.10.2/sops-v3.10.2.linux.amd64](https://github.com/getsops/sops/releases/download/v3.10.2/sops-v3.10.2.linux.amd64)
sudo mv sops-v3.10.2.linux.amd64 /usr/local/bin/sops
sudo chmod +x /usr/local/bin/sops
Verify installation:
sops --version
# Should show: 3.10.2 or higher
Age 1.2.1+
Age provides modern encryption for secrets used by SOPS.
Installation:
# macOS (Homebrew)
brew install age
# Linux (binary download)
wget [https://github.com/FiloSottile/age/releases/download/v1.2.1/age-v1.2.1-linux-amd64.tar.gz](https://github.com/FiloSottile/age/releases/download/v1.2.1/age-v1.2.1-linux-amd64.tar.gz)
tar xzf age-v1.2.1-linux-amd64.tar.gz
sudo mv age/age /usr/local/bin/
sudo chmod +x /usr/local/bin/age
Verify installation:
age --version
# Should show: 1.2.1 or higher
K9s 0.50.6+
K9s provides a terminal UI for managing Kubernetes clusters.
Installation:
# macOS (Homebrew)
brew install derailed/k9s/k9s
# Linux (binary download)
wget [https://github.com/derailed/k9s/releases/download/v0.50.6/k9s_Linux_amd64.tar.gz](https://github.com/derailed/k9s/releases/download/v0.50.6/k9s_Linux_amd64.tar.gz)
tar xzf k9s_Linux_amd64.tar.gz
sudo mv k9s /usr/local/bin/
Verify installation:
k9s version
# Should show: 0.50.6 or higher
Optional Software
mdBook
For building and serving local documentation.
# Install with Cargo
cargo install mdbook
# Verify
mdbook --version
Docker or Podman
Container runtime for test environments and local development.
# Docker (macOS)
brew install --cask docker
# Podman (Linux)
sudo apt-get install podman
# Verify
docker --version
# or
podman --version
Cargo (Rust)
Required for building platform services and native plugins.
# Install Rust and Cargo
curl --proto '=https' --tlsv1.2 -sSf [https://sh.rustup.rs](https://sh.rustup.rs) | sh
# Verify
cargo --version
Git
Version control for workspace management and configuration.
# Most systems have Git pre-installed
git --version
# Install if needed (macOS)
brew install git
# Install if needed (Linux)
sudo apt-get install git
System Requirements
Minimum Hardware
Development Workstation:
- CPU: 2 cores
- RAM: 4 GB
- Disk: 20 GB available space
- Network: Internet connection for provider APIs
Production Control Plane:
- CPU: 4 cores
- RAM: 8 GB
- Disk: 50 GB available space (SSD recommended)
- Network: Stable internet connection, public IP optional
Supported Operating Systems
Primary Support:
- macOS 12.0+ (Monterey or newer)
- Linux distributions with kernel 5.0+
- Ubuntu 20.04 LTS or newer
- Debian 11 or newer
- Fedora 35 or newer
- RHEL 8 or newer
Limited Support:
- Windows 10/11 via WSL2 (Windows Subsystem for Linux)
Network Requirements
Outbound Access:
- HTTPS (443) to cloud provider APIs
- HTTPS (443) to GitHub (for version updates)
- SSH (22) for server management
Inbound Access (optional, for platform services):
- Port 8080: HTTP API
- Port 8081: MCP server
- Port 5000: Orchestrator service
Cloud Provider Access
At least one cloud provider account with API credentials:
UpCloud:
- API username and password
- Account with sufficient quota for servers
AWS:
- AWS Access Key ID and Secret Access Key
- IAM permissions for EC2, VPC, EBS operations
- Account with sufficient EC2 quota
Local Provider:
- Docker or Podman installed
- Sufficient local system resources
Permission Requirements
User Permissions
Standard User (recommended):
- Read/write access to workspace directory
- Ability to create symlinks for CLI installation
- SSH key generation capability
Administrative Tasks (optional):
- Installing CLI to
/usr/local/bin(requires sudo) - Installing system-wide dependencies
- Configuring system services
File System Permissions
# Workspace directory
chmod 755 ~/provisioning-workspace
# Configuration files
chmod 600 ~/.config/provisioning/user_config.yaml
chmod 600 ~/.ssh/provisioning_*
# Executable permissions for CLI
chmod +x /path/to/provisioning/core/cli/provisioning
Verification Checklist
Before proceeding to installation, verify all prerequisites:
# Check required tools
nu --version # 0.109.1+
nickel --version # 1.15.1+
sops --version # 3.10.2+
age --version # 1.2.1+
k9s version # 0.50.6+
# Check optional tools
mdbook --version # Latest
docker --version # Latest
cargo --version # Latest
git --version # Latest
# Verify system resources
nproc # CPU cores (2+ minimum)
free -h # RAM (4GB+ minimum)
df -h ~ # Disk space (20GB+ minimum)
# Test network connectivity
curl -I [https://api.github.com](https://api.github.com)
curl -I [https://hub.upcloud.com](https://hub.upcloud.com) # UpCloud API
curl -I [https://ec2.amazonaws.com](https://ec2.amazonaws.com) # AWS API
Next Steps
Once all prerequisites are met, proceed to:
- Installation - Install the Provisioning platform
- Quick Start - Deploy your first infrastructure in 5 minutes