Bare-metal is awesome. Let's share our favourite tools.
- Ordered alphabetically (eventually consistent)
- Recent development or release (within the last 6 months) - or deemed relevant by curator
- No defunct or abandoned projects
- Must show signs of traction or corporate use
- No "my scripts for my homelab that only I use" submissions.
- This list is curated and not a museum, so the project should be active and relevant
- Format:
link to GitHub or website - "quote from GitHub repo or website"
🏆 Commercial products will require a sponsorship and are added with (sponsored) in brackets in the relevant category.
Sponsorship tiers:
- "Whole rack" - featured at the top of this repository
- "1U" - a link in the relevant section plus the text "(sponsored)"
Curator: Alex Ellis - founder of OpenFaaS, actuated.dev & Inlets.
- bmc-toolbox - "bmc-toolbox is bunch of tools to ease BMC management"
- cobbler - "Cobbler is a Linux installation server that allows for rapid setup of network installation environments"
- Collins - "CMDB / state machine for infrastructure automation"
- confluent - "Service for onboarding and management of baremetal server BMCs and PXE"
- foreman - "From provisioning and configuration to orchestration and monitoring, Foreman integrates with your existing infrastructure to make operations easier"
- iDRAC 6 dockerized "Allows access to the iDRAC 6 console without installing Java or messing with Java Web Start." by DomiStyle
- ironic "A service for managing and provisioning Bare Metal servers" - from OpenStack Foundation
- LinuxKit - "A toolkit for building secure, portable and lean operating systems for containers" - PXE support, focus on immutable infrastructure.
- Typhoon - "A minimal and free Kubernetes distribution with Terraform backed by Fedora CoreOS or Flatcar Linux"
- MAAS - "Metal as a Service" by Canonical
- Matchbox - "Matchbox is a service that matches bare-metal machines to profiles that PXE boot and provision clusters"
- metalk8s - "MetalK8s was launched to make it easier to run Kubernetes (K8s) on bare-metal servers that need persistent storage" by Scality
- Metal Stack - "we believe kubernetes runs best on bare metal. we build an api to manage bare metal hardware and kubernetes on top of that."
- Metal³ - "Bare Metal Host Provisioning for Kubernetes" - with ClusterAPI support and built with Ironic
- mr-provisioner - "Bare metal provisioning tool"
- netboot.xyz - "a way to PXE boot various operating system installers or utilities from one place within the BIOS without the need of having to go retrieve the media to run the tool."
- pixiecore "Pixiecore is an tool to manage network booting of machines" by Dave Anderson
- RackHD - "a technology stack for enabling automated hardware management and orchestration through cohesive APIs. It serves as an abstraction layer between other management layers and the underlying, vendor-specific physical hardware."
- Sidero Labs - (Formerly known as Talos Systems) "A New Tool for Kubernetes Bare Metal" - with ClusterAPI support
- Tinkerbell - "Tinkerbell is a bare metal provisioning engine. It’s built and maintained with love by the team at Equinix Metal."
- Warewulf - "Warewulf is a stateless and diskless container operating system provisioning system for large clusters of bare metal and/or virtual systems."
These projects may be archived but are useful for learning and inspiration.
- Razor (archived) - "Razor is next generation provisioning software that handles bare metal hardware and virtual server provisioning"
- plundr (inactive on GitHub - 4yrs) - "Plunder is a single-binary server that is all designed in order to make the provisioning of servers, platforms and applications easier." - with ClusterAPI support
Tools often used with bare-metal tooling:
- dnsmasq - "Dnsmasq provides network infrastructure for small networks: DNS, DHCP, router advertisement and network boot."
- HAProxy - "The Reliable, High Performance TCP/HTTP Load Balancer" - often used in place of hardware LB.
- inlets - "A Cloud Native Tunnel for L4 TCP and L7 HTTPS" (sponsored)
- inlets-operator - "Public IPs for your private Kubernetes Services using inlets"
- kube-vip - "Kubernetes Control Plane Virtual IP and Load-Balancer"
- MetalLB - "MetalLB is a load-balancer implementation for bare metal Kubernetes clusters, using standard routing protocols."
- PorterLB - "PorterLB is an open-source load balancer implementation designed for bare-metal Kubernetes clusters."
- Squid - "a caching proxy for the Web supporting HTTP, HTTPS, FTP, and more. It reduces bandwidth and improves response times by caching and reusing frequently-requested web pages." - used with bare-metal to cache packages and ISO images
- Varnish-Cache Varnish Cache, the high-performance HTTP accelerator
Rent bare-metal from a cloud vendor on an hourly, monthly, or longer term commitment.
For a more comprehensive list see the actuated docs: Provision a Server. Actuated runs CI in ephemeral microVMs using Firecracker so requires bare-metal or nested virtualisation.
x86_64
and / or arm64:
- AlibabaCloud bare metal -
x86_64
&arm64
- AWS Bare Metal -
x86_64
&arm64
- Equinix Metal bare-metal infrastructure -
x86_64
&arm64
(End of Life) - Hetzner -
x86_64
andarm64
(Best value for money, Europe region only)
The Raspberry Pi 4B and 5 provide arm64 support with several operating systems like Ubuntu LTS being available. An NVMe can be plugged in over USB-C or PCIe, see also: Upgrade your Raspberry Pi 4 with a NVMe boot drive and Booting the Raspberry Pi 5 from NVMe
The Mac Mini M1 and Mac Mini M2 can be installed with Asahi Linux, which then provides one of the fastest CPU/storage options for a self-hosted local Arm64 Linux host.
x86_x64
only:
- cherryservers.com -
x86_64
only - FastHosts bare metal -
x86_x64
- hivelocity -
x86_64
only - IBM Cloud -
x86_64
only - Ionos -
x86_64
only - latitude.sh -
x86_64
- Oracle Cloud Infrastructure (OCI) -
arm64
only - OVHcloud bare metal -
x86_64
- phoenixnap NAP
- Scaleway.com -
x86_64
arm64
is now EOL - Vultr.com -
x86_64
only
Orchestration of Virtual Machines (VMs) using KVM.
- Firecracker
- Cloud Hypervisor
- QEMU - QEMU is the traditional hypervisor, which now contains a "microvm" profile
- oVirt - "oVirt is an open-source distributed virtualization solution, designed to manage your entire enterprise infrastructure. oVirt uses the trusted KVM hypervisor and is built upon several other community projects, including libvirt, Gluster, PatternFly, and Ansible."
- Ganeti - "Open source hyperconverged VM platform that scales from several to thousands of bare metal servers. Originally written for internal use at Google."
- Proxmox VE - "Proxmox VE is a complete open-source platform for all-inclusive enterprise virtualization that tightly integrates KVM hypervisor and LXC containers, software-defined storage and networking functionality on a single platform"
- actuated.dev - blazing fast CI for GitHub Actions using Firecracker (sponsored)
- OpenEBS - "Open Source Container Attached Storage, simplifies running Stateful Applications on Kubernetes.
- Rook - "Open-Source, Cloud-Native Storage Orchestrator for Kubernetes"
- SeaweedFS - Apache 2.0 - "SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files"
- Minio - AGPLv3 and commercial license for Object Storage.
- Digital Rebar - "Digital Rebar is the data center automation, provisioning and infrastructure as code (IaC) platform designed with a cloud native architecture replacing Cobbler, Foreman, MaaS or similar technologies"
Each section should be sorted after it's been updated, here's how you can do that with bash.
cat | sort --ignore-case
# Copy / paste
# Control + D
Then paste the output back into the document.