Portable & versatile Raspberry Pi 4 development server setup

The general idea for an Raspberry Pi based portable development setup is not new.

As an example: I stumbled upon—and was intrigued right away by—a video on the YouTube channel Tech Craft (@tech_crafted on the bird site) titled My Favourite iPad Pro Accessory: The Raspberry Pi 4 .

Though, as I'm clearly (still) not a iPad/ Table person, my particular setup is centered around my main driver, a Linux-based laptop—in particular my ultra-portable MacBook 12".

Disclaimer: this write up is still a WORK IN PROGRESS as I'm documenting along the how-to and setup of it's evolving experience…

RugBerry sitting on top of MacBook 12" (Raspberry Pi 4 Model B 8GB in CoolerMaster Pi Case 40)

So, without furher ado, here are the incredients of my particular setup—so far:

  1. Hardware
  1. Software
  • First things first: install Raspberry Pi OS Lite, 64-bit, these days simply by using the great Imager software; also levereaging the Advanced Options for setting hostname (piside), enabling SSH only allowing public-key authentication (of course!), configuring Wifi, applying locale settings.

  • Install PIXEL Desktop:

sudo apt install raspberrypi-ui-mods
  • Install VNC Server

Doc ref: raspberrypi.com, Documentation: Remote Access, VNC

sudo apt install realvnc-vnc-server
sudo raspi-config
  • Install Pi Tool, the all-in-one Software Utility for Cooler Master's Pi Case 40

The utility allows users access to a basic set of overclocking profiles, tested and validated based on the thermal performance of Cooler Master's Pi Case 40 enclosure, monitoring of system metrics, and assignment of multiple functions to the built-in button.
—Src: coolermaster.com

# Install currently missing dependencies of Raspberry Pi OS (Lite) 64-bit image:
sudo apt install -y libdbusmenu-glib4 libdbusmenu-gtk4 libfontconfig1

wget http.us.debian.org/debian/pool/main/libi/libindicator/libindicator7_0.5.0-4_arm64.deb
sudo dpkg -i libindicator7_0.5.0-4_arm64.deb

# Install Pi Tool
curl https://raw.githubusercontent.com/CoolerMasterTechnology/pi-tool/master/install.sh -o pi-tool-install.sh
chmod +x pi-tool-install.sh
./pi-tool-install.sh
  • Configure the Raspberry Pi as a USB-C Gadget following the simple steps in this well done guide.

  • Install Samba (SMB/CIFS), Server and Client

Doc ref: raspberrypi.com, Documentation: Remote Access, Samba (SMB/CIFS)

sudo apt install samba samba-common-bin smbclient cifs-utils
sudo smbpasswd -a matthias

# sudo vi /etc/samba/smb.conf

[Shared]
    path = /home/matthias/Shared
    read only = no
    public = yes
    writable = yes

[Code]
   path = /home/matthias/Code
    read only = no
    public = no
    writable = yes

sudo systemctl restart smbd

Doc ref: webmin.com, Installing on Debian

wget http://prdownloads.sourceforge.net/webadmin/webmin_1.984_all.deb
sudo dpkg -i webmin_1.984_all.deb; sudo apt install -f
# https://piside:10000/
  • Install Docker, Docker Compose
  1. Docker —› follow along docs.docker.com, Install Docker Engine on Debian and docs.docker.com, Post-installation steps for Linux.
  2. Docker Compose —› follow along doc.docker.com, Install Docker Compose — Alternative install options (via pip3).
sudo apt install libffi-dev libssl-dev
sudo apt install -y python3 python3-dev python3-pip
sudo pip3 install docker-compose
  • Install Chromium (64-bit)

…w/ out WidevineCDM library and therefore, it is not possible to play streaming media such as Netflix or Disney+. But who cares anyway 🤷️

sudo apt install chromium-browser:arm64

To be continued…

Todos