provisioning/docs/src/getting-started/01-prerequisites.md
2026-01-14 04:59:11 +00:00

5.3 KiB

Prerequisites

Before installing the Provisioning Platform, ensure your system meets the following requirements.

Hardware Requirements

Minimum Requirements (Solo Mode)

  • CPU: 2 cores
  • RAM: 4 GB
  • Disk: 20 GB available space
  • Network: Internet connection for downloading dependencies
  • CPU: 4 cores
  • RAM: 8 GB
  • Disk: 50 GB available space
  • Network: Reliable internet connection

Production Requirements (Enterprise Mode)

  • CPU: 16 cores
  • RAM: 32 GB
  • Disk: 500 GB available space (SSD recommended)
  • Network: High-bandwidth connection with static IP

Operating System

Supported Platforms

  • macOS: 12.0 (Monterey) or later
  • Linux:
    • Ubuntu 22.04 LTS or later
    • Fedora 38 or later
    • Debian 12 (Bookworm) or later
    • RHEL 9 or later

Platform-Specific Notes

macOS:

  • Xcode Command Line Tools required
  • Homebrew recommended for package management

Linux:

  • systemd-based distribution recommended
  • sudo access required for some operations

Required Software

Core Dependencies

Software Version Purpose
Nushell 0.107.1+ Shell and scripting language
Nickel 1.15.0+ Configuration language
Docker 20.10+ Container runtime (for platform services)
SOPS 3.10.2+ Secrets management
Age 1.2.1+ Encryption tool

Optional Dependencies

Software Version Purpose
Podman 4.0+ Alternative container runtime
OrbStack Latest macOS-optimized container runtime
K9s 0.50.6+ Kubernetes management interface
glow Latest Markdown renderer for guides
bat Latest Syntax highlighting for file viewing

Installation Verification

Before proceeding, verify your system has the core dependencies installed:

Nushell

# Check Nushell version
nu --version

# Expected output: 0.107.1 or higher

Nickel

# Check Nickel version
nickel --version

# Expected output: 1.15.0 or higher

Docker

# Check Docker version
docker --version

# Check Docker is running
docker ps

# Expected: Docker version 20.10+ and connection successful

SOPS

# Check SOPS version
sops --version

# Expected output: 3.10.2 or higher

Age

# Check Age version
age --version

# Expected output: 1.2.1 or higher

Installing Missing Dependencies

macOS (using Homebrew)

# Install Homebrew if not already installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Install Nushell
brew install nushell

# Install Nickel
brew install nickel

# Install Docker Desktop
brew install --cask docker

# Install SOPS
brew install sops

# Install Age
brew install age

# Optional: Install extras
brew install k9s glow bat

Ubuntu/Debian

# Update package list
sudo apt update

# Install prerequisites
sudo apt install -y curl git build-essential

# Install Nushell (from GitHub releases)
curl -LO https://github.com/nushell/nushell/releases/download/0.107.1/nu-0.107.1-x86_64-linux-musl.tar.gz
tar xzf nu-0.107.1-x86_64-linux-musl.tar.gz
sudo mv nu /usr/local/bin/

# Install Nickel (using Rust cargo)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
cargo install nickel

# Install Docker
sudo apt install -y docker.io
sudo systemctl enable --now docker
sudo usermod -aG docker $USER

# Install SOPS
curl -LO https://github.com/getsops/sops/releases/download/v3.10.2/sops-v3.10.2.linux.amd64
chmod +x sops-v3.10.2.linux.amd64
sudo mv sops-v3.10.2.linux.amd64 /usr/local/bin/sops

# Install Age
sudo apt install -y age

Fedora/RHEL

# Install Nushell
sudo dnf install -y nushell

# Install Nickel (using Rust cargo)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
cargo install nickel

# Install Docker
sudo dnf install -y docker
sudo systemctl enable --now docker
sudo usermod -aG docker $USER

# Install SOPS
sudo dnf install -y sops

# Install Age
sudo dnf install -y age

Network Requirements

Firewall Ports

If running platform services, ensure these ports are available:

Service Port Protocol Purpose
Orchestrator 8080 HTTP Workflow API
Control Center 9090 HTTP Policy engine
KMS Service 8082 HTTP Key management
API Server 8083 HTTP REST API
Extension Registry 8084 HTTP Extension discovery
OCI Registry 5000 HTTP Artifact storage

External Connectivity

The platform requires outbound internet access to:

  • Download dependencies and updates
  • Pull container images
  • Access cloud provider APIs (AWS, UpCloud)
  • Fetch extension packages

Cloud Provider Credentials (Optional)

If you plan to use cloud providers, prepare credentials:

AWS

  • AWS Access Key ID
  • AWS Secret Access Key
  • Configured via ~/.aws/credentials or environment variables

UpCloud

  • UpCloud username
  • UpCloud password
  • Configured via environment variables or config files

Next Steps

Once all prerequisites are met, proceed to: → Installation