• Stars
    star
    1,424
  • Rank 31,899 (Top 0.7 %)
  • Language
  • License
    MIT License
  • Created about 4 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Bare-metal is awesome. Let's share our favourite tools.

awesome-baremetal

Bare-metal is awesome. Let's share our favourite tools.

Rules

  • 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.

Curator: Alex Ellis - founder of OpenFaaS, actuated.dev & Inlets.

Self-hosted

  • 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"
  • 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"
  • 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
  • plundr - "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
  • 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."
  • Razor - "Razor is next generation provisioning software that handles bare metal hardware and virtual server provisioning"
  • 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."

Networking for bare-metal cloud

  • 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

Bare-metal cloud

x86_64 and / or arm64:

The Raspberry Pi 4B provides arm64 support with several operating systems like Ubuntu 20.04 / 22.04 being available. An NVMe can be plugged in over USB-C, see also: Upgrade your Raspberry Pi 4 with a NVMe boot drive

The Mac Mini M1 can be installed with Asahi Linux, which performs well as an Arm64 host.

x86_x64 only:

You may find additional suggestions in the documentation for actuated - isolated CI with Firecracker.

Open Source Virtualization

Orchestration of Virtual Machines (VMs) using KVM.

  • Firecracker
  • Cloud Hypervisor
  • 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)

Storage for bare-metal

  • OpenEBS - "Open Source Container Attached Storage, simplifies running Stateful Applications on Kubernetes.
  • Rook - "Open-Source, Cloud-Native Storage Orchestrator for Kubernetes"

Appendix

Sorting sections

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.

More Repositories

1

k3sup

bootstrap K3s over SSH in < 60s ๐Ÿš€
Go
5,267
star
2

arkade

Open Source Marketplace For Developer Tools
Go
3,546
star
3

k8s-on-raspbian

Kubernetes on Raspbian (Raspberry Pi)
Shell
881
star
4

docker-arm

Build Docker and Swarm on an ARM SoC like the Raspberry Pi
Shell
875
star
5

derek

Reduce maintainer fatigue by automating GitHub
Go
790
star
6

growlab

A global contest to grow and monitor your own food with Raspberry Pi
Python
441
star
7

HandsOnDocker

Get hands-on with Docker through a dozen self-paced and progressive labs.
C#
438
star
8

mine-with-docker

Mine cryptocurrencies with Docker containers and get paid in Bitcoin (BTC)
308
star
9

registry-creds

Replicate Kubernetes ImagePullSecrets to all namespaces
Go
306
star
10

jaas

Run jobs (tasks/one-shot containers) with Docker
Go
303
star
11

firecracker-init-lab

Build a Firecracker microVM from a container image
Shell
179
star
12

expressjs-k8s

Express.js microservice with a Dockerfile, Kubernetes YAMLs and a non-root user
JavaScript
165
star
13

run-job

Run a Kubernetes Job and get the logs when it's done ๐Ÿƒโ€โ™‚๏ธ
Go
162
star
14

spotminer

Golang automation for mining cryptocurrencies on the Spot Market
Go
161
star
15

docker-blinkt-workshop

Get into physical computing with Docker and Raspberry Pi
Python
152
star
16

go-execute

Automate CLI commands with Go
Go
134
star
17

ghost-on-docker

Ghost Blog on Docker - Dockerfile for ARM etc
Makefile
111
star
18

k8s-tls-registry

Setup a privateย Docker registry with TLS on Kubernetes
90
star
19

openfaas-puppeteer-template

OpenFaaS template for headless Chrome and Puppeteer
JavaScript
90
star
20

civo-fluxcd-expressjs

FluxCD and Express.js GitOps tutorial for Civo
82
star
21

hash-browns

Generate SHA256 hashes in Go with Prometheus metrics
Go
76
star
22

rodak

Build your own Rodak - portable Kodak Brownie powered by Raspberry Pi
Python
72
star
23

phototimer

A smart time-lapse driver for Raspberry Pi using raspistill
Python
69
star
24

leaderboard-app

GitHub leaderboard for your organisation or repo (Serverless SPA)
Go
67
star
25

raspberrypi-youtube-streaming

Stream straight to YouTube from your Raspberry Pi with Docker.
Shell
63
star
26

quickstart-prometheus

Quickstart for Prometheus
62
star
27

faas-containerd

containerd and CNI provider for OpenFaaS
Go
61
star
28

aspnet-voteservice

Windows Containers for Docker Voting App
JavaScript
60
star
29

helm3-expressjs-tutorial

Guide to Helm 3 with an Express.js microservice
58
star
30

cli-progress-animation

Coloured progress-bar for your Golang CLI
Go
56
star
31

swarmmode-tests

Series of test cases for Docker swarmmode
JavaScript
56
star
32

mongodb-function

OpenFaaS Function that makes use of a connection pool to access MongoDB
JavaScript
53
star
33

async-example

Asynchronous patterns in Node.js by example: async.waterfall/series/queue
JavaScript
52
star
34

href-counter

Golang multi-stage build to count links within a page for SEO
Go
52
star
35

faas-dockercon

Functions for Dockercon
JavaScript
49
star
36

tensorflow-serving-openfaas

Example of using TensorFlow Serving with OpenFaaS
Dockerfile
47
star
37

pizero-docker-demo

Live IoT cluster demonstration
Shell
46
star
38

jenkins2docker

Jenkins 2.x recipe with docker-compose
44
star
39

enviro-dashboard

Environmental monitoring (with Raspberry Pi sensors) and InfluxDB/Grafana
Python
43
star
40

blinkt_go_examples

The beginning of Blinkt examples programs in Go
Go
37
star
41

funker-dispatch

An API Gateway for serverless functions on Docker Swarm (deprecated, see: openfaas.com)
JavaScript
37
star
42

pi_zero_stock

PI Zero Stock tracker in Node.js with Redis back-end to cache results
HTML
36
star
43

minio-gauge

A Minio pressure gauge with the Raspberry Pi and Blinkt! from Pimoroni, see in real-time how busy your S3 cloud storage is
Python
36
star
44

dockerlabs

Moved to Hands On Docker, click for details.
35
star
45

sponsors-functions

GitHub Sponsors webhook receiver and Discord forwarder
JavaScript
33
star
46

openfaas-streaming-templates

Stream data from ffmpeg/Node.js/Bash over HTTP with OpenFaaS
Dockerfile
32
star
47

fstail

Scan a directory for changed files and tail them
Go
32
star
48

upload-assets

GitHub Action to upload multiple assets to a release
JavaScript
31
star
49

twitter-bots

Learn to create Twitter bots by example.
JavaScript
30
star
50

kubernetes-todo-go-app

A TODO API for Kubernetes written in go
Go
30
star
51

blinkt_go

A Golang library for the Pimoroni Blinkt!
Go
28
star
52

sshdkit

Example for building a bootable SSHD system with LinuxKit
Shell
28
star
53

crud-postgresql-nodejs-openfaas

Build a CRUD API with Postgresql and Node.js with OpenFaaS
28
star
54

gumroad-custom-workflow

Get webhooks in Slack every time you sell a product on Gumroad
JavaScript
27
star
55

seeds2

A Python application for live tweeting photos of your seeds growing on your Raspberry Pi.
Python
26
star
56

iot-sensors-mqtt-openfaas

Collect, plot and analyse sensor readings from your IoT devices with OpenFaaS
Python
26
star
57

hmac

Validate hmac signatures in Go
Go
26
star
58

2020

Make your own 2020 ASCII art
JavaScript
26
star
59

minikube-operator

An operator for Minikube - Kubernetes on Kubernetes
Go
25
star
60

function-storage-example

Serverless Functions storage tutorial with Minio and OpenFaaS
Python
25
star
61

inlets-connect

A tiny HTTP CONNECT proxy ๐Ÿšฆ
Go
23
star
62

guidgenerator-aspnet

Build and deploy an ASP.NET WebAPI application with traditional .NET on Windows with Docker
JavaScript
23
star
63

containerd-arm

Arm64 & armhf binaries of containerd
22
star
64

faas-twitter-fanclub

Serverless polaroids - posted to Twitter for GitHub stars
Python
22
star
65

inlets-heroku-tutorial

Run inlets on Heroku to tunnel local endpoints for free
Dockerfile
21
star
66

mkaas

mkaas: minikube on Kubernetes with CRDs
Go
21
star
67

tinkerbell-ubuntu

Sample Tinkerbell workflow for Ubuntu 18.04 on Packet
Shell
20
star
68

datacenter-sensor

Sensors for the datacenter to protect against intruders and high temperatures
JavaScript
20
star
69

windowscontainers-jenkinsci

Windows Containers PoC for Server Core
20
star
70

repaint-the-past

Full instructions for repainting the past
Python
19
star
71

nicehash-overwatch

Keep an eye on your stats with the Nicehash mining pool
JavaScript
19
star
72

zumopi

Zumo robot control code for Raspberry PI and Wiimote
Python
18
star
73

comment-vibes

OpenFaaS CRUD sample with a Postgres backend and GitHub emojis as input.
Go
16
star
74

alexa-demos

Series of demos for the Amazon Alexa service
JavaScript
14
star
75

alexa-blinkt

JavaScript
14
star
76

tinkerbot

ChatOps for Tinkerbell
Go
13
star
77

PlanningPoker

PlanningPoker for estimating story points in SCRUM
HTML
13
star
78

mqtt-to-s3

mqtt-s3-example
Python
13
star
79

express-middleware-sinon

Express middleware with Sinon testing
JavaScript
13
star
80

lambda-on-openfaas-poc

A PoC for running Lambda functions unmodified on OpenFaaS
Go
12
star
81

multiarch-templates

Multi-arch templates for OpenFaaS
JavaScript
12
star
82

workflow-yaml-template

Rudimentary YAML workflow runner for OpenFaaS
Go
12
star
83

minty

Minting OIDC tokens from GitHub Actions for use with OpenFaaS
Go
11
star
84

release-it

CI example from Everyday Golang
Makefile
10
star
85

goto

My URL shortener
JavaScript
10
star
86

github_counter_faas

Example FaaS stack for Raspberry Pi (ARM) to integrate with Github events.
Python
10
star
87

webhook-tester

I just use this repo for testing Github integrations.
JavaScript
9
star
88

motephat-alexa

Control Pimoroni's (Mote) homelighting kit for the Raspberry Pi through the Alexa Skills kit
Python
9
star
89

eyes-in-the-sky

Instructions and Dockerfiles for tracking flights with your Raspberry Pi and a USB TV stick.
9
star
90

php7-swoole-template

OpenFaaS PHP7 template using Swoole
PHP
9
star
91

bulk-twitter-follow

Follow a bulk list of people on Twitter using the API
Python
9
star
92

restic-minio-civo-learn-guide

Backup your data using Restic, Minio, and Civo
9
star
93

locust-openfaas

Locust load-testing tool on OpenFaaS
Python
8
star
94

kubecon-blog

My blog about my KubeCon talk, also my demo
Go
8
star
95

scroll-phat-node

Work-in-progress node.js library for Pimorani's scrollPhat
JavaScript
8
star
96

captains-list

Gives a list of Docker Captain Twitter handles
HTML
8
star
97

mailbox

mailbox: a dead-letter queue for NATS Streaming
Go
8
star
98

arkade-get

Get all the CLIs you need from arkade for a GitHub Action
JavaScript
8
star
99

updateip

Update your Namecheap external IP with Dynamic DNS
Go
8
star
100

pimeter

Smart energy usage meter for Raspberry PI
JavaScript
7
star