Homebrew
Linux 64bit (AMD + ARM) and macOS 64bit (ARM only). Homebrew is a package manager for macOS and Linux.
brew install musil/tap/smu
Home lab Swiss knife written in Go — one binary, no dependencies.
v0.9.5Pick your platform. Every download is verified against its SHA256 checksum.
Linux 64bit (AMD + ARM) and macOS 64bit (ARM only). Homebrew is a package manager for macOS and Linux.
brew install musil/tap/smu
Manual installation into /usr/local/bin.
wget https://smu.dc5.eu/dist/smu_latest_linux_amd64.tar.gz
wget https://smu.dc5.eu/dist/smu_latest_linux_amd64.tar.gz.sha256 -O smu_latest_linux_amd64.tar.gz.sha256
if sha256sum -c smu_latest_linux_amd64.tar.gz.sha256; then
echo -e "\e[32m SHA256sum OK\e[0m" # Print "OK" in green color
tar -xvzf smu_latest_linux_amd64.tar.gz
rm -f README.md
rm -f smu_latest_linux_amd64.tar.gz
sudo /bin/mv -f smu /usr/local/bin/
else
echo -e "\e[31m SHA256sum FAIL\e[0m" # Print "FAIL" in red color
rm -f smu_latest_linux_amd64.tar.gz
rm -f smu_latest_linux_amd64.tar.gz.sha256
fi
Run in PowerShell.
Invoke-WebRequest -Uri "https://smu.dc5.eu/dist/smu_windows_amd64/smu" -OutFile ".\smu.exe" -UseBasicParsing
Invoke-WebRequest -Uri "https://smu.dc5.eu/dist/smu_windows_amd64/smu.sha256" -OutFile ".\smu.sha256" -UseBasicParsing
$hashFilePath = Join-Path (Split-Path $filePath) "$($filePath | Split-Path -Leaf)sha256"
$filePath = ".\smu.exe"
$expectedHash = (Get-Content $hashFilePath).Substring(0,64)
$actualHash = Get-FileHash -Path $filePath -Algorithm SHA256 | Select-Object -ExpandProperty Hash
if ($actualHash -eq $expectedHash) {
Write-Host "Hashes match. File is valid."
} else {
Write-Host "Hashes do not match. File may be corrupt."
}
Manual download of the darwin/arm64 build.
Invoke-WebRequest -Uri "https://smu.dc5.eu/dist/smu_darwin_arm64/smu" -OutFile ".\smu.exe" -UseBasicParsing
Invoke-WebRequest -Uri "https://smu.dc5.eu/dist/smu_darwin_arm64/smu.sha256" -OutFile ".\smu.sha256" -UseBasicParsing
$hashFilePath = Join-Path (Split-Path $filePath) "$($filePath | Split-Path -Leaf)sha256"
$filePath = ".\smu.exe"
$expectedHash = (Get-Content $hashFilePath).Substring(0,64)
$actualHash = Get-FileHash -Path $filePath -Algorithm SHA256 | Select-Object -ExpandProperty Hash
if ($actualHash -eq $expectedHash) {
Write-Host "Hashes match. File is valid."
} else {
Write-Host "Hashes do not match. File may be corrupt."
}
Run smu help for the full tree, or smu <command> --help for details.
smu s3
Upload files to S3, MinIO or any S3 gateway
smu git
Repository helpers, commit and URL tools
smu k8s
Kubeconfig and cluster utilities
smu argocd
Read the ArgoCD initial password
smu random
Random strings, passwords and integers
smu ssh
Generate SSH keypairs
smu backup
Install the backup script
smu www
Deploy a site to a web host
smu download
Download predefined files and ISO images
smu ip
Show your current public IP address
smu df
Human readable df, /dev devices only
smu version
Print the installed version
Current release v0.9.5, built for Linux, macOS and Windows.