provisioning/docs/src/getting-started/01-prerequisites.md

251 lines
5.2 KiB
Markdown
Raw Normal View History

2026-01-14 04:53:21 +00:00
# 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
### Recommended Requirements (Multi-User Mode)
- **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
```text
# Check Nushell version
nu --version
# Expected output: 0.107.1 or higher
```
### Nickel
```text
# Check Nickel version
nickel --version
# Expected output: 1.15.0 or higher
```
### Docker
```text
# Check Docker version
docker --version
# Check Docker is running
docker ps
# Expected: Docker version 20.10+ and connection successful
```
### SOPS
```text
# Check SOPS version
sops --version
# Expected output: 3.10.2 or higher
```
### Age
```text
# Check Age version
age --version
# Expected output: 1.2.1 or higher
```
## Installing Missing Dependencies
### macOS (using Homebrew)
```text
# 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
```text
# 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
```text
# 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](02-installation.md)**