Raspberry Pi

Raspberry Pi es una herramienta fundamental en mi setup de {{self-hosting}}.

Como instalar Raspbian?

Para instalar Raspbian en una SD, se puede utilizar una herramienta llamada rpi-imager que es desarrollada y mantenida por Raspberry.

Para Arch / Manjaro se puede bajar desde AUR:

trizen -S rpi-imager-bin

También desde la web🡭 esta disponible para Windows y macOS.

Esta bueno por que te da una interfaz linda y simple, donde podes elegir los distintos tipos de OS que queres cargar y el storage device donde cargar la imagen. En 2 pasos tenes el proceso corriendo.

!{{rpi-imager-writing.png}}

En mi caso y para mi Raspberry Pi 2 model B elegí Raspbian basado en Debian (bullseye) sin desktop enviroment, ya que la idea es administrarlo por ssh.

Configurar IP estática

TODO

Como activar ssh?

Una vez instalado Raspbian o Raspberry OS, nos va a pedir user y password, y que iniciemos sesión.

Con la sesión iniciada podemos ejecutar el siguiente comando:

sudo raspi-config

Esto va a mostrarnos un menu con distintas opciones para configurar el sistema operativo.

Para configurar SSH tenemos que ir a la opción 5 Interfacing Options y luego a P2 SSH. Aceptamos activar SSH, la RPi va a quedar lista para conectarnos por SSH.

Agregar dispositivo a known hosts

SSH nos permite conectarnos a la RPi, mediante un usuario, ip y puerto. Ademas cada vez que queramos conectarnos, va a pedirnos la contraseña del usuario. Para evitar esto, podemos agregar nuestro dispositivo (con el que nos vamos a conectar) al known hosts de la RPi.

Para eso desde el dispositivo que queremos registrar, debemos ejecutar el siguiente comando:

ssh-copy-id <ip-rpi>

Este comando nos va a pedir usuario y contraseña para copiar la ssh-key del dispositivo en la RPi.

Después de haber copiado la ssh-key vamos a poder conectarnos por ssh a la RPi sin necesidad de ingresar la contraseña.

Instalar Docker y Docker Compose

  • sudo apt update && sudo apt upgrade
  • sudo apt install git
  • curl -fsSL https://get.docker.com🡭 -o get-docker.sh
  • sudo sh get-docker.sh
  • add user to docker group
    • sudo usermod -aG docker ${USER}
  • sudo su - ${USER}
  • groups ${USER}
  • test docker version
    • docker version
    • docker run hello-world
    • docker image rm hello-world
  • enable docker
    • sudo systemctl enable docker
  • install docker-compose
cat >> ~/.bashrc <<EOL # Docker Environment export PATH=/usr/bin:$PATH export DOCKER_HOST=unix:///run/user/1000/docker.sock EOL