Setting up my Raspberry Pi

Some instructions for getting a dev environment on Raspberry Pi:

Create development directory

mkdir -p development/work
mkdir -p development/forks
mkdir -p development/projects
mkdir -p development/learning
mkdir -p development/archive
cd development

Update packages

sudo apt update -y
sudo apt upgrade -y --fix-missing
sudo apt autoremove -y

Install essentials

sudo apt install -y git curl zlib1g-dev subversion openssl libreadline-dev zlib1g libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev autoconf automake libtool bison vim network-manager screen zsh bzip2

Generate an ssh-key:


Then put the public key up on Github:

cat ~/.ssh/

Copy the output into the “Add SSH Key” section of your profile on GitHub.


Change my shell to zsh:

sudo apt install -y zsh
chsh -s /bin/zsh

Install oh-my-zsh:

curl -L | sh

Install Starship

Install some nerd-fonts first:

mkdir -p ~/.fonts/FiraCode
unzip -d ~/.fonts/FiraCode

mkdir -p ~/.fonts/Hack
unzip -d ~/.fonts/Hack

mkdir -p ~/.fonts/Monoid
unzip -d ~/.fonts/Monoid

mkdir -p ~/.fonts/SourceCodePro
unzip -d ~/.fonts/SourceCodePro
sh -c "$(curl -fsSL"


Download my dotfiles:

git clone


git clone ~/.asdf --branch v0.8.1

Add the following to ~/.zshrc:

. $HOME/.asdf/

Install Unix packages needed by languages

sudo apt install -y dirmngr gpg curl gawk
sudo apt -y install build-essential autoconf m4 libncurses5-dev libwxgtk3.0-gtk3-dev libgl1-mesa-dev libglu1-mesa-dev libpng-dev libssh-dev unixodbc-dev xsltproc fop libxml2-utils libncurses-dev openjdk-11-jdk

Install ASDF plugins

asdf plugin add python
asdf plugin add ruby
asdf plugin add erlang
asdf plugin add elixir
asdf plugin add nodejs

Install ASDF language versions

asdf install python 3.9.7
asdf install ruby 2.7.4
asdf install erlang 24.0.6
asdf install elixir 1.12.3-otp-24
asdf install nodejs 16.10.0

Install dotfiles

cd ~/development/dotfiles
ruby ./install.rb

Install Docker

curl -sSL | sh
sudo usermod -aG docker pi

Then logout, then back in again and run:


You should see docker as a group entry for the pi user

Install Portainer

sudo docker pull portainer/portainer-ce:latest
sudo docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

Now access http://[[hostname]]:9000 and set up an admin user…

Install VS Code

Install Sonic-Pi