https://github.com/mikeroyal/Raspberry-Pi-Guide
Raspberry Pi Guide. Learn all about the Raspberry Pi and other cool tools such as Tailscale, WireGuard, Home Assistant, Homebridge, ESPHome, and Watchdog timer.
https://github.com/mikeroyal/Raspberry-Pi-Guide
esphome home-assistant homebridge homekit-bridge homelab kodi pi-hole pikvm plex raspberry-pi raspberry-pi-4 raspberrypi sbc self-hosted self-hosting selfhosted tailscale tailscale-server wireguard
Last synced: 4 months ago
JSON representation
Raspberry Pi Guide. Learn all about the Raspberry Pi and other cool tools such as Tailscale, WireGuard, Home Assistant, Homebridge, ESPHome, and Watchdog timer.
- Host: GitHub
- URL: https://github.com/mikeroyal/Raspberry-Pi-Guide
- Owner: mikeroyal
- Created: 2021-01-03T18:53:22.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-01-04T22:40:05.000Z (over 2 years ago)
- Last Synced: 2025-05-20T06:06:00.361Z (about 1 year ago)
- Topics: esphome, home-assistant, homebridge, homekit-bridge, homelab, kodi, pi-hole, pikvm, plex, raspberry-pi, raspberry-pi-4, raspberrypi, sbc, self-hosted, self-hosting, selfhosted, tailscale, tailscale-server, wireguard
- Language: Shell
- Homepage:
- Size: 224 KB
- Stars: 266
- Watchers: 9
- Forks: 18
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: Contributing.md
- Security: Security Glossary.md
Awesome Lists containing this project
README
Raspberry Pi Guide


#### A guide covering Raspberry Pi devices such as the Raspberry Pi 4 Model B and Raspberry Pi 400. Along with a wide variety of operating systems that you can install on your Raspberry Pi device. Also, learn about cool projects that you can build with your Raspberry Pi device.
**Note: You can easily convert this markdown file to a PDF in [VSCode](https://code.visualstudio.com/) using this handy extension [Markdown PDF](https://marketplace.visualstudio.com/items?itemName=yzane.markdown-pdf).**
# Table of Contents
1. [Models of Raspberry Pi boards](https://github.com/mikeroyal/raspberry-pi-Guide#models-of-raspberry-pi-boards)
- [Raspberry Pi 5](#raspberry-pi-5)
- [Raspberry Pi 4 Model B](#raspberry-pi-4-model-b)
- [Raspberry Pi 400](#raspberry-pi-400-personal-computer-kit)
- [Raspberry Pi Zero 2 W](#raspberry-pi-zero-2-w)
- [Raspberry Pi Pico Microcontroller](#raspberry-pi-pico-microcontroller)
- [Raspberry Pi Pico W](#raspberry-pi-pico-w)
- [Raspberry Pi Pico H](#raspberry-pi-pico-h)
- [Raspberry Pi RP2040](#raspberry-pi-rp2040)
2. [Raspberry Pi Learning Resources](https://github.com/mikeroyal/raspberry-pi-Guide#raspberry-pi-learning-resources)
- [Books](#books)
- [Podcasts](#podcasts)
- [YouTube Channels](#youtube-channels)
3. [Raspberry Pi Operating Systems](https://github.com/mikeroyal/raspberry-pi-Guide#raspberry-pi-operating-systems)
4. [Raspberry Pi Tools](https://github.com/mikeroyal/raspberry-pi-Guide#raspberry-pi-tools)
- [File systems](#file-systems)
- [Tools for Home Automation](#Tools-for-Home-Automation)
- [Getting Started with Home Assistant(HA)](#Home-Assistant)
- [Getting Started with Homebridge](#Homebridge)
- [Getting Started with ESPHome](#ESPHome)
- [Turning Raspberry Pi into a Router](https://github.com/mikeroyal/raspberry-pi-Guide#Turning-Raspberry-Pi-into-a-Router)
- [Setting up Watchdog Time (WDT) on Raspberry Pi](https://github.com/mikeroyal/Raspberry-Pi-Guide#setting-watchdog-timer-wdt-on-raspberry-pi)
5. [Raspberry Pi Upgrades](https://github.com/mikeroyal/Raspberry-Pi-Guide#raspberry-pi-upgrades)
6. [Getting Software](https://github.com/mikeroyal/Raspberry-Pi-Guide#getting-software)
7. [Using Android Apps on Raspberry Pi](https://github.com/mikeroyal/Raspberry-Pi-Guide#using-android-apps-on-raspberry-pi)
8. [Gaming](https://github.com/mikeroyal/Raspberry-Pi-Guide#gaming)
- [Steam](https://github.com/mikeroyal/Raspberry-Pi-Guide#steam)
- [ProtonDB](https://github.com/mikeroyal/Raspberry-Pi-Guide#protondb)
- [Lutris](https://github.com/mikeroyal/Raspberry-Pi-Guide#lutris)
- [GameHub](https://github.com/mikeroyal/Raspberry-Pi-Guide#gamehub)
- [Heroic Game Launcher](https://github.com/mikeroyal/Raspberry-Pi-Guide#heroic-games-launcher)
- [Game Streaming](https://github.com/mikeroyal/Raspberry-Pi-Guide#game-streaming)
- [Game Emulators](https://github.com/mikeroyal/Raspberry-Pi-Guide#game-emulators)
9. [Home Media Server](https://github.com/mikeroyal/Raspberry-Pi-Guide#home-media-server)
10. [WireGuard](https://github.com/mikeroyal/Raspberry-Pi-Guide#wireguard)
11. [Nextcloud](https://github.com/mikeroyal/Raspberry-Pi-Guide#nextcloud)
12. [Grafana](https://github.com/mikeroyal/Raspberry-Pi-Guide#Grafana)
13. [Kubernetes](https://github.com/mikeroyal/Raspberry-Pi-Guide#kubernetes)
14. [Machine Learning](https://github.com/mikeroyal/Raspberry-Pi-Guide#machine-learning)
15. [Robotics](https://github.com/mikeroyal/Raspberry-Pi-Guide#robotics)
16. [Node.js Development](https://github.com/mikeroyal/Raspberry-Pi-Guide#nodejs-development)
17. [Java Development](https://github.com/mikeroyal/Raspberry-Pi-Guide#java-development)
18. [Python Development](https://github.com/mikeroyal/Raspberry-Pi-Guide#python-development)
19. [Rust Development](https://github.com/mikeroyal/Raspberry-Pi-Guide#rust-development)
20. [TypeScript Development](https://github.com/mikeroyal/Raspberry-Pi-Guide#typescript-development)
21. [HMTL/CSS Development](https://github.com/mikeroyal/Raspberry-Pi-Guide#hmtlcss-development)
22. [Ruby Development](https://github.com/mikeroyal/Raspberry-Pi-Guide#ruby-development)
23. [PHP Development](https://github.com/mikeroyal/Raspberry-Pi-Guide#php-development)
# Models of Raspberry Pi boards
[Back to the Top](#table-of-contents)
## Raspberry Pi 5

Raspberry Pi 5 board. Image credit: [Raspberry Pi](https://www.raspberrypi.com/news/introducing-raspberry-pi-5/)
* [Raspberry Pi Approved Resellers](https://www.raspberrypi.com/resellers/)
* [Get your Raspberry Pi 5 first | HackSpace](http://hsmag.cc/priorityboarding)
* [Priority Boarding - get your Raspberry Pi 5 first | The MagPi](https://magpi.raspberrypi.com/articles/priorityboarding)
[](https://www.youtube.com/watch?v=yul4gq_LrOI)
[](https://www.youtube.com/watch?v=oo5wb4LDWW4)
[](https://www.youtube.com/watch?v=nBtOEmUqASQ)
[The Raspberry Pi 5](https://www.raspberrypi.com/news/introducing-raspberry-pi-5/) has a 16nm Broadcom BCM2712 (Arm Cortex-A76 quad-core 64-bit CPU @ 2.4 GHz), which is 2-3 times faster than the [Raspberry Pi 4 (Arm Cortex A72—a)](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/). The GPU is a [Broadcom VideoCore VII](https://en.wikipedia.org/wiki/VideoCore), capable of driving dual 4K/60 Hz HDMI displays, and it comes with open source [Mesa drivers](https://mesa3d.org/).
|Raspberry Pi 5 Full Hardware Specs ||
|--------------|:-----------:|
|ISA | ARMv8.2-A (64-bit)|
|Microarchitecture| Cortex-A76|
|Core name | Cortex-A76 |
|Family | BCM |
|Part number(s), S-Spec| BCM2712|
|Lithography | 16 nm|
|Cores| 4|
|Threads| 4|
|Base frequency| 1.5 GHz|
|Turbo frequency| 2.4 GHz|
|Details | 4x ARM Cortex-A76 @ 1.5 / 2.4 GHz|
|Cache memory | 2 MB |
|Max memory | 8 GB |
|Memory types | LPDDR4X-4267 SDRAM (4GB and 8GB SKUs available at launch)|
|Max memory bandwidth | 13.7 GB/s|
|Max PCIe lanes | 1 |
|TDP | 12 W |
|GPU integrated graphics | [Broadcom VideoCore VII](https://en.wikipedia.org/wiki/VideoCore), supporting OpenGL ES 3.1, Vulkan 1.2|
|GPU execution units | 4 |
|GPU shading units | 64 |
|GPU clock | 800 MHz |
|GPU FP32 floating point | 51.2 GFLOPS |
|Socket | SoC |
|Drystone MIPS | 110,880 DMIPS |
|Max display resolution | Dual 4Kp60 HDMI® display output with HDR support|
|Video decoding | H.265 4K@60fps, H.264 1080p@60fps|
|Video encoding |-|
|Max video capture | MIPI CSI |
|Modem | Gigabit Ethernet Broadcom BCM54213PE|
|Connectivity | USB 2.0, USB 3.0, HDMI 2.0|
|Wi-Fi | Wi-Fi 5 802.11 ac |
|Bluetooth | Bluetooth 5.0, LE|
|Audio | I2S|
#### Raspberry Pi 5 Benchmarks

Raspberry Pi 5 Benchmark score. Image Credit: [GadgetVersus](https://gadgetversus.com/processor/broadcom-bcm2712-specs/)
## Raspberry Pi 4 Model B
[Back to the Top](#table-of-contents)
[Check out the Raspberry Pi 4](https://www.raspberrypi.org/products/raspberry-pi-4-model-b/)
**Raspberry Pi 4 Model B Hardware Specifications**
- Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
- 2GB, 4GB or 8GB LPDDR4-3200 SDRAM (depending on model)
- 2.4 GHz and 5.0 GHz IEEE 802.11ac wireless
- Bluetooth 5.0, BLE
- Gigabit Ethernet
- 2 USB 3.0 ports; 2 USB 2.0 ports.
- Raspberry Pi standard 40 pin GPIO header (fully backwards compatible with previous Pi boards)
- 2 × micro-HDMI ports (up to 4kp60 supported)
- OpenGL ES 3.0 graphics
## Raspberry Pi 400 Personal Computer Kit
[Back to the Top](#table-of-contents)
[Check out the Raspberry Pi 400 Personal Computer Kit](https://www.raspberrypi.org/products/raspberry-pi-400/)
**Raspberry Pi 400 Hardware Specifications**
- Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.8GHz
- 4GB LPDDR4-3200 SDRAM
- 2.4 GHz and 5.0 GHz IEEE 802.11ac wireless
- Bluetooth 5.0, BLE
- Gigabit Ethernet
- 2 USB 3.0 ports; 2 USB 2.0 ports.
- Raspberry Pi standard 40 pin GPIO header
- 2 × micro-HDMI ports (up to 4kp60 supported)
- OpenGL ES 3.0 graphics
## Raspberry Pi Zero 2 W
[Back to the Top](#table-of-contents)
[Raspberry Pi Zero 2 W](https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/) is RP3A0, a custom-built system-in-package designed by Raspberry Pi in the UK. With a quad-core 64-bit ARM Cortex-A53 processor clocked at 1GHz and 512MB of SDRAM, Zero 2 is up to five times as fast as the original Raspberry Pi Zero.
[Check out the Raspberry Pi Zero 2 W](https://www.raspberrypi.org/products/raspberry-pi-zero-2-w/)
**Raspberry Pi Zero 2 W Hardware Specifications:**
- 1GHz quad-core 64-bit Arm Cortex-A53 CPU
- 512MB SDRAM
- 2.4GHz 802.11 b/g/n wireless LAN
- Bluetooth 4.2, Bluetooth Low Energy (BLE), onboard antenna
- Mini HDMI port and micro USB On-The-Go (OTG) port
- microSD card slot
- CSI-2 camera connector
- HAT-compatible 40-pin header footprint (unpopulated)
- H.264, MPEG-4 decode (1080p30); H.264 encode (1080p30)
- OpenGL ES 1.1, 2.0 graphics
- Micro USB power
## Raspberry Pi Pico Microcontroller
[Back to the Top](#table-of-contents)
[Check out the Raspberry Pi Pico](https://www.raspberrypi.org/products/raspberry-pi-pico/)
**Raspberry Pi Pico Hardware Specifications**
- RP2040 microcontroller chip designed by Raspberry Pi in the UK
- Dual-core Arm Cortex-M0+ processor, flexible clock running up to 133 MHz
- 264KB on-chip SRAM
- 2MB on-board QSPI Flash
- 26 multifunction GPIO pins, including 3 analogue inputs
- 2 × UART, 2 × SPI controllers, 2 × I2C controllers, 16 × PWM channels
- 1 × USB 1.1 controller and PHY, with host and device support
- 8 × Programmable I/O (PIO) state machines for custom peripheral support
- Castellated module allows soldering direct to carrier boards
- Drag-and-drop programming using mass storage over USB
- Low-power sleep and dormant modes
- Accurate on-chip clock
- Temperature sensor
- Accelerated integer and floating-point libraries on-chip
## Raspberry Pi Pico W
[Back to the Top](#table-of-contents)
[Raspberry Pi Pico W](https://www.raspberrypi.com/news/raspberry-pi-pico-w-your-6-iot-platform/) is just like the classic Pico but adds on-board single-band 2.4GHz wireless interfaces (802.11n) using the Infineon CYW4343 while retaining the Pico form factor.
[Checkout the Raspberry Pi Pico W](https://www.raspberrypi.com/products/raspberry-pi-pico/)
**Raspberry Pi Pico W Hardware Specifications:**
- Dual-core Arm Cortex-M0+ processor, flexible clock running up to 133 MHz
- 264kB on-chip SRAM
- 2 × UART, 2 × SPI controllers, 2 × I2C controllers, 16 × PWM channels
- 1 × USB 1.1 controller and PHY, with host and device support
- 8 × Programmable I/O (PIO) state machines for custom peripheral support
- Supported input power 1.8–5.5V DC
- Operating temperature -40°C to +85°C
- Drag-and-drop programming using mass storage over USB
- Low-power sleep and dormant modes
- Accurate on-chip clock
- Temperature sensor
## Raspberry Pi Pico H
[Back to the Top](#table-of-contents)
[Raspberry Pi Pico H](https://www.raspberrypi.com/news/raspberry-pi-pico-w-your-6-iot-platform/) is just like the classic Pico but now comes with pre-soldered headers. A [3-pin JTAG connector](https://datasheets.raspberrypi.com/debug/debug-connector-specification.pdf) is now pre-soldered for debugging.
[Checkout the Raspberry Pi Pico H](https://www.raspberrypi.com/products/raspberry-pi-pico/)
**Raspberry Pi Pico H Hardware Specifications:**
- Dual-core Arm Cortex-M0+ processor, flexible clock running up to 133 MHz
- 264kB on-chip SRAM
- 2 × UART, 2 × SPI controllers, 2 × I2C controllers, 16 × PWM channels
- 1 × USB 1.1 controller and PHY, with host and device support
- 8 × Programmable I/O (PIO) state machines for custom peripheral support
- Supported input power 1.8–5.5V DC
- Operating temperature -40°C to +85°C
- Drag-and-drop programming using mass storage over USB
- Low-power sleep and dormant modes
- Accurate on-chip clock
- Temperature sensor
## Raspberry Pi RP2040
[Back to the Top](#table-of-contents)
[RP2040](https://www.raspberrypi.com/products/rp2040/) is a microcontroller chip designed by Raspberry Pi.
[Checkout the Raspberry RP2040](https://www.raspberrypi.com/products/raspberry-pi-pico/)
**Raspberry Pi RP2040 Hardware Specifications:**
- Dual-core Arm Cortex-M0+ processor, flexible clock running up to 133 MHz
- 264kB on-chip SRAM
- 2 × UART, 2 × SPI controllers, 2 × I2C controllers, 16 × PWM channels
- 1 × USB 1.1 controller and PHY, with host and device support
- 8 × Programmable I/O (PIO) state machines for custom peripheral support
- Supported input power 1.8–5.5V DC
- Operating temperature -40°C to +85°C
- Drag-and-drop programming using mass storage over USB
- Low-power sleep and dormant modes
- Accurate on-chip clock
- Temperature sensor
**Raspberry Pi OS. The default Operating System for every Raspberry Pi device**
[Check out Raspberry Pi OS](https://www.raspberrypi.org/software/operating-systems/)

# Raspberry Pi Learning Resources
[Back to the Top](#table-of-contents)
[Raspberry Pi](https://www.raspberrypi.org/) is an ARM powered single board computer(SBC) that is the size of a credit card and costs around $35.
[Raspberry Pi Foundation](https://www.raspberrypi.org/about/) is a UK-based charity that works to put the power of computing and digital making into the hands of people all over the world.
[Getting Started with Raspberry Pi Projects](https://projects.raspberrypi.org/)
[Online learning for the Raspberry Pi](https://www.raspberrypi.org/training/online/)
[Raspberry Pi Training Program](https://www.raspberrypi.org/training/)
[Raspberry Pi Online Courses on Udemy](https://www.udemy.com/topic/raspberry-pi/)
[Raspberry Pi Online Courses on Coursera](https://www.coursera.org/courses?languages=en&query=raspberry%20pi)
[The Raspberry Pi Platform and Python Programming course on Coursera](https://www.coursera.org/learn/raspberry-pi-platform)
[Learning Raspberry Pi with Online Courses on edX](https://www.edx.org/learn/raspberry-pi)
[Raspberry Pi Online Training Courses on LinkedIn Learning](https://www.linkedin.com/learning/topics/raspberry-pi)
[Getting Started with Raspberry Pi course on FutureLearn](https://www.futurelearn.com/courses/getting-started-with-your-raspberry-pi)
[Home Assistant on Raspberry Pi](https://www.home-assistant.io/getting-started/)
[PiSwitch: Build your own Nintendo Switch-style console](https://magpi.raspberrypi.org/articles/piswitch-nintendo-switch-console)
[How to set Watchdog Timer on Raspberry Pi | IoT Assistant](https://iotassistant.io/raspberry-pi/how-to-set-watchdog-timer-raspberrypi/)
[Writing to file on RAM Disk on Raspberry Pi | IoT Assistant](https://iotassistant.io/raspberry-pi/writing-to-file-on-ram-disk-on-raspberry-pi/)
### Books
- [The Official Raspberry Pi Handbook (2022)](https://magpi.raspberrypi.com/books/handbook-2022)
- [The Official Raspberry Pi Handbook (2021)](https://magpi.raspberrypi.com/books/handbook-2021)
- [Raspberry Pi Beginner's Book 1](https://magpi.raspberrypi.com/books/beginners-1)
- [Raspberry Pi Beginner's Guide for **Raspberry Pi 3B+**](https://magpi.raspberrypi.com/books/beginners-guide)
- [Raspberry Pi Beginner's Guide v2 for **Raspberry Pi 4**](https://magpi.raspberrypi.com/books/beginners-guide-2nd-ed) -
- [Raspberry Pi Beginner's Guide v3 for **Raspberry Pi 4**](https://magpi.raspberrypi.com/books/beginners-guide-3rd-ed)
- [Raspberry Pi Beginner's Guide v4 for **Raspberry Pi 4 and Raspberry Pi 400**](https://magpi.raspberrypi.com/books/beginners-guide-4th-ed)
- [Raspberry Pi Projects Book v1](https://magpi.raspberrypi.com/books/projects-1)
- [Raspberry Pi Projects Book v2](https://magpi.raspberrypi.com/books/projects-2)
- [Raspberry Pi Projects Book v3](https://magpi.raspberrypi.com/books/projects-3)
- [Raspberry Pi Projects Book v4](https://magpi.raspberrypi.com/books/projects-4)
- [Raspberry Pi Projects Book v5](https://magpi.raspberrypi.com/books/projects-5)
- [Retro Gaming with Raspberry Pi](https://magpi.raspberrypi.com/books/retro-gaming)
- [Raspberry Pi Camera Guide](https://magpi.raspberrypi.com/books/camera-guide)
- [Raspberry Pi Essentials - GPIO Zero Electronics](https://magpi.raspberrypi.com/books/essentials-gpio-zero-v1)
- [Raspberry Pi Essentials - Learn to Code with Scratch](https://magpi.raspberrypi.com/books/essentials-scratch-v1)
- [Raspberry Pi Essentials - Make Games with Python](https://magpi.raspberrypi.com/books/essentials-games-vol1)
- [Raspberry Pi Essentials - Learn to Code with C](https://magpi.raspberrypi.com/books/essentials-c-v1)
- [Raspberry Pi Essentials - Making with Minecraft](https://magpi.raspberrypi.com/books/essentials-minecraft-v1)
### Podcasts
[Back to the Top](#table-of-contents)
- [HomeTech](https://www.hometech.fm/about)
- [Home Assistant](https://hasspodcast.io/episodes/)
- [HomeKit Insider](https://www.listennotes.com/podcasts/homekit-insider-appleinsider-y-ZPnq5l1B_/)
- [Home Tech Talk](https://www.hometechtalk.com.au/)
- [Self-Hosted Podcast](https://selfhosted.show/)
- [Self-Hosted SRE(Site Reality Engineer) Podcast](https://sshsre.fireside.fm/)
- [The Digital Lifestyle Show](https://podcasts.apple.com/us/podcast/the-digital-lifestyle-show/id217932939)
- [Linux Weekly Daily Wednesday](https://podcasts.apple.com/us/podcast/linux-weekly-daily-wednesday/id1316136728)
- [SBCGaming Podcast](https://podcasts.apple.com/us/podcast/sbcgaming-podcast/id1531624751)
- [Adafruit Industries Podcast](https://podcasts.apple.com/us/podcast/adafruit-industries/id1086346278)
### YouTube Channels
[Back to the Top](#table-of-contents)
- [Raspberry Pi](https://www.youtube.com/c/raspberrypi)
- [Jeff Geerling](https://www.youtube.com/c/JeffGeerling)
- [Level1Techs](https://www.youtube.com/c/Level1Techs)
- [Open Source is Awesome](https://www.youtube.com/c/AwesomeOpenSource)
- [Self-Hosted Show by Jupiter Broadcasting](https://www.youtube.com/watch?v=XBhhVHVQ148&list=PLUW3LUwQvegxit4XMxUNW3qrRFmgP_aaT)
- [Techno Tim](https://www.youtube.com/c/TechnoTimLive)
- [Raid Owl](https://www.youtube.com/c/RaidOwl)
- [NextCloud](https://www.youtube.com/c/Nextcloud)
- [Wolfgang's Channel](https://www.youtube.com/c/WolfgangsChannel)
- [Pro Tech Show](https://www.youtube.com/c/ProTechShow)
- [Geeked](https://www.youtube.com/c/GeekedTV)
- [The Tinker Dad](https://www.youtube.com/c/TheTinkerDad)
- [DB Tech](https://www.youtube.com/c/DBTechYT)
- [The Digital Life](https://www.youtube.com/c/TheDigitalLifeTech)
- [censiCLICK](https://www.youtube.com/c/censiCLICK)
- [Home Network Geek](https://www.youtube.com/channel/UCCniXOLmZ85FHN8c8K_c0LA/featured)
# Raspberry Pi Operating Systems
[Back to the Top](https://github.com/mikeroyal/raspberry-pi-Guide/blob/main/README.md#table-of-contents)
[Raspberry Pi OS](https://www.raspberrypi.org/software/operating-systems/)
[Hass.io(Home Assistant OS)](https://www.home-assistant.io/hassio/installation/)
[Umbrel](https://umbrel.com/)
[OmniROM(Android 11) based on ASOP](https://forum.xda-developers.com/t/omnirom-android-r-11-for-pi-4.4183121/)
[Manjaro Linux ARM](https://manjaro.org/download/#ARM)
[Arch Linux ARM](https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-4)
[Ubuntu MATE for Raspberry Pi](https://ubuntu-mate.org/ports/raspberry-pi/)
[Ubuntu Desktop for Raspberry Pi](https://ubuntu.com/raspberry-pi)
[Ubuntu Core on a Raspberry Pi](https://ubuntu.com/download/raspberry-pi-core)
[Ubuntu Server for ARM](https://ubuntu.com/download/server/arm)
[Fedora ARM](https://arm.fedoraproject.org)
[Kali Linux for the Raspberry Pi](https://www.kali.org/docs/arm/kali-linux-raspberry-pi/)
[Twister OS](https://twisteros.com/)
[TitusPi](https://github.com/ChrisTitusTech/TitusPi)
[RetroArch](https://www.retroarch.com/?page=platforms)
[RetroPie](https://retropie.org.uk/)
[LibreELEC](https://libreelec.tv/)
[OSMC](https://osmc.tv)
[RISC OS](https://www.riscosopen.org/content/)
[DietPi](https://github.com/MichaIng/DietPi)
# Raspberry Pi Tools
[Back to the Top](https://github.com/mikeroyal/raspberry-pi-Guide/blob/main/README.md#table-of-contents)
[Raspberry Pi Imager](https://www.raspberrypi.org/software/) is the quick and easy way to install Raspberry Pi OS and other operating systems to a microSD card, ready to use with your Raspberry Pi.
[Raspberry Pi Locator](https://rpilocator.com/) is a website to track Raspberry Pi 4 model B, Compute Module 4, Pi Zero 2 W, and Pico availability across multiple retailers in different countries.
[Raspberry Pi Network Install (Beta)](https://www.raspberrypi.com/documentation/computers/getting-started.html#installing-over-the-network-beta) is a feature can be used to start the Raspberry Pi Imager application directly on a Raspberry Pi 4, or a Raspberry Pi 400, by downloading it from the internet using an Ethernet cable. The Raspberry Pi Imager application, which will run in memory on your Raspberry Pi, can then be used to flash the operating system onto a blank SD Card or USB disk, just like normal.
[Raspberry Pi Bootloader](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#updating-the-bootloader) is a feature, which is now available in beta, that utilize an **EEPROM(Electrically Erasable Programmable Read-Only Memory)** to store the system’s bootloader. This EEPROM is persistent storage that is located on the Pi’s mainboard. The advantage of using the EEPROM instead is that the Raspberry Pi 4 can perform tasks without needing any storage to be attached.
[Pi-Apps](https://github.com/Botspot/pi-apps) is a Raspberry Pi App Store for Open Source Projects.
[Backup Raspberry Pi Server](https://github.com/geerlingguy/backup-pi) is an Ansible configuration to set up a Raspberry Pi as a backup server for storing backups of data from other servers (e.g. webroots, files, and databases). This project is developed and maintained by [Jeff Geerling](https://github.com/geerlingguy).
[RaspiBackup](https://github.com/framps/raspiBackup) is a tool that backups and restores your running Raspberry.
[Proxmox VE](https://www.home-assistant.io/integrations/proxmoxve/) is an open-source server virtualization environment.
[Pimox](https://github.com/pimox/pimox7) is a port of Proxmox to the Raspberry Pi allowing you to build a Proxmox cluster of Rapberry Pi's or even a hybrid cluster of Pis and x86 hardware.
[PiKVM](https://github.com/pikvm/pikvm) is a very simple and fully functional Raspberry Pi-based KVM over IP.
[Pi-hole](https://pi-hole.net/) is a [DNS sinkhole](https://en.wikipedia.org/wiki/DNS_Sinkhole) that protects your devices from unwanted content, without installing any client-side software, intended for use on a private network. It is designed for use on embedded devices with network capability, such as the Raspberry Pi, but it can be used on other machines running Linux and cloud implementations.
[Kubernetes on ARM](https://github.com/luxas/kubernetes-on-arm) is a tool to get your ARM device up and running Kubernetes in less than ten minutes.
[Uptime Kuma](https://uptime.kuma.pet/) is a self-hosted monitoring tool like "Uptime Robot".
[k8sup](https://k3sup.dev/) is a tool that uses ssh to install k3s to a remote Linux host. You can also use it to join existing Linux hosts into a k3s cluster as agents.
[arkade](https://github.com/alexellis/arkade) is an Open Source Marketplace For Kubernetes letting developers install the latest versions of their favourite tools and Kubernetes apps.
[Etcher](https://www.balena.io/etcher/) is an open source, cross-platform software that makes it easy to flash operating system images to a microSD card or USB device.
[PiShrink](https://github.com/Drewsif/PiShrink) is a bash script that automatically shrink a pi image that will then resize to the max size of the SD card on boot.
[Gpiozero](https://github.com/gpiozero/gpiozero) is a simple interface to GPIO(General-Purpose Input/Output) devices with the Raspberry Pi.
## File systems
[Back to the Top](#table-of-contents)
[GlusterFS](https://www.gluster.org/) is a free and open source scalable network filesystem. Gluster is a scalable network filesystem. Using common off-the-shelf hardware, you can create large, distributed storage solutions for media streaming, data analysis, and other data- and bandwidth-intensive tasks.
[Ceph](https://ceph.io/) is a software-defined storage solution designed to address the object, block, and file storage needs of data centers adopting open source as the new norm for high-growth block storage, object stores and data lakes. Ceph provides enterprise scalable storage while keeping [CAPEX](https://corporatefinanceinstitute.com/resources/knowledge/modeling/how-to-calculate-capex-formula/) and [OPEX](https://www.investopedia.com/terms/o/operating_expense.asp) costs in line with underlying bulk commodity disk prices.
[Hadoop Distributed File System (HDFS)](https://www.ibm.com/analytics/hadoop/hdfs) is a distributed file system that handles large data sets running on commodity hardware. It is used to scale a single Apache Hadoop cluster to hundreds (and even thousands) of nodes. HDFS is one of the major components of Apache Hadoop, the others being [MapReduce](https://www.ibm.com/analytics/hadoop/mapreduce) and [YARN](https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html).
[ZFS](https://docs.oracle.com/cd/E19253-01/819-5461/zfsover-2/) is an enterprise-ready open source file system and volume manager with unprecedented flexibility and an uncompromising commitment to data integrity.
[OpenZFS](https://openzfs.org/wiki/Main_Page ) is an open-source storage platform. It includes the functionality of both traditional file systems and volume manager. It has many advanced features including:
- Protection against data corruption.
- Integrity checking for both data and metadata.
- Continuous integrity verification and automatic "self-healing" repair.
[Btrfs](https://btrfs.wiki.kernel.org/index.php/Main_Page) is a modern copy on write (CoW) filesystem for Linux aimed at implementing advanced features while also focusing on fault tolerance, repair and easy administration. Its main features and benefits are:
- Snapshots which do not make the full copy of files
- RAID - support for software-based RAID 0, RAID 1, RAID 10
- Self-healing - checksums for data and metadata, automatic detection of silent data corruptions
[MergerFS](https://github.com/trapexit/mergerfs) is a union filesystem geared towards simplifying storage and management of files across numerous commodity storage devices. It is similar to mhddfs, unionfs, and aufs.
**MergerFS Features**
- Configurable behaviors / file placement
- Ability to add or remove filesystems at will
- Resistance to individual filesystem failure
- Support for extended attributes (xattrs)
- Support for file attributes (chattr)
- Runtime configurable (via xattrs)
- Works with heterogeneous filesystem types
- Moving of file when filesystem runs out of space while writing
- Ignore read-only filesystems when creating files
- Turn read-only files into symlinks to underlying file
- Hard link copy-on-write / CoW
- Support for POSIX ACLs
[Bcachefs](https://bcachefs.org/) is an advanced new filesystem for Linux, with an emphasis on reliability and robustness and the complete set of features one would expect from a modern filesystem. Scalability has been tested to 50+ TB, will eventually scale far higher.
[Squashfs](https://www.kernel.org/doc/html/latest/filesystems/squashfs.html) is a compressed read-only filesystem for Linux. It uses zlib, lz4, lzo, or xz compression to compress files, inodes and directories. Inodes in the system are very small and all blocks are packed to minimize data overhead.
[NTFS(New Technology File System)](https://docs.microsoft.com/en-us/windows-server/storage/file-server/ntfs-overview) is the primary file system for recent versions of Windows and Windows Server—provides a full set of features including security descriptors, encryption, disk quotas, and rich metadata, and can be used with Cluster Shared Volumes (CSV) to provide continuously available volumes that can be accessed simultaneously from multiple nodes of a failover cluster.
[exFAT(Extended File Allocation Table )](https://docs.microsoft.com/en-us/windows/win32/fileio/exfat-specification) is the file system that was the successor to FAT32 in the FAT family of file systems. It was optimized for flash memory such as USB flash drives and SD cards.
## Tools for Home Automation
[Back to the Top](https://github.com/mikeroyal/raspberry-pi-Guide/blob/main/README.md#table-of-contents)
[Home Assistant](https://www.home-assistant.io/) is an open source home automation that puts local control and privacy first. Home Assistant is powered by a worldwide community of tinkerers and DIY enthusiasts that runs great on Raspberry Pi.
[ESPHome](https://esphome.io/) is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
Automation systems.
[Shelly Cloud](https://shelly.cloud/) is a Smart home control tool that has been perfected and provides precise monitoring of your Shelly devices no matter where you are. Shelly devices are compatible with Alexa, Google Home, Android, and iOS.
[Plex media server](https://www.plex.tv/) is a application that gives you the power to add, access and share all the entertainment that matters to you, on almost any device. With 50,000+ on demand titles and hundreds of channels of live TV, plus your own personal media collection, using one powerful app.
[Amazon Alexa](https://alexa.amazon.com/) is a smart virtual assistant software to manage Alexa-enabled devices, control music playback, view shopping lists on the go, keep track of upcoming reminders, check on active timers and much more.
[Google Assistant](https://assistant.google.com/) is a smart virtual assistant software on mobile and home automation devices.
[Apple HomeKit](https://www.apple.com/shop/accessories/all/homekit) is a software framework that enables your app to coordinate and control home automation accessories from multiple vendors to present a coherent, user-focused interface. Using HomeKit, your app can: Discover HomeKit-compatible automation accessories and add them to a persistent, cross-device home configuration database.
[Samsung SmartThings](https://www.smartthings.com/) is a sofwtare frmaeowrk that you can connect, monitor and control multiple smart home devices quicker and easier. Connect your Samsung smart TVs, smart appliances, smart speakers and brands like Ring, Nest and Philips Hue all from one app.
[Ecobee](https://www.ecobee.com) is a home automation company in Canada that makes thermostats for residential and commercial use.
[Lutron Caséta](https://www.lutron.com/en-US/Products/Pages/SingleRoomControls/CasetaWireless/Overview.aspx) is a smart lighting control system that is a great solution for giving any client smart lighting control. It was purposely built to work in homes of all ages and it works with older wiring as well as new.
[Philips Hue](https://www.philips-hue.com) is a smart lighting system. The smart lights, Hue Bridge, and smart controls will forever change the way you experience light.
[Sonos](https://www.sonos.com) is the wireless home sound system that fills as many rooms as you want with great-sounding music, movies, and TV.
[MQTT](https://mqtt.org/) is an [OASIS standard](https://www.oasis-open.org/standards/) messaging protocol for the Internet of Things (IoT). It is designed as an extremely lightweight publish/subscribe messaging transport that is ideal for connecting remote devices with a small code footprint and minimal network bandwidth.
[Zigbee](https://csa-iot.org/all-solutions/zigbee/) is the full-stack, secure, reliable, and market-proven solution used by a majority of large smart home ecosystem providers, such as Amazon's Echo Plus, Samsung SmartThings, Signify (Philips Hue), and more.
[openHAB](https://github.com/openhab) is a cross-platform software with the aim to integrate all kinds of Smart Home technologies, devices, etc.
[Z-Wave](https://www.z-wave.com/) is the leading wireless communications protocol behind many of the secure, trusted brands that are working to make everyone's home smarter and safer.
[Gladys Assistant](https://github.com/gladysassistant/gladys) is a privacy-first, open-source home assistant and runs great on Raspberry Pi.
[Kodi for Raspberry Pi](https://kodi.tv/download/853) is a free and open source media player application developed by the XBMC/Kodi Foundation.
[Pi-hole](https://pi-hole.net/) is a [DNS sinkhole](https://en.wikipedia.org/wiki/DNS_Sinkhole) that protects your devices from unwanted content, without installing any client-side software, intended for use on a private network. It is designed for use on embedded devices with network capability, such as the Raspberry Pi, but it can be used on other machines running Linux and cloud implementations.
[AdGuard Home](https://github.com/AdguardTeam/AdGuardHome) is a DNS relay station with ad/tracker/other blocking, IP address redirections, and DNS-over-HTTPS.
[FreeRDP](https://github.com/FreeRDP/FreeRDP) is a free remote desktop protocol library and clients.
[Pimox](https://github.com/pimox/pimox7) is a port of Proxmox to the Raspberry Pi allowing you to build a Proxmox cluster of Rapberry Pi's or even a hybrid cluster of Pis and x86 hardware.
[PiKVM](https://github.com/pikvm/pikvm) is a very simple and fully functional Raspberry Pi-based KVM over IP.
[Rustdesk](https://rustdesk.com/) is an open source virtual/remote desktop infrastructure for everyone. Display and control your PC (Windows, macOS, and Linux) and Android devices.
[TinyPilot](https://tinypilotkvm.com/) is a tool that enables KVM over IP letting you control any computer remotely.
[PM2](https://github.com/Unitech/pm2) is a production process manager for Node.js applications with a built-in load balancer. It allows you to keep applications alive forever, to reload them without downtime and to facilitate common system admin tasks.
[authentik](https://github.com/goauthentik/authentik) is an open-source Identity Provider focused on flexibility and versatility. You can use authentik in an existing environment to add support for new protocols. authentik is also a great solution for implementing signup/recovery/etc in your application, so you don't have to deal with it.
[RPiPlay](https://github.com/FD-/RPiPlay) is an open-source implementation of an AirPlay mirroring server for the Raspberry Pi that supports iOS 9 and later.
[Lightberry](https://lightberry.eu) is a Led lighting solution dedicated for raspberry pi and your TV.
[Lomorage](https://github.com/lomorage/homepage) is a Private photo cloud host on Raspberry Pi, with Android/iOS/Web client.
[Balena Sound](https://sound.balenalabs.io/) is a single or multi-room streamer for an existing audio device using a Raspberry Pi! It supports Bluetooth, Airplay and Spotify Connect.
[OpenBalena](https://balena.io/open) is a platform to deploy and manage connected devices.
## Home Assistant
[Back to the Top](https://github.com/mikeroyal/Raspberry-Pi-Guide#table-of-contents)
[Home Assistant](https://home-assistant.io/hassio/) is a container-based system for managing your Home Assistant Core installation and related applications. The system is controlled via Home Assistant which communicates with the Supervisor. The Supervisor provides an API to manage the installation. This includes changing network settings or installing and updating software.
**Quick Links**
- [Getting Started with Home Assistant](https://home-assistant.io/getting-started)
- [Home Assistant for Raspberry Pi](https://www.home-assistant.io/installation/raspberrypi/)
- [Installing Home Assistant OS using Proxmox 7](https://github.com/Kanga-Who/home-assistant/blob/master/Home%20Assistant%20with%20Proxmox%20installation.md)
[Home Assistant Frontend](https://demo.home-assistant.io/) is a frontend for Home Assistant.
### Tools to write the HA image to your boot media(microSD card or USB device)
[Raspberry Pi Imager](https://www.raspberrypi.org/software/) is the quick and easy way to install Raspberry Pi OS and other operating systems to a microSD card, ready to use with your Raspberry Pi.
[Etcher](https://www.balena.io/etcher/) is an open source, cross-platform software that makes it easy to flash operating system images to a microSD card or USB device.
### Home Assistant integrations
Home Assistant integrations. Credit: [Home Assistant](https://www.home-assistant.io/integrations/)
[ESPHome](https://esphome.io/) is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
[Shelly Cloud](https://shelly.cloud/) is a Smart home control tool that has been perfected and provides precise monitoring of your Shelly devices no matter where you are. Shelly devices are compatible with Alexa, Google Home, Android, and iOS.
[Plex media server](https://www.plex.tv/) is a application that gives you the power to add, access and share all the entertainment that matters to you, on almost any device. With 50,000+ on demand titles and hundreds of channels of live TV, plus your own personal media collection, using one powerful app.
[Amazon Alexa](https://alexa.amazon.com/) is a smart virtual assistant software to manage Alexa-enabled devices, control music playback, view shopping lists on the go, keep track of upcoming reminders, check on active timers and much more.
[Google Assistant](https://assistant.google.com/) is a smart virtual assistant software on mobile and home automation devices.
[Apple HomeKit](https://www.apple.com/shop/accessories/all/homekit) is a software framework that enables your app to coordinate and control home automation accessories from multiple vendors to present a coherent, user-focused interface. Using HomeKit, your app can: Discover HomeKit-compatible automation accessories and add them to a persistent, cross-device home configuration database.
[Samsung SmartThings](https://www.smartthings.com/) is a sofwtare frmaeowrk that you can connect, monitor and control multiple smart home devices quicker and easier. Connect your Samsung smart TVs, smart appliances, smart speakers and brands like Ring, Nest and Philips Hue all from one app.
[Ecobee](https://www.ecobee.com) is a home automation company in Canada that makes thermostats for residential and commercial use.
[Lutron Caséta](https://www.lutron.com/en-US/Products/Pages/SingleRoomControls/CasetaWireless/Overview.aspx) is a smart lighting control system that is a great solution for giving any client smart lighting control. It was purposely built to work in homes of all ages and it works with older wiring as well as new.
[Philips Hue](https://www.philips-hue.com) is a smart lighting system. The smart lights, Hue Bridge, and smart controls will forever change the way you experience light.
[Sonos](https://www.sonos.com) is the wireless home sound system that fills as many rooms as you want with great-sounding music, movies, and TV.
[MQTT](https://mqtt.org/) is an [OASIS standard](https://www.oasis-open.org/standards/) messaging protocol for the Internet of Things (IoT). It is designed as an extremely lightweight publish/subscribe messaging transport that is ideal for connecting remote devices with a small code footprint and minimal network bandwidth.
[Zigbee](https://csa-iot.org/all-solutions/zigbee/) is the full-stack, secure, reliable, and market-proven solution used by a majority of large smart home ecosystem providers, such as Amazon's Echo Plus, Samsung SmartThings, Signify (Philips Hue), and more.
[openHAB](https://github.com/openhab) is a cross-platform software with the aim to integrate all kinds of Smart Home technologies, devices, etc.
[Z-Wave](https://www.z-wave.com/) is the leading wireless communications protocol behind many of the secure, trusted brands that are working to make everyone's home smarter and safer.
[Zwavejs2Mqtt](https://zwave-js.github.io/zwavejs2mqtt/) is a fully configurable Zwave to MQTT Gateway and Control Panel Web UI.
[Z-Wave JS Server](https://github.com/zwave-js/zwave-js-server) is a small server wrapper around Z-Wave JS to access it via a WebSocket.
[Z-Wave JS Config DB Browser](https://devices.zwave-js.io/) is the official device configuration reference to find out if your device is supported. Currently supports 387 brands, spanning at least 2075 device configurations.
## Homebridge
[Back to the Top](https://github.com/mikeroyal/raspberry-pi-Guide#table-of-contents)
[Homebridge](https://homebridge.io/) is a software frameowrk that allows you to integrate with smart home devices that do not natively support [HomeKit](https://www.apple.com/shop/accessories/all/homekit). There are over 2,000 Homebridge plugins supporting thousands of different smart accessories.
- [Official Homebridge Raspberry Pi Image](https://github.com/homebridge/homebridge-raspbian-image/wiki/Getting-Started)
- [Setup Homebridge on a Raspberry Pi (Raspbian)](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Raspbian)
- [Setup Homebridge on Debian or Ubuntu](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Debian-or-Ubuntu-Linux)
- [Setup Homebridge on Red Hat, CentOS Stream or Fedora](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Red-Hat%2C-CentOS-or-Fedora-Linux)
- [Setup Homebridge on Docker (Linux)](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Docker)
### Tools to write the Homebridge image to your boot media(microSD card or USB device)
[Raspberry Pi Imager](https://www.raspberrypi.org/software/) is the quick and easy way to install Raspberry Pi OS and other operating systems to a microSD card, ready to use with your Raspberry Pi.
[Etcher](https://www.balena.io/etcher/) is an open source, cross-platform software that makes it easy to flash operating system images to a microSD card or USB device.
[Homebridge UI](https://github.com/oznu/homebridge-config-ui-x) is a tool that provides an easy to use interface to manage your Homebridge plugins, configuration and accessories.
- Install and configure Homebridge plugins.
- Monitor your Homebridge server via a fully customisable widget-based dashboard.
- View and control Homebridge accessories.
- Backup and Restore your Homebridge instance.
Homebridge UI
## ESPHome
[Back to the Top](#table-of-contents)
[ESPHome](https://esphome.io/) is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
#### Quick Links
- [ESP Web Tools](https://esphome.github.io/esp-web-tools/)
- [Installing ESPHome Manually | ESPHome](https://esphome.io/guides/installing_esphome.html)
- [Getting Started with the ESPHome Command Line](https://esphome.io/guides/getting_started_command_line.html)
- [Getting Started with ESPHome and Home Assistant](https://esphome.io/guides/getting_started_hassio.html)
- [ESPHome on the Raspberry Pi Pico! | Jeff Geerling](https://www.jeffgeerling.com/blog/2022/esphome-on-raspberry-pi-pico)
- [How to Start on Raspberry Pi Home Automation | ESPHome](https://www.instructables.com/How-to-Start-on-Raspberry-Pi-Home-Automation-ESPHo/)
- [ESPHome Setup | Integrating Home Assistant with Adafruit IO](https://learn.adafruit.com/integrating-adafruit-io-with-home-assistant/esphome-setup)
### Install ESPHome using Home Assistant
In [Home Assistant](https://www.home-assistant.io/integrations/esphome/) go to:
**Configuration > Add-ons, Backups & Supervisor > Add-on Store (button in the lower right corner) or click on the My Home Assistant Link below:**
Open your Home Assistant instance and show the Supervisor add-on store.
[](https://my.home-assistant.io/redirect/config_flow_start?domain=esphome)
- Next, search for ESPHome, click on the result and then click on the Install button.
- When the installation is finished, the Install button will be replaced with Start button – click on it to start the ESPHome add-on.
- Wait a few seconds for the ESPHome to start and then click on the Open Web UI button.
### Install ESPHome using Docker
- First thing is to pull the [ESPHome Docker image from Docker Hub](https://hub.docker.com/u/esphome) (Online).
```docker pull esphome/esphome```
- Then, start the ESPHome wizard. This wizard will ask you about your device type, your device name, your WiFi credentials and finally will generate a yaml file containing all of the configurations for you.
```docker run --rm -v "${PWD}":/config -it esphome/esphome wizard stl.yaml```
- Now, connect your ESP device to the device where Docker is running (either using an USB cable or Serial-To-USB adapter) and if you are on Linux type the following command :
```dmesg | grep ttyUSB```
- Put your device in programming mode (if needed) and execute the next command to install the ESPHome on the device connected to the /dev/ttyUSB1 using the configuration stored in stl.yaml file
```docker run --rm -v "${PWD}":/config --device=/dev/ttyUSB1 -it esphome/esphome run stl.yaml```
### Install ESPHome using Python
- If you are on macOS or Linux check if Python 3.8 or later is installed by executing the command.
```python3 --version```
- If you are on macOS, you need to install wheel and esphome packages by using the following command.
```pip3 install wheel esphome```
- If you are on Linux, you have to install esphome package by using the following command.
```pip3 install --user esphome```
- If you are on macOS or Linux you can start the ESPHome wizard using the following command.
```esphome wizard stl-python.yaml```
- Finally, connect your ESP device to your Computer (using USB cable or Serial-To-usb adapter) and put it in programming mode (if needed). Then, Install ESPHome using the configuration in the stl-python.yaml file.
```esphome run stl-python.yaml```
## Turning Raspberry Pi into a Router
[Back to the Top](#table-of-contents)
### Software
[OpenWrt Project](https://openwrt.org/) is a Linux operating system targeting embedded devices. Instead of trying to create a single, static firmware, OpenWrt provides a fully writable filesystem with package management. It's primarily used on embedded devices to route network traffic.
* [OpenWrt Wiki - Raspberry Pi setup](https://openwrt.org/toh/raspberry_pi_foundation/raspberry_pi)
**Download the appropriate OpenWrt image for your Raspberry PI by going to the link above.**
### Tools to write the Operating System (OS) image to your boot media(microSD card)
[Raspberry Pi Imager](https://www.raspberrypi.org/software/) is the quick and easy way to install Raspberry Pi OS and other operating systems to a microSD card, ready to use with your Raspberry Pi.
### Hardware
[Raspberry Pi Router Board for CM4 module (Cost: $55 USD)](https://www.seeedstudio.com/CM4-Router-Board-p-5211.html) is an expansion board based on the Raspberry Pi Compute Module 4. It brings Raspberry Pi CM4 two full-speed gigabit network ports and offers better performance, lower CPU usage, and higher stability for a long time work compared with a USB network card. It's compatible with [Raspberry Pi OS](https://www.raspberrypi.com/software/operating-systems/), [Ubuntu Server](https://ubuntu.com/download/raspberry-pi) and other Raspberry Pi systems.
Raspberry Pi Router Board for CM4 module
**Technical Specs:**
* Compatible Module: Raspberry Pi Compute Module 4 series.
* BCM2711 4 core @ 1.5GHz Cortex-A72.
* Support standard Raspberry Pi HAT interface.
* Support POE HAT to supply power to the board.
* Support POE HAT for external power supply.
* Full-speed dual gigabit network interface.
* Master-slave dual USB2.0 interface.
* Micro SD card slot, used to support non-eMMC version of CM4.
* Standard HDMI video output interface.
* 0.91 inch IIC OLED display.
* 5V DC fan interface(Support controlling via PWM signal).
* Ethernet: high-performance Gigabit ethernet controller RTL8111E chip, JXD 2111x G2406s chip as isolation transformer.
* Port0: Compute Module 4 Built-In.
* Port1: PCI Express 1000BASE-T NIC.
* GPIO: 40-Pin GPIO compatible with Raspberry Pi.
## Setting Watchdog Timer (WDT) on Raspberry Pi
[Back to the Top](https://github.com/mikeroyal/raspberry-pi-Guide#table-of-contents)
[Watchdog Timer (WDT)](https://en.wikipedia.org/wiki/Watchdog_timer) is a timer that monitors microcontroller (MCU) programs to see if they are out of control or have stopped operating.
### Installing and enabling WDT service
To enable watchdog you have to change the boot parameters by adding **dtparam=watchdog=on** in **/boot/config.txt** using a text editor such as nano, vim, gedit, etc.. Also, install watchdog package and enable it to start at startup. Also, make sure to restart your Raspberry Pi for these settings to take effect.
```pi@raspberrypi:~ $ sudo apt install watchdog```
```pi@raspberrypi:~ $sudo systemctl enable watchdog```
### Configure WDT service
Configuration file for watchdog can be found in **/etc/watchdog.conf**.
```
max-load-1 = 24
watchdog-device = /dev/watchdog
realtime = yes
priority = 1
```
**To start the WTD service:**
```pi@raspberrypi:~ $ sudo systemctl start watchdog```
**Check watchdog status:**
```pi@raspberrypi:~ $ sudo systemctl status watchdog```
**To stop the service:**
```pi@raspberrypi:~ $ sudo systemctl stop watchdog```
# Raspberry Pi Upgrades
[Back to the Top](https://github.com/mikeroyal/Raspberry-Pi-Guide/blob/main/README.md#table-of-contents)
[NexDock](https://nexdock.com/features/) is an accessory with a HDMI-in port and Type-C cable NexDock that turns the Raspberry Pi 4 into a fully functional computer.
[Raspberry Pi Cases from Pi-Shop US](https://www.pishop.us/product-category/raspberry-pi/pi-cases/)
[Raspberry Pi Cases from The Pi Hut](https://thepihut.com/collections/raspberry-pi-cases)
[X825 expansion board](https://www.amazon.com/Geekworm-Raspberry-Storage-Expansion-Compatible/dp/B07VXF2HJG) provides a complete storage solution for newest Raspberry Pi 4 Model B, it supports up to 4TB 2.5-inch SATA hard disk drives (HDD) / solid-state drive (SSD).
[Sabrent M.2 SSD [NGFF] to USB 3.0 / SATA III 2.5-Inch Aluminum Enclosure Adapter](https://www.amazon.com/Sabrent-2-5-Inch-Aluminum-Enclosure-EC-M2CU/dp/B07924J5NT/ref=sr_1_10?crid=28O2JRHO9DE4G&dchild=1&keywords=m.2+to+usb+3.0+adapter&qid=1616632834&sprefix=m.2+to+usb,aps,236&sr=8-10)
[Samsung 970 EVO 250GB - NVMe PCIe M.2 2280 SSD](https://www.amazon.com/dp/B07BN5FJZQ/ref=twister_B08KGF1DPF?_encoding=UTF8&psc=1)
[Western Digital 1TB WD Blue SN550 NVMe Internal SSD](https://www.amazon.com/dp/B07YFF8879/ref=twister_B082KVPKQ5?_encoding=UTF8&psc=1)
[SAMSUNG T5 Portable SSD](https://www.amazon.com/Samsung-500GB-Portable-Solid-State/dp/B074WZJ4MF/ref=sr_1_4?crid=343DRDX8SJJV6&dchild=1&keywords=samsung+t5+portable+ssd&qid=1616632092&sprefix=samsung+t5+portable,aps,374&sr=8-4)
[Samsung SSD 860 EVO 250GB mSATA Internal SSD](https://www.amazon.com/Samsung-250GB-mSATA-Internal-MZ-M6E250BW/dp/B07864YNTZ/ref=sr_1_8?crid=2KRBSPRQYUIOH&dchild=1&keywords=samsung+850+evo+msata&qid=1616632277&sprefix=samsung+850+evo+m,aps,233&sr=8-8)
[Samsung 850 EVO 120GB SSD mSATA](https://www.amazon.com/Samsung-850-120GB-mSATA-MZ-M5E120BW/dp/B00TGIVQ4G/ref=sr_1_9?crid=2KRBSPRQYUIOH&dchild=1&keywords=samsung+850+evo+msata&qid=1616632277&sprefix=samsung+850+evo+m,aps,233&sr=8-9)
# Getting Software
[Back to the Top](https://github.com/mikeroyal/Raspberry-Pi-Guide/blob/main/README.md#table-of-contents)
## App Outlet
[App Outlet](https://app-outlet.github.io/) is a Universal application store(Flatpaks, Snaps, and AppImages) inspired by the Linux App Store online service.
## Flatpaks
[FlatHub](https://flathub.org/) is a build and distribution service for Flatpak applications.
[FlatHub Forum](https://discourse.flathub.org/)
## Snaps
[Snap Store](https://snapcraft.io/store) is a build and distribution service for Snap applications.
[Snapcraft Forum](https://forum.snapcraft.io/)

## AppImages
[AppImageHub](https://www.appimagehub.com) is a build and distribution service for AppImage applications.
[AppImage Manager](https://github.com/AppImageCrafters/appimage-manager) is a package manager for AppImages.
[AppImage Forum](https://discourse.appimage.org/)
# Using Android Apps on Raspberry Pi
[Back to the Top](https://github.com/mikeroyal/Raspberry-Pi-Guide/blob/main/README.md#table-of-contents)
[Waydroid](https://github.com/waydroid/waydroid) is a container-based approach to boot a full Android system on a regular Linux system. The Android runtime environment ships with a minimal customized Android system image based on LineageOS. The image is currently based on Android 10.
[LineageOS](https://lineageos.org/) is a free and open-source operating system for various devices, based on the Android mobile platform.
[Scrcpy](https://github.com/Genymobile/scrcpy) is an application by Genymotion that provides display and control of Android devices connected on USB (or over TCP/IP). It does not require any root access and works on GNU/Linux, Windows and macOS. The Android device requires at least API 21 (Android 5.0).
# Gaming
[Back to the Top](https://github.com/mikeroyal/Raspberry-Pi-Guide#table-of-contents)
## Steam
**Open the terminal and copy/paste command below**
```sh
wget https://steamcdn-a.akamaihd.net/client/installer/steam.deb
```
[Proton](https://github.com/ValveSoftware/Proton/) is a tool for use with the Steam client which allows games which are exclusive to Windows to run on the Linux operating system. It uses Wine to facilitate this.
## Enable Proton in Steam
- Click on “Steam” then “Settings” to open the Settings window at the far-left corner.
- On the “Settings” window, click on “Steam Play.” Ensure you check the “Enable Steam Play for supported files” and “Enable Steam Play for all other titles” checkboxes. Lastly, select the Proton version you wish to use from the drop-down menu.
## ProtonDB
[Back to the Top](https://github.com/mikeroyal/Raspberry-Pi-Guide#table-of-contents)
[ProtonDB](https://www.protondb.com) is a collection of over 100,000 gaming reports from other gamers as they test games with Proton on Linux and provide aggregate scores of how well games perform. A growing pool of suggestions provides tweaks that you can try to get games working while Proton continues development. In addition to this, you may explore the Steam game catalog on this site to browse and discover a wide range of titles that were previously unavailable for use on Linux.
## Lutris
[Back to the Top](https://github.com/mikeroyal/Raspberry-Pi-Guide#table-of-contents)
[Lutris](https://lutris.net) is a gaming client for Linux. It gives you access to all your video games with the exception of the current console generation. Also, integrates nicely with other stores like GOG, Steam, Battle.net, Origin, Uplay and many other sources that allow you to import your existing game library and community maintained install scripts give you a completely automated setup.
[Add Epic Games Store](https://lutris.net/games/epic-games-store/)

## Heroic Games Launcher
[Back to the Top](https://github.com/mikeroyal/Raspberry-Pi-Guide#table-of-contents)
[Heroic Games Launcher](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher) is a Native GUI Epic Games Launcher for Linux.
**Hero Game Launcher UI. Credit: [flavioislima](https://github.com/flavioislima)**
## GameHub
[Back to the Top](https://github.com/mikeroyal/Raspberry-Pi-Guide#table-of-contents)
[GameHub](https://github.com/tkashkin/GameHub) is a unified library for all your games. It allows you to store your games from different platforms into one program to make it easier for you to manage your games.

**GameHub supports:**
- native games for Linux
- **multiple compatibility layers:**
- Wine
- Proton
- [DOSBox](https://www.dosbox.com/)
- [RetroArch](https://store.steampowered.com/app/1118310/RetroArch/)
- [ScummVM](https://www.scummvm.org/)
- [WineWrap](https://www.gog.com/forum/general/adamhms_linux_wine_wrappers_news_faq_discussion/post1) — a set of preconfigured wrappers for [supported games](https://www.gog.com/forum/general/adamhms_linux_wine_wrappers_news_faq_discussion/post3);
- custom emulators
- **multiple game platforms:**
- [Steam](https://store.steampowered.com/)
- [GOG](https://www.gog.com/)
- [Humble Bundle (including Humble Trove)](https://www.humblebundle.com/)
- [itch.io](https://itch.io/)
## Game Streaming
[Back to the Top](https://github.com/mikeroyal/Raspberry-Pi-Guide#table-of-contents)
[Steam Link app](https://store.steampowered.com/steamlink/about) is available free of charge, streaming your Steam PC games to phones, tablets, and TV.
[Geforce NOW](https://www.nvidia.com/en-us/geforce-now/download/) is NVIDIA's Cloud Gaming Service.

[Moonlight Game Streaming](https://moonlight-stream.org/) is a program that let you stream from your PC games over the Internet with no configuration required. Stream from almost any device, whether you're in another room or miles away from your gaming rig.

[Chiaki](https://git.sr.ht/~thestr4ng3r/chiaki) is a Free and Open Source Software Client for PlayStation 4 and PlayStation 5 Remote Play for Linux, FreeBSD, OpenBSD, Android, macOS, Windows, Nintendo Switch and potentially even more platforms. [Chiaki Flatpak](https://flathub.org/apps/details/re.chiaki.Chiaki)
[Xbox Cloud Gaming](https://www.xbox.com/en-US/xbox-game-pass/cloud-gaming) is Microsoft's cloud-based Xbox game-streaming technology **(currently in Beta)**. **Play games like Forza Horizon 4, Halo 5: Guardians, Gears of War 4, Sea of Thieves, Cuphead, Red Dead Redemption 2, and 100+ other games on your mobile device or Chrome web browser**. Xbox Cloud Gaming does require an [Xbox Game Pass Ultimate](https://www.xbox.com/en-US/xbox-game-pass/cloud-gaming) subscription.

[Stadia](https://stadia.google.com/games) is Google's gaming platform that lets you instantly play your favorite video games on screens you already own. Game on TVs with Chromecast with Google TV, laptops, desktops, tablets or compatible phones. [Stadia Pro](https://stadia.google.com/) is a subscription($9.99 per month) that unlocks a growing collection of free games to play on Stadia.
[Parsec](https://parsec.app/cloud-gaming) is a video game streaming platform, which offers a wide variety of games and genres to choose from and provides a high-quality and smooth gameplay. SParsec is developed in order to provide a high-quality smooth gameplay, same time to be free of all ads and in-game purchases.
[Amazon Luna](https://www.amazon.com/luna/landing-page) is Amazon's Cloud Gaming Service. Amazon Luna is Compatible/Supported on a vartiey of [Devices and Browsers](https://www.amazon.com/gp/help/customer/display.html?nodeId=GUFHUSX8X324T4XE).
## Game Emulators
[Back to the Top](https://github.com/mikeroyal/Raspberry-Pi-Guide#table-of-contents)
[EmulationStation Desktop Edition (ES-DE)](https://www.es-de.org/) is a frontend application for browsing and launching games from your multi-platform game collection. It's available for Unix/Linux, macOS(M1 & Intel) and Windows.
[RetroPie](https://retropie.org.uk/) is a frontend for emulators that allows you to turn your Raspberry Pi, ODroid C1/C2, or PC into a retro-gaming machine. It builds upon Raspbian, [EmulationStation](https://github.com/Aloshi/EmulationStation), RetroArch and many other projects to enable you to play your favourite Arcade, home-console, and classic PC games with the minimum set-up.
[RetroArch](https://www.retroarch.com/) is a frontend for emulators, game engines and media players. It enables you to run classic games on a wide range of computers and consoles through its slick graphical interface. Settings are also unified so configuration is done once and for all. [RetroArch Flatpak](https://flathub.org/apps/details/org.libretro.RetroArch)
[Dolphin](https://dolphin-emu.org) is an emulator for two recent Nintendo video game consoles: the GameCube and the Wii. It allows PC gamers to enjoy games for these two consoles in full HD (1080p) with several enhancements: compatibility with all PC controllers, turbo speed, networked multiplayer, and even more. [Dolphin Flatpak](https://flathub.org/apps/details/org.DolphinEmu.dolphin-emu)
[Citra](https://citra-emu.org/) is an open-source emulator for the Nintendo 3DS capable of playing many of your favorite games. [Citra Flatpak](https://flathub.org/apps/details/org.citra_emu.citra)
[yuzu](https://yuzu-emu.org) is an experimental open-source emulator for the Nintendo Switch from the creators of Citra.[Yuzu Flatpak](https://flathub.org/apps/details/org.yuzu_emu.yuzu)
[m64p](https://m64p.github.io/) is a Nintendo 64 Emulator. It uses mupen64plus-gui, a brand new mupen64plus frontend written in Qt5. It supports all of the things you’d expect from a frontend (savestate management, pausing, screenshots). [m64p Flatpak](https://flathub.org/apps/details/io.github.m64p.m64p)
[DeSmuME](https://desmume.org/) is a Nintendo DS emulator. [DeSmuME Flatpak](https://flathub.org/apps/details/org.desmume.DeSmuME)
[Snes9x](https://www.snes9x.com/) is a portable, freeware Super Nintendo Entertainment System (SNES) emulator. [Snes9x Flatpak](https://flathub.org/apps/details/com.snes9x.Snes9x)
[bsnes](https://github.com/bsnes-emu/bsnes) is a Super Nintendo (SNES) emulator focused on performance, features, and ease of use. [bsnes flatpak](https://flathub.org/apps/details/dev.bsnes.bsnes)
[mGBA](https://mgba.io/) is a new emulator for running Game Boy Advance games. It aims to be faster and more accurate than many existing Game Boy Advance emulators, as well as adding features that other emulators lack. [mGBA Flatpak](https://flathub.org/apps/details/io.mgba.mGBA)
[DOSBox](https://www.dosbox.com/) is an open-source DOS emulator which primarily focuses on running DOS Games.
[DOSBox Staging](https://github.com/dosbox-staging/dosbox-staging) is a full x86 CPU emulator (independent of host architecture), capable of running DOS programs that require real or protected mode.[DOSBox Staging Flatpak](https://flathub.org/apps/details/io.github.dosbox-staging)
[Flycast](https://github.com/flyinghead/flycast) is a multi-platform Sega Dreamcast, Naomi and Atomiswave emulator derived from reicast. [Flycast Flatpak](https://flathub.org/apps/details/org.flycast.Flycast)
[PCSX2](https://pcsx2.net/) is a Playstation 2 'emulator', a free program that tries to replicate the Playstation 2 console to enable you to play PS2 games on your PC. [PCSX2 Flatpak](https://flathub.org/apps/details/net.pcsx2.PCSX2)
[RPCS3](https://rpcs3.net/) is an experimental open-source Sony PlayStation 3 emulator and debugger written in C++ for Windows and Linux. RPCS3 started development in May of 2011 by its founders DH and Hykem. The emulator is currently capable of running over 1800 commercial titles powered by Vulkan and OpenGL. [RPCS3 Flatpak](https://flathub.org/apps/details/net.rpcs3.RPCS3)
[MAME](https://www.mamedev.org/) is a Arcade Machine Emulator.
[xemu](https://xemu.app/) is an original Xbox emulator.
[Xenia](https://github.com/xenia-project/xenia) is an Xbox 360 Emulator.
**Also checkout these subreddits for more great Game Emulators recommendations**
- [r/emulation](https://www.reddit.com/r/emulation/)
- [r/emulations](https://www.reddit.com/r/emulators/)
- [r/RetroArch](https://www.reddit.com/r/RetroArch/)
- [r/RetroPie](https://www.reddit.com/r/RetroPie/)
- [r/DolphinEmulator](https://www.reddit.com/r/DolphinEmulator/)
- [r/Citra](https://www.reddit.com/r/Citra/)
- [r/cemu](https://www.reddit.com/r/cemu/)
- [r/yuzu](https://www.reddit.com/r/yuzu/)
- [r/OpenEmu](https://www.reddit.com/r/OpenEmu/)
- [r/MAME](https://www.reddit.com/r/MAME/)
- [r/EmuDev](https://www.reddit.com/r/EmuDev/)
- [r/Roms](https://www.reddit.com/r/Roms/)
## Wine
[WINE(Wine Is Not an Emulator)](https://www.winehq.org) is a compatibility layer capable of running Windows applications on several POSIX-compliant operating systems, such as Linux, macOS, & BSD. Instead of simulating internal Windows logic like a virtual machine or emulator, Wine translates Windows API calls into POSIX calls on-the-fly, eliminating the performance and memory penalties of other methods and allowing you to cleanly integrate Windows applications into your desktop.
## Winetricks
[Winetricks](https://github.com/Winetricks/winetricks) is an easy way to work around problems in Wine.
this is needed to avoid adobeair error
```sh
sudo sed -i 's|echo "\${arg%%=\*}"=\\""${arg### \*=}"\\"|echo \${arg%%=\*}=\\"\${arg### \*=}\\"|g' /usr/local/bin/winetricks
sudo apt install cabextract libncurses5:armhf
```
# Home Media Server
[Back to the Top](https://github.com/mikeroyal/Raspberry-Pi-Guide/blob/main/README.md#table-of-contents)
[Streaming Netflix, Amazon Prime, Hulu, HBO Go, Disney Plus, Spotify, Pandora and more on Raspberry Pi 4 with widevine](https://kirelos.com/raspberry-pi-os-gets-official-widevine-support-allowing-you-to-play-netflix-amazon-prime-hulu-etc/)
[ReadyMedia (previously MiniDLNA)](https://wiki.archlinux.org/index.php/ReadyMedia) is server software with the aim of being fully compliant with DLNA / UPnP clients. The MiniDNLA daemon serves media files (music, pictures, and video) to clients on a network.
[Kodi (formerly XBMC)](https://kodi.tv/) is a free and open source media player and entertainment hub for digital media for HTPCs (Home theater PCs) application developed by the XBMC/Kodi Foundation. It uses a 10-foot user interface designed to be a media player for the living-room, using a remote control as the primary input device.
[Plex Media Server](https://www.plex.tv/) is an application that scans and organizes your media(music, videos, and other media files), then lets you stream it to all of your devices(computers, smartphones, tablets, televisions, streaming devices, and game consoles).
[OpenMediaVault](https://www.openmediavault.org/) is the next generation network attached storage (NAS) solution based on Debian Linux. It contains services like SSH, (S)FTP, SMB/CIFS, DAAP media server, RSync, BitTorrent client and many more.
[Mopidy](https://mopidy.com/) is a free and open source application that can turn your Raspberry Pi into music player for streaming local files, Spotify, Google Music, SoundCloud, Webradio, Podcasts and other music from the cloud. Also, stream your own collection from a device in your local network.
[Emby](https://emby.media/) is a media server designed to organize, play, and stream audio and video to a variety of devices(Android TV, Amazon Fire TV, Chromecast, Roku, Xbox, Home Theater Computers, and more).
[Jellyfin](https://jellyfin.org/) is a volunteer-built media solution that puts you in control of your media. Stream to any device from your own server, with no strings attached.
# WireGuard
[Back to the Top](https://github.com/mikeroyal/Raspberry-Pi-Guide#table-of-contents)
[WireGuard®](https://www.wireguard.com/) is a straight-forward, fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPsec while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general-purpose VPN for running on embedded interfaces and super computers alike, fit for many circumstances. Initially released for the Linux kernel, it is now cross-platform (Windows, macOS, BSD, iOS, Android) and widely deployable. It is currently under a massive development, but it already might be regarded as the most secure, most comfortable to use, and the simplest VPN solution in the industry.
[Wiretrustee](https://wiretrustee.com/) is a WireGuard®-based mesh network that connects your devices into a single private network.
[Wireguard Manager](https://github.com/complexorganizations/wireguard-manager) is a tool that enables you to build your own vpn under a minute.
[Tailscale](https://github.com/tailscale) is a WireGuard-based app that makes secure, private networks easy for teams of any scale. It works like an [overlay network](https://tailscale.com/blog/how-tailscale-works/) between the computers of your networks using all kinds of [NAT traversal sorcery](https://tailscale.com/blog/how-nat-traversal-works/).
[Headscale](https://github.com/juanfont/headscale) is an open source, self-hosted implementation of the Tailscale coordination server.
[BoringTun](https://github.com/cloudflare/boringtun) is an implementation of the WireGuard® protocol designed for portability and speed. It's successfully deployed on millions of [iOS](https://apps.apple.com/us/app/1-1-1-1-faster-internet/id1423538627) and [Android](https://play.google.com/store/apps/details?id=com.cloudflare.onedotonedotonedotone&hl=en_US) consumer devices as well as thousands of Cloudflare Linux servers.
[PiVPN](https://pivpn.io/) is the simplest VPN installer, designed for [Raspberry Pi](https://www.raspberrypi.com).
[Algo VPN](https://github.com/trailofbits/algo) is a set of Ansible scripts that simplify the setup of a personal WireGuard and IPsec VPN. It uses the most secure defaults available and works with common cloud providers.
[Pro Custodibus](https://www.procustodibus.com/features/) is a tool for managing WireGuard with a variety of business VPN (Virtual Private Network) use cases, such as site-to-site connectivity, secure remote access from anywhere, secure access to the cloud (Amazon Web Services, Google Cloud Platform, Microsoft Azure, etc), and more.
[Drago](https://seashell.github.io/drago) is a flexible configuration manager for WireGuard designed to make it simple to configure secure network overlays spanning heterogeneous nodes distributed across different clouds and physical locations. Drago is in active development, and we welcome contributions from the open-source community.
[Netmaker](https://netmaker.org/) is a tool that helps connect any computers together over a secure, fast, private network, and manage multiple networks from a central server.
[Kilo](https://github.com/squat/kilo) is a multi-cloud network overlay built on WireGuard and designed for Kubernetes. Kilo connects nodes in a cluster by providing an encrypted layer 3 network that can span across data centers and public clouds. The Pod network created by Kilo is always fully connected, even when the nodes are in different networks or behind NAT. By allowing pools of nodes in different locations to communicate securely, Kilo enables the operation of multi-cloud clusters. Kilo's design allows clients to VPN to a cluster in order to securely access services running on the cluster.
[Subspace](https://github.com/subspacecloud/subspace) is a simple WireGuard VPN server GUI.
[WG UI](https://github.com/EmbarkStudios/wg-ui) is a basic, self-contained management service for WireGuard with a self-serve web UI.
[WireHole](https://github.com/IAmStoxe/wirehole) is a combination of WireGuard, PiHole, and Unbound in a docker-compose project with the intent of enabling users to quickly and easily create and deploy a personally managed full or split-tunnel WireGuard VPN with ad blocking capabilities (via Pihole), and DNS caching with additional privacy options (via Unbound).
[Gluetun](https://github.com/qdm12/gluetun) is a lightwieght VPN client in a thin Docker container for multiple VPN providers, written in Go, and uses OpenVPN or Wireguard, DNS over TLS, with a few proxy servers built-in.
[Ethr](https://github.com/microsoft/ethr) is a cross platform network performance measurement tool written in golang. The goal of this project is to provide a native tool for comprehensive network performance measurements of bandwidth, connections/s, packets/s, latency, loss & jitter, across multiple protocols such as TCP, UDP, HTTP, HTTPS, and across multiple platforms such as Windows, Linux and other Unix systems.
# Nextcloud
[Back to the Top](https://github.com/mikeroyal/Raspberry-Pi-Guide#table-of-contents)
[Nextcloud](https://nextcloud.com) is an industry-leading, on-premises content collaboration platform for file sync & share and communication server. It is fully open source and you can host it yourself or pay a company to do it for you. Also checkout the following links below:
- [Nextcloud App Store](https://apps.nextcloud.com)
- [Nextcloud GitHub](https://github.com/nextcloud)
- [Nextcloud Developer Program](https://nextcloud.com/developer)
Nexcloud login screen
[Nextcloud Hub](https://nextcloud.com/hub/) is a tool that allows you to share and collaborate on documents, send and receive email, manage your calendar and have video chats without data leaks. As fully on-premises solution, Nextcloud Hub provides the benefits of online collaboration without the compliance and security risks.
Nexcloud Hub
[Nextcloud Desktop Client](https://nextcloud.com/install/#install-clients) is a tool to synchronize files from Nextcloud Server with your computer.
[Nextcloud Deck](https://apps.nextcloud.com/apps/deck) is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.
[Nextcloud Files](https://nextcloud.com/files/) is a tool tool that allows your employees have easy access to their files, photos and documents to work and can share and collaborate with team members, customers and partners. So IT knows nobody besides those they shared with has access to those files.
[Nextcloud Talk](https://nextcloud.com/talk/) is a tool that protects your communication better than other team collaboration platforms like Microsoft Teams or Slack, making sure your data stays on your servers. It also goes further than other encrypted communication technologies by keeping even metadata from leaking.
[Nextcloud Home](https://nextcloud.com/athome/) is a tool that allows you store your documents, calendar, contacts and photos on your server at home, at one of at one Nextcloud's providers or in a data center you trust.
[Nextcloud Enterprise](https://nextcloud.com/enterprise/) is a service that gives professional organizations software optimized and tested for mission critical environments.
[Nextcloud Outlook Integration](https://nextcloud.com/outlook/) is a tool that automatically upload files to replace large attachments or integrate Calendars and Contacts in Microsoft Outlook.
[Collabora Online in Nextcloud](https://nextcloud.com/collaboraonline/) is a powerful LibreOffice-based online office suite with collaborative editing, which supports all major document, spreadsheet and presentation file formats and works in all modern browsers.
[ONLYOFFICE integration in Nextcloud](https://nextcloud.com/onlyoffice/) is a service that empowers your users to collaborate on office documents with team members in real time. It has compatibility with Microsoft Office formats means perfect documents, every time.
[Nextcloud VM(virtual machine appliance)](https://download.nextcloudvm.com/) is a set of carefully crafted family of [*nix](https://bit.ly/2UaCC7b) scripts, which interactively guide you through a quality-controlled installation of a Nextcloud instance for Home/SME Server and scripts for Raspberry Pi 4. It is Community developed and maintained.
# Grafana
[Back to the Top](https://github.com/mikeroyal/Raspberry-Pi-Guide#table-of-contents)
## Grafana Learning Resources
[Grafana](https://grafana.com/) is an analytics platform that enables you to query and visualize data, then create and share dashboards based on your visualizations. Easily visualize metrics, logs, and traces from multiple sources such as Prometheus, Loki, Elasticsearch, InfluxDB, Postgres, Fluentd, Fluentbit, Logstash and many more.
[Getting Started with Grafana](https://grafana.com/docs/)
[Grafana Community](https://community.grafana.com/)
[Grafana Professional Services Training | Grafana Labs](https://grafana.com/training/)
[Grafana Pro Training AWS | Grafana Labs](https://grafana.com/training/aws/)
[Grafana Tutorials](https://grafana.com/tutorials/)
[Top Grafana Courses on Udemy](https://www.udemy.com/topic/grafana/)
[Grafana Online Training Courses | LinkedIn Learning](https://www.linkedin.com/learning/topics/grafana)
[Grafana Training Courses - NobleProg](https://www.nobleprog.com/grafana-training)
[Setting Up Grafana to Visualize Our Metrics Course on Coursera](https://www.coursera.org/lecture/continuous-integration/setting-up-grafana-to-visualize-our-metrics-part-4-of-10-OOMzF)
## Grafana Tools
[Grafana Cloud ](https://grafana.com/products/cloud/) is a composable observability platform, integrating metrics, traces and logs with Grafana. Leverage the best open source observability software – including Prometheus, Loki, and Tempo – without the overhead of installing, maintaining, and scaling your observability stack.
**Grafana Cloud Integrations. Source: [Grafana](https://grafana.com/products/cloud/)**
[Grafana Enterprise](https://grafana.com/products/enterprise/) is a service that includes features that provide better scalability, collaboration, operations, and governance in a self-managed environment.
**Grafana Enterprise Stack. Source: [Grafana](https://grafana.com/products/enterprise/)**
[Grafana Tempo](https://grafana.com/oss/tempo/) is an open source high-scale distributed tarcing backend. Tempo is cost-efficient, requiring only object storage to operate, and is deeply integrated with Grafana, Loki, and Prometheus.
[Grafana MetricTank](https://grafana.com/oss/metrictank/) is a multi-tenant timeseries platform for Graphite developed by Grafana Labs. MetricTank provides high-availability(HA) and efficient long-term storage, retrieval, and processing for large-scale environments.
[Grafana Tanka](https://grafana.com/oss/tanka/) is a robust configuration utility for your [Kubernetes](https://kubernetes.io/) cluster, powered by the [Jsonnet](https://jsonnet.org/) language.
[Grafana Loki](https://grafana.com/oss/loki/) is a horizontally-scalable, highly-available(HA), multi-tenant log aggregation system inspired by Prometheus.
[Cortex](https://grafana.com/oss/cortex/) is a project that lets users query metrics from many Prometheusservers in a single place, without any gaps in the grpahs due to server failture. Also, Cortex lets you store Prometheus metrics for long term capacity planning and performance analysis.
[Graphite](https://grafana.com/oss/graphite/) is an open source monitoring system.
# Kubernetes
[Back to the Top](https://github.com/mikeroyal/Raspberry-Pi-Guide/blob/main/README.md#table-of-contents)
**Note: The recommended hardware is the Raspberry Pi 4 Model B with 8 GB of Memory**
[Kubernetes (K8s)](https://kubernetes.io/) is an open-source system for automating deployment, scaling, and management of containerized applications.

**Building Highly-Availability(HA) Clusters with kubeadm. Source: [Kubernetes.io](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/), 2020**
[Google Kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine/) is a managed, production-ready environment for running containerized applications.
[Azure Kubernetes Service (AKS)](https://azure.microsoft.com/en-us/services/kubernetes-service/) is serverless Kubernetes, with a integrated continuous integration and continuous delivery (CI/CD) experience, and enterprise-grade security and governance. Unite your development and operations teams on a single platform to rapidly build, deliver, and scale applications with confidence.
[Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) is a tool that runs Kubernetes control plane instances across multiple Availability Zones to ensure high availability.
[AWS Controllers for Kubernetes (ACK)](https://aws.amazon.com/blogs/containers/aws-controllers-for-kubernetes-ack/) is a new tool that lets you directly manage AWS services from Kubernetes. ACK makes it simple to build scalable and highly-available Kubernetes applications that utilize AWS services.
[Container Engine for Kubernetes (OKE)](https://www.oracle.com/cloud-native/container-engine-kubernetes/) is an Oracle-managed container orchestration service that can reduce the time and cost to build modern cloud native applications. Unlike most other vendors, Oracle Cloud Infrastructure provides Container Engine for Kubernetes as a free service that runs on higher-performance, lower-cost compute.
[Anthos](https://cloud.google.com/anthos/docs/concepts/overview) is a modern application management platform that provides a consistent development and operations experience for cloud and on-premises environments.
[Red Hat Openshift](https://www.openshift.com/) is a fully managed Kubernetes platform that provides a foundation for on-premises, hybrid, and multicloud deployments.
[OKD](https://okd.io/) is a community distribution of Kubernetes optimized for continuous application development and multi-tenant deployment. OKD adds developer and operations-centric tools on top of Kubernetes to enable rapid application development, easy deployment and scaling, and long-term lifecycle maintenance for small and large teams.
[Odo](https://odo.dev/) is a fast, iterative, and straightforward CLI tool for developers who write, build, and deploy applications on Kubernetes and OpenShift.
[Kata Operator](https://github.com/openshift/kata-operator) is an operator to perform lifecycle management (install/upgrade/uninstall) of [Kata Runtime](https://katacontainers.io/) on Openshift as well as Kubernetes cluster.
[Thanos](https://thanos.io/) is a set of components that can be composed into a highly available metric system with unlimited storage capacity, which can be added seamlessly on top of existing Prometheus deployments.
[OpenShift Hive](https://github.com/openshift/hive) is an operator which runs as a service on top of Kubernetes/OpenShift. The Hive service can be used to provision and perform initial configuration of OpenShift 4 clusters.
[Rook](https://rook.io/) is a tool that turns distributed storage systems into self-managing, self-scaling, self-healing storage services. It automates the tasks of a storage administrator: deployment, bootstrapping, configuration, provisioning, scaling, upgrading, migration, disaster recovery, monitoring, and resource management.
[VMware Tanzu](https://tanzu.vmware.com/tanzu) is a centralized management platform for consistently operating and securing your Kubernetes infrastructure and modern applications across multiple teams and private/public clouds.
[Kubespray](https://kubespray.io/) is a tool that combines Kubernetes and Ansible to easily install Kubernetes clusters that can be deployed on [AWS](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/aws.md), GCE, [Azure](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/azure.md), [OpenStack](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/openstack.md), [vSphere](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/vsphere.md), [Packet](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/packet.md) (bare metal), Oracle Cloud Infrastructure (Experimental), or Baremetal.
[KubeInit](https://github.com/kubeinit/kubeinit) provides Ansible playbooks and roles for the deployment and configuration of multiple Kubernetes distributions.
[Rancher](https://rancher.com/) is a complete software stack for teams adopting containers. It addresses the operational and security challenges of managing multiple Kubernetes clusters, while providing DevOps teams with integrated tools for running containerized workloads.
[K3s](https://github.com/rancher/k3s) is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances.
[Helm](https://helm.sh/) is a Kubernetes Package Manager tool that makes it easier to install and manage Kubernetes applications.
[Knative](https://knative.dev/) is a Kubernetes-based platform to build, deploy, and manage modern serverless workloads. Knative takes care of the operational overhead details of networking, autoscaling (even to zero), and revision tracking.
[KubeFlow](https://www.kubeflow.org/) is a tool dedicated to making deployments of machine learning (ML) workflows on Kubernetes simple, portable and scalable.
[Etcd](https://etcd.io/) is a distributed key-value store that provides a reliable way to store data that needs to be accessed by a distributed system or cluster of machines. Etcd is used as the backend for service discovery and stores cluster state and configuration for Kubernetes.
[OpenEBS](https://openebs.io/) is a Kubernetes-based tool to create stateful applications using Container Attached Storage.
[Container Storage Interface (CSI)](https://www.architecting.it/blog/container-storage-interface/) is an API that lets container orchestration platforms like Kubernetes seamlessly communicate with stored data via a plug-in.
[MicroK8s](https://microk8s.io/) is a tool that delivers the full Kubernetes experience. In a Fully containerized deployment with compressed over-the-air updates for ultra-reliable operations. It is supported on Linux, Windows, and MacOS.
[Charmed Kubernetes](https://ubuntu.com/kubernetes/features) is a well integrated, turn-key, conformant Kubernetes platform, optimized for your multi-cloud environments developed by Canonical.
[Grafana Kubernetes App](https://grafana.com/grafana/plugins/grafana-kubernetes-app) is a toll that allows you to monitor your Kubernetes cluster's performance. It includes 4 dashboards, Cluster, Node, Pod/Container and Deployment. It allows for the automatic deployment of the required Prometheus exporters and a default scrape config to use with your in cluster Prometheus deployment.
[KubeEdge](https://kubeedge.io/en/) is an open source system for extending native containerized application orchestration capabilities to hosts at Edge.It is built upon kubernetes and provides fundamental infrastructure support for network, app. deployment and metadata synchronization between cloud and edge.
[Lens](https://k8slens.dev/) is the most powerful IDE for people who need to deal with Kubernetes clusters on a daily basis. It has support for MacOS, Windows and Linux operating systems.
[kind](https://kind.sigs.k8s.io/) is a tool for running local Kubernetes clusters using Docker container “nodes”. It was primarily designed for testing Kubernetes itself, but may be used for local development or CI.
[Flux CD](https://fluxcd.io/) is a tool that automatically ensures that the state of your Kubernetes cluster matches the configuration you've supplied in Git. It uses an operator in the cluster to trigger deployments inside Kubernetes, which means that you don't need a separate continuous delivery tool.
## Kubernetes Learning Resources
[Getting Kubernetes Certifications](https://training.linuxfoundation.org/certification/catalog/?_sft_technology=kubernetes)
[Getting started with Kubernetes on AWS](https://aws.amazon.com/kubernetes/)
[Kubernetes on Microsoft Azure](https://azure.microsoft.com/en-us/topic/what-is-kubernetes/)
[Intro to Azure Kubernetes Service](https://docs.microsoft.com/en-us/azure/aks/kubernetes-dashboard)
[Getting started with Google Cloud](https://cloud.google.com/learn/what-is-kubernetes)
[Getting started with Kubernetes on Red Hat](https://www.redhat.com/en/topics/containers/what-is-kubernetes)
[Getting started with Kubernetes on IBM](https://www.ibm.com/cloud/learn/kubernetes)
[YAML basics in Kubernetes](https://developer.ibm.com/technologies/containers/tutorials/yaml-basics-and-usage-in-kubernetes/)
[Elastic Cloud on Kubernetes](https://www.elastic.co/elastic-cloud-kubernetes)
[Docker and Kubernetes](https://www.docker.com/products/kubernetes)
[Deploy a model to an Azure Kubernetes Service cluster](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-deploy-azure-kubernetes-service?tabs=python)
[Simplify Machine Learning Inference on Kubernetes with Amazon SageMaker Operators](https://aws.amazon.com/blogs/machine-learning/simplify-machine-learning-inference-on-kubernetes-with-amazon-sagemaker-operators/)
[Running Apache Spark on Kubernetes](http://spark.apache.org/docs/latest/running-on-kubernetes.html)
[Kubernetes Across VMware vRealize Automation](https://blogs.vmware.com/management/2019/06/kubernetes-across-vmware-cloud-automat