• Stars
    star
    152
  • Rank 237,092 (Top 5 %)
  • Language
    Python
  • License
    MIT License
  • Created about 7 years ago
  • Updated over 1 year ago

Reviews

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

Repository Details

Get into physical computing with Docker and Raspberry Pi

Docker and IoT

Get into physical computing with the Pimoroni Blinkt! add-on

  • The Raspberry Pi is a low-energy microcomputer the size of a credit-card and has sold over 10 million units educating children and inspiring makers alike.

  • With the Pi, you'll be building, shipping and running Docker containers in no time and learning how to interact with physical hardware to create your own IoT devices.

  • You will also get a chance to play with Docker Swarm on your Pi to deploy a micro-service. And, you will take home a free Raspberry Pi Zero kit, including a super bright Pimoroni Blinkt! 8-LED RGB add-on.

Discount on hardware for this workshop

This workshop was originally designed for Dockercon 2017 in Austin. You can read the workshop notes and get a 10% discount off the hardware kit here: Dockercon 2017 - Captain's Log.

Pre-requisites

  • Install a text editor

If you don't usually work with code then please install one of the following cross-platform text-editors:

For Windows users

  • Install Git for Windows

Please go ahead and install Git for Windows so that you have access to ssh, scp, sftp and a terminal:

https://git-scm.com/downloads

  • Install Bonjour networking service

The Raspberry Pi uses Apple's Bonjour/Avahi service to advertise its IP address. You will need to install Bonjour which is packaged in the following download. If you have iTunes installed you should already have the Bonjour service installed and started.

If you struggle to setup Internet Connection Sharing because you're on Linux or a picky WiFi network then please follow the guide for configuring a Proxy server.

Workshop format

This is a self-paced workshop designed to be followed in a class or individually. It starts with Part 1 which involves setting up the Pi and Blinkt LED board then moves onto building Docker images, programming the LEDs and creating up a cluster.

The final part involves putting everything together to create an application. If you're taking part in a class you can do this last part individually or pair up.

The hardware you need is described in Part 1 - Setup and you can get a 10% discount from Pimoroni if needed.

Class notes:

We will have TAs on-hand to help out. Please let us know if you need help or if things aren't working right.

Part 1 - Setup

Flash Raspbian, configure OTG networking and Internet Connection Sharing, then install Docker.

Part 2 - Build

Run your first ARM Docker container, learn about base image differences and prepare to work with GPIO.

Part 3 - Blinkt

Get familiar with the Blinkt and start hacking

Part 4 - Web applications

Understand how to create a Web application in Python and an IoT LED server

Part 5 - Hack

Put everything you've learnt into practice on a larger application.

Conclusion

Find out how to use your Pi Zero at home and where to find more great content.

Get in touch

You can follow me on Twitter @alexellisuk or read more about Docker and Raspberry Pi on my blog.

More Repositories

1

k3sup

bootstrap K3s over SSH in < 60s 🚀
Go
5,267
star
2

arkade

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

awesome-baremetal

Bare-metal is awesome. Let's share our favourite tools.
1,424
star
4

k8s-on-raspbian

Kubernetes on Raspbian (Raspberry Pi)
Shell
881
star
5

docker-arm

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

derek

Reduce maintainer fatigue by automating GitHub
Go
790
star
7

growlab

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

HandsOnDocker

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

mine-with-docker

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

registry-creds

Replicate Kubernetes ImagePullSecrets to all namespaces
Go
306
star
11

jaas

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

firecracker-init-lab

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

expressjs-k8s

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

run-job

Run a Kubernetes Job and get the logs when it's done 🏃‍♂️
Go
162
star
15

spotminer

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

go-execute

Automate CLI commands with Go
Go
134
star
17

ghost-on-docker

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

k8s-tls-registry

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

openfaas-puppeteer-template

OpenFaaS template for headless Chrome and Puppeteer
JavaScript
90
star
20

civo-fluxcd-expressjs

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

hash-browns

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

rodak

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

phototimer

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

leaderboard-app

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

raspberrypi-youtube-streaming

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

quickstart-prometheus

Quickstart for Prometheus
62
star
27

faas-containerd

containerd and CNI provider for OpenFaaS
Go
61
star
28

aspnet-voteservice

Windows Containers for Docker Voting App
JavaScript
60
star
29

helm3-expressjs-tutorial

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

cli-progress-animation

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

swarmmode-tests

Series of test cases for Docker swarmmode
JavaScript
56
star
32

mongodb-function

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

async-example

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

href-counter

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

faas-dockercon

Functions for Dockercon
JavaScript
49
star
36

tensorflow-serving-openfaas

Example of using TensorFlow Serving with OpenFaaS
Dockerfile
47
star
37

pizero-docker-demo

Live IoT cluster demonstration
Shell
46
star
38

jenkins2docker

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

enviro-dashboard

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

blinkt_go_examples

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

funker-dispatch

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

pi_zero_stock

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

minio-gauge

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

dockerlabs

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

sponsors-functions

GitHub Sponsors webhook receiver and Discord forwarder
JavaScript
33
star
46

openfaas-streaming-templates

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

fstail

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

upload-assets

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

twitter-bots

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

kubernetes-todo-go-app

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

blinkt_go

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

sshdkit

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

crud-postgresql-nodejs-openfaas

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

gumroad-custom-workflow

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

seeds2

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

iot-sensors-mqtt-openfaas

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

hmac

Validate hmac signatures in Go
Go
26
star
58

2020

Make your own 2020 ASCII art
JavaScript
26
star
59

minikube-operator

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

function-storage-example

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

inlets-connect

A tiny HTTP CONNECT proxy 🚦
Go
23
star
62

guidgenerator-aspnet

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

containerd-arm

Arm64 & armhf binaries of containerd
22
star
64

faas-twitter-fanclub

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

inlets-heroku-tutorial

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

mkaas

mkaas: minikube on Kubernetes with CRDs
Go
21
star
67

datacenter-sensor

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

windowscontainers-jenkinsci

Windows Containers PoC for Server Core
20
star
69

repaint-the-past

Full instructions for repainting the past
Python
19
star
70

nicehash-overwatch

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

zumopi

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

comment-vibes

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

alexa-demos

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

alexa-blinkt

JavaScript
14
star
75

tinkerbot

ChatOps for Tinkerbell
Go
13
star
76

PlanningPoker

PlanningPoker for estimating story points in SCRUM
HTML
13
star
77

mqtt-to-s3

mqtt-s3-example
Python
13
star
78

express-middleware-sinon

Express middleware with Sinon testing
JavaScript
13
star
79

lambda-on-openfaas-poc

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

multiarch-templates

Multi-arch templates for OpenFaaS
JavaScript
12
star
81

workflow-yaml-template

Rudimentary YAML workflow runner for OpenFaaS
Go
12
star
82

minty

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

release-it

CI example from Everyday Golang
Makefile
10
star
84

goto

My URL shortener
JavaScript
10
star
85

github_counter_faas

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

webhook-tester

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

motephat-alexa

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

eyes-in-the-sky

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

php7-swoole-template

OpenFaaS PHP7 template using Swoole
PHP
9
star
90

bulk-twitter-follow

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

restic-minio-civo-learn-guide

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

locust-openfaas

Locust load-testing tool on OpenFaaS
Python
8
star
93

kubecon-blog

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

scroll-phat-node

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

captains-list

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

mailbox

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

arkade-get

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

updateip

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

pimeter

Smart energy usage meter for Raspberry PI
JavaScript
7
star
100

growlab.dev

growlab.dev website
HTML
7
star