All Projects → cattlepi → Cattlepi

cattlepi / Cattlepi

Licence: apache-2.0
effortlessly boot, configure, update and monitor your raspberry pi ☁️

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Cattlepi

Raspberrypi tempmon
Raspberry pi CPU temperature monitor with many functions such as logging, GPIO output, graphing, email, alarm, notifications and stress testing. Python 3.
Stars: ✭ 52 (-79.2%)
Mutual labels:  raspberry-pi, raspberrypi, rpi, raspbian
Raspap Webgui
Simple wireless AP setup & management for Debian-based devices
Stars: ✭ 3,383 (+1253.2%)
Mutual labels:  raspberry-pi, raspberrypi, rpi, iot
Crankshaft
Crankshaft: A turnkey GNU/Linux solution that transforms a Raspberry Pi to an Android Auto head unit.
Stars: ✭ 1,703 (+581.2%)
Mutual labels:  raspberry-pi, raspberrypi, rpi, raspbian
Gumcp
Web Control Panel for Raspberry Pi
Stars: ✭ 124 (-50.4%)
Mutual labels:  raspberry-pi, raspberrypi, rpi, raspbian
Briarids
An All-In-One home intrusion detection system (IDS) solution for the Raspberry PI.
Stars: ✭ 187 (-25.2%)
Mutual labels:  raspberry-pi, raspberrypi, iot, raspbian
Enclosure Picroft
Mycroft interface for Raspberry Pi environment
Stars: ✭ 649 (+159.6%)
Mutual labels:  raspberry-pi, rpi, raspbian
Wifi Connect
Easy WiFi setup for Linux devices from your mobile phone or laptop
Stars: ✭ 883 (+253.2%)
Mutual labels:  raspberrypi, rpi, iot
Gassistpi
Google Assistant for Single Board Computers
Stars: ✭ 911 (+264.4%)
Mutual labels:  raspberry-pi, raspberrypi, rpi
Wifimeshraspberrypi
Workshop to create a sensor application over a WiFi Mesh network
Stars: ✭ 99 (-60.4%)
Mutual labels:  raspberry-pi, raspberrypi, iot
PiBeacon
Low-cost iBeacon using Raspberry Pi
Stars: ✭ 41 (-83.6%)
Mutual labels:  rpi, raspberrypi, raspbian
Q3lite
Q3lite, an OpenGL ES port of Quake III Arena for embedded Linux systems.
Stars: ✭ 64 (-74.4%)
Mutual labels:  raspberry-pi, raspberrypi, raspbian
Yahm
Yet Another Homematic Management - Skripte zur Einrichtung der Homematic CCU Oberfläche in einem LXC Container unter Debian Jessie auf ARM CPU (z.B.: Raspberry Pi & Co)
Stars: ✭ 113 (-54.8%)
Mutual labels:  raspberry-pi, raspberrypi, raspbian
Mobilenet Ssd Realsense
[High Performance / MAX 30 FPS] RaspberryPi3(RaspberryPi/Raspbian Stretch) or Ubuntu + Multi Neural Compute Stick(NCS/NCS2) + RealSense D435(or USB Camera or PiCamera) + MobileNet-SSD(MobileNetSSD) + Background Multi-transparent(Simple multi-class segmentation) + FaceDetection + MultiGraph + MultiProcessing + MultiClustering
Stars: ✭ 322 (+28.8%)
Mutual labels:  raspberry-pi, raspberrypi, raspbian
My Pihole Blocklists
Create custom pi-hole blocklists
Stars: ✭ 269 (+7.6%)
Mutual labels:  raspberry-pi, raspberrypi, raspbian
Make
📖📖📖📖📖 写给软件工程师看的硬件编程指南
Stars: ✭ 170 (-32%)
Mutual labels:  raspberry-pi, rpi, iot
Piwheels
Python package repository providing wheels (pre-built binaries) for Raspberry Pi
Stars: ✭ 180 (-28%)
Mutual labels:  raspberry-pi, raspberrypi, raspbian
Nwjs rpi
[NW.js port for Raspberry Pi] binary compiled for the ARMv6 used in Raspberry Pi (compatible with RPi 2 and RPi 3)
Stars: ✭ 91 (-63.6%)
Mutual labels:  raspberry-pi, raspberrypi, raspbian
Wirehome.core
Wirehome.Core is a home automation system written in C# targeting .NET Core. It runs on Linux, Windows and macOS.
Stars: ✭ 180 (-28%)
Mutual labels:  raspberry-pi, iot, raspbian
Rpi gpio
Ruby conversion of RPi.GPIO Python module
Stars: ✭ 185 (-26%)
Mutual labels:  raspberry-pi, raspberrypi, rpi
Homeassistant Config
Stars: ✭ 211 (-15.6%)
Mutual labels:  raspberry-pi, iot

CattlePi

GitHub tag GitHub

A lot of Raspberry Pi projects treat their software as pets. A lot of time is put into configuring and tweaking the setup. If the hardware dies or the SD card wears out it can be very challenging or time consuming to rebuild/replicate the software setup. Normally this is fine for a single DIY and/or educational project. But it's hardly practical or scalable in other cases.
Our goal is to automate both the initial setup and the update process for multiple Raspberry Pi nodes.
We want to turn your pet project into a cattle project.

What does this mean? Several things:

  • the ability to run a RPi headless, without the need to physically interact with the device
  • the ability to update the OS and other software on the Pi over the wire (and keep it up to date)
  • the ability to run your software in an environment that closely mirrors a normal Raspberry Pi Linux environment
  • minimization of state on the device (ideally zero state)
  • minimization of failure scenarios (in most cases the solution should merely require rebooting)

Quickstart

To quickly get going, you can use a prebuilt initfs image that you can find here (cattlepi.zip download).
This image uses the following API endpoint: https://api.cattlepi.com and the following API key: deadbeef

You can write the image to an empty SDCard using etcher: https://etcher.io/
Several guides on etcher are available, including https://www.raspberrypi.org/documentation/installation/installing-images/ and https://www.raspberrypi.org/magpi/pi-sd-etcher/.
The only thing that is different is that instead of using the raspbian downloaded image you will use the cattlepi image.

Insert the card into the RPi and watch it boot. On first boot the loader will update the images and will boot the default configured image (usually the latest raspbian + any package updates)
You can learn more details about the API itself or how to get your own API key at https://cattlepi.com

How does it work?

Using the builder in this project you can create and use two images: an initfs image and a rootfs image.
The (initfs) is written on the an SD card boot partition. This image contains code to both self-update and to download the final root file system (rootfs) used by the RPi.
The boot code communicates with with an external API endpoint, to retrieve the configuration associated with your RPi, as well as to figure out where the image files are located and download them (i.e. both the boot image and the rootfs image can freely change between boots).
As an optimization, the images are cached on the SD card boot partition to make subsequent boots faster (and to avoid any unnecessary network traffic).

What does this repository contain?

This repository provides the tooling and wiring needed to build/generate the images used to boot and the root file system.

To build and test images locally, follow this guide
A little more detail on the boot process can be found here
Also please look at the FAQ associated with this project

Tooling Used

The following software is used in the project:

  • Ansible - the workhorse of the builder process. To be able to build the images you're going to need a physical RPi. The Ansible play books need to be configured to use this.
  • initramfs-tools to build the initramfs ramdisk image that will be used. You can learn more about it here and here.
  • unionfs-fuse - the final root file system is a FUSE, union file system. The union has two layers: a bottom, read-only, one mounted with the rootfs image, and a top, copy-on-write, read/write tmpfs.
  • squashfs-tools - used for the bottom layer of the root union file system. SquashFs is a compressed, read-only file system.

Contact

Email: hello at cattlepi dot com
Twitter: @cattlepi
Reddit: /u/cattlepi

If you would like to receive update on the CattlePi project we also have a low volume, interesting stuff, mailing list: Subscribe here

The project documentation companion can be found at https://cattlepi.com/
Raspberry Pi is a trademark of the Raspberry Pi Foundation

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].