Installation

NOCFoundry ships as a single self-contained binary. Choose the method that fits your environment.


Install script

The install script detects your operating system and architecture, downloads the correct release archive from GitHub, verifies the SHA-256 checksum, and places the nocfoundry binary in your target directory.

Install the latest version

curl -fsSL <https://raw.githubusercontent.com/adrien19/noc-foundry/main/install/install.sh> | bash
powershell -Command "iwr -useb <https://raw.githubusercontent.com/adrien19/noc-foundry/main/install/install.ps1> | iex"

Install a specific version

curl -fsSL <https://raw.githubusercontent.com/adrien19/noc-foundry/main/install/install.sh> | bash -s 0.1.0
$s=iwr -useb https://raw.githubusercontent.com/adrien19/noc-foundry/main/install/install.ps1
$b=[ScriptBlock]::Create($s)
invoke-command -ScriptBlock $b -ArgumentList "0.1.0"

Install to a custom directory (no sudo / no admin)

Use the NOCFOUNDRY_INSTALL_DIR environment variable to specify an alternative directory. The script will skip sudo and will not require administrative rights.

curl -fsSL <https://raw.githubusercontent.com/adrien19/noc-foundry/main/install/install.sh> \
  | NOCFOUNDRY_INSTALL_DIR="$HOME/.nocfoundry" bash
$Env:NOCFOUNDRY_INSTALL_DIR = "C:\tools\nocfoundry"
powershell -Command "iwr -useb <https://raw.githubusercontent.com/adrien19/noc-foundry/main/install/install.ps1> | iex"

Install a specific version to a custom directory

curl -fsSL <https://raw.githubusercontent.com/adrien19/noc-foundry/main/install/install.sh> \
  | NOCFOUNDRY_INSTALL_DIR="$HOME/.nocfoundry" bash -s 0.1.0
$s=iwr -useb <https://raw.githubusercontent.com/adrien19/noc-foundry/main/install/install.ps1>
$b=[ScriptBlock]::Create($s)
invoke-command -ScriptBlock $b -ArgumentList "0.1.0", "C:\tools\nocfoundry"

Binary download

Every release publishes pre-built archives to the GitHub Releases page.

1. Find your archive

PlatformArchitectureArchive
Linuxx86-64nocfoundry_{VERSION}_linux_amd64.tar.gz
LinuxARM 64-bitnocfoundry_{VERSION}_linux_arm64.tar.gz
LinuxARM 32-bit (ARMv7)nocfoundry_{VERSION}_linux_armv7.tar.gz
macOSApple Siliconnocfoundry_{VERSION}_darwin_arm64.tar.gz
macOSIntelnocfoundry_{VERSION}_darwin_amd64.tar.gz
Windowsx86-64nocfoundry_{VERSION}_windows_amd64.zip

Replace {VERSION} with the version number from the release, for example 0.1.0.

2. Download the archive and verify the checksum

VERSION=0.1.0
OS=linux   # or darwin
ARCH=amd64 # amd64 | arm64 | armv7

ARCHIVE="nocfoundry_${VERSION}_${OS}_${ARCH}.tar.gz"
BASE_URL="https://github.com/adrien19/noc-foundry/releases/download/v${VERSION}"

# Download the archive and the combined checksums file

curl -fsSL -O "${BASE_URL}/${ARCHIVE}"
curl -fsSL -O "${BASE_URL}/checksums.txt"

# Verify

grep "${ARCHIVE}" checksums.txt | sha256sum --check
$Version  = "0.1.0"
$Archive  = "nocfoundry_${Version}_windows_amd64.zip"
$BaseUrl  = "https://github.com/adrien19/noc-foundry/releases/download/v${Version}"

# Download the archive and the combined checksums file

Invoke-WebRequest -Uri "${BaseUrl}/${Archive}"    -OutFile $Archive     -UseBasicParsing
Invoke-WebRequest -Uri "${BaseUrl}/checksums.txt" -OutFile checksums.txt -UseBasicParsing

# Verify

$Expected = (Select-String -Path checksums.txt -Pattern ([regex]::Escape($Archive)) |
             Select-Object -First 1).Line.Split()[0].ToLower()
$Actual   = (Get-FileHash -Path $Archive -Algorithm SHA256).Hash.ToLower()
if ($Expected -ne $Actual) { Write-Error "Checksum mismatch!" } else { Write-Host "Checksum OK" }

3. Extract and install

# Extract to a temp directory, then move the binary into your PATH

mkdir -p /tmp/nocfoundry-install
tar -xzf "${ARCHIVE}" -C /tmp/nocfoundry-install

# Install system-wide (requires sudo) — omit sudo if installing to a user dir

sudo install -m 0755 /tmp/nocfoundry-install/nocfoundry /usr/local/bin/nocfoundry

# Clean up

rm -rf /tmp/nocfoundry-install "${ARCHIVE}" checksums.txt
$InstallDir = "$Env:SystemDrive\nocfoundry"
New-Item -ItemType Directory -Force -Path $InstallDir | Out-Null
Expand-Archive -Path $Archive -DestinationPath $InstallDir -Force

# Add to User PATH if not already present

$CurrentPath = [System.Environment]::GetEnvironmentVariable("PATH", "User")
if ($CurrentPath -notlike "*$InstallDir*") {
    [System.Environment]::SetEnvironmentVariable("PATH", "$CurrentPath;$InstallDir", "User")
    Write-Host "Added '$InstallDir' to User PATH. Restart your terminal."
}

Remove-Item $Archive, checksums.txt

Verify the installation

nocfoundry --version

Expected output resembles:

0.1.0+binary.linux.amd64

Next steps