Cómo construir un servidor de desarrollo personal en una Raspberry Pi de $ 5

En este artículo, aprenderá a crear un servidor de desarrollo personal instalando Git, Node.js, Rust y Docker en una Raspberry Pi. La opción más barata cuesta solo $ 5. Puede obtener un kit de inicio ($ 25) gratis aquí.

La Raspberry Pi es una computadora muy poderosa en un paquete pequeño. La opción más barata, Raspberry Pi Zero, es capaz de ejecutar una distribución de Linux con todas las funciones y manejar una pantalla de alta definición. Tiene el tamaño de dos monedas (Quarters estadounidenses) y cuesta $ 5.

A $ 10, la Raspberry Pi Zero W viene con WiFi y Bluetooth integrados.

En el "extremo superior", puede comprar un kit de escritorio Raspberry Pi 4 por menos de $ 100. Tiene una CPU ARM de 4 núcleos que se ejecuta a 1.5GHz, GPU, 2GB (hasta 8 GB) de RAM, 16GB (hasta 2TB) de almacenamiento en tarjetas MicroSD, conectores wifi y Ethernet, puertos USB, puertos HDMI que pueden conducir Pantallas 4K, así como teclado y mouse.

La Raspberry Pi también es más que una computadora estándar. Es divertido y hackeable. La Raspberry Pi expone una fila de pines GPIO (entrada y salida de propósito general). Puede conectar sensores simples (por ejemplo, temperatura, humedad, luz) a esos pines y capturar sus datos de sus aplicaciones que se ejecutan en el Pi.

También puede conectar luces LED y motores a esos pines y usar su aplicación Pi para controlar esos dispositivos periféricos.

Para sensores o dispositivos más complejos, como módulos de cámara, también puede conectarse al Pi a través de USB o Wifi y acceder a ellos en el software. El Pi es un gran dispositivo para el aprendizaje y la piratería de hardware. Debido a esto, se usa ampliamente en entornos educativos.

Sin embargo, la diversión y el aprendizaje no son solo para niños. Con tanta potencia informática y fácil conexión en red, la Raspberry Pi puede convertirse fácilmente en un servidor de aplicaciones personal para usted.

Por ejemplo, puede poner una aplicación web (por ejemplo, una aplicación de toma de notas colaborativa, o simplemente algunos documentos / videos para compartir) en una Pi, llevarla a una reunión y hacerla accesible para todos en la sala. Ni siquiera necesitas Internet. Es completamente descentralizado y resistente a la censura.

El servidor personal es especialmente útil para los desarrolladores. Puede tener un entorno separado para implementar y probar sus aplicaciones del lado del servidor sin tener que meterse con su computadora portátil. Un servidor de desarrollo personal es como Docker con esteroides. En este artículo, te enseñaré cómo configurar uno.

Primero, obtenga una Raspberry Pi

Si esta es su primera Raspberry Pi, la forma más fácil (y más costosa) de configurar es simplemente comprar un kit de escritorio por alrededor de $ 100. Viene con todo lo que necesita para una computadora, excepto la pantalla.

Si está utilizando Pi como servidor de desarrollo personal, NO necesitará una pantalla después de la configuración inicial. ¡Puede acceder mediante SSH desde su computadora portátil una vez que esté encendido!

Aprenda a obtener su kit de inicio Raspberry Pi de forma gratuita cuando participe en este ejercicio de aprendizaje de aplicaciones web de alto rendimiento.

Por supuesto, si tiene piezas de repuesto para la computadora, como tarjetas MicroSD, fuente de alimentación USB, un teclado y un mouse, podría ahorrar dinero comprando solo las placas. Puede obtener una placa Raspberry Pi Zero por $ 5 y una placa Raspberry Pi 4 por $ 35.

Pero lo que falta en la placa es una tarjeta MicroSD que actúa como "disco duro" para almacenar el sistema operativo y los datos. Puede comprar una tarjeta MicroSD de 16GB por $ 10 en línea, un lector de tarjetas MicroSD y usar Raspberry Pi Imager para cargar un sistema operativo en la tarjeta MicroSD desde su computadora portátil.

Las dos opciones populares son Raspberry Pi OS y Ubuntu Linux. Ambas son distribuciones de Linux basadas en Debian. La mayoría de los kits de inicio preinstalan el sistema operativo Raspberry Pi en sus tarjetas MicroSD (se llama NOOBS).

En las próximas dos secciones, te hablaré de ambos sistemas operativos.

Cómo configurar el sistema operativo Raspberry Pi

Una vez que coloque la tarjeta MicroSD con NOOBS y conecte una pantalla, un teclado y un mouse, ¡puede encender la alimentación!

A partir de ahí, simplemente siga las instrucciones en pantalla para instalar Raspberry Pi OS (anteriormente conocido como Raspbian OS). Luego configure una contraseña para el usuario pi y configure la conexión wifi.

Una vez que haya iniciado sesión, vaya al menú Preferencias → Configuración de Raspberry Pi y habilite SSH. Eso le permitirá iniciar sesión en el Pi desde otra computadora.

Nota : para utilizar el Pi como un servidor "sin cabeza", puede solicitar una dirección IP estática de su enrutador. En el futuro, puede encender la Pi y conectarse a ella a través de SSH desde sus otras computadoras o teléfonos.

El sistema operativo Raspberry Pi se deriva de la distribución Debian Linux. Viene con un entorno de interfaz de usuario de escritorio completo con un navegador web moderno, una terminal de línea de comandos y programas de aprendizaje como IDE para Python, Java y Scratch.

Para nuestros propósitos, lo que más nos interesa es instalar software de servidor y de desarrollo a través de la terminal de línea de comandos.

En este punto, también puede averiguar la dirección IP del Pi en su red local ejecutando el siguiente comando. Luego, puede SSH en el Pi usando esa dirección IP local, el nombre de usuario pi y la contraseña que le dio a pi durante la configuración.

$ hostname -I 192.168.2.108 172.17.0.1

Puede encontrar una lista completa de los paquetes de software instalados en el sistema operativo Raspberry Pi aquí. Siempre es una buena idea actualizar y actualizar a los paquetes más recientes. Ejecute el siguiente comando y tenga paciencia. Podría tardar una hora.

$ sudo apt update && sudo apt upgrade

Cómo configurar Ubuntu Server 20.04

El sistema operativo Raspberry Pi está principalmente orientado a una experiencia de escritorio. Para los desarrolladores que solo quieren usar el dispositivo como servidor o dispositivo de IoT, Ubuntu Linux es una opción mucho mejor. Tiene los últimos paquetes de software y bibliotecas, y podría ser mucho más eficiente sin las ventanas de escritorio, el navegador web, Java, los juegos y las herramientas de aprendizaje.

Puede descargar imágenes de Ubuntu Server para Raspberry Pi desde la web y cargarlas en una tarjeta MicroSD. Pero quizás una forma mucho más fácil es usar Raspberry Pi Imager, seleccionar Ubuntu Server 20.04 TLS en el menú y escribir en una tarjeta MicroSD vacía.

Una vez que la tarjeta MicroSD esté preparada, debe seguir estas instrucciones para ingresar el nombre y la contraseña de su red WiFi. Esto permite que el dispositivo Raspberry Pi se conecte a la red tan pronto como se inicie.

Basically, you can just put the MicroSD card into the Raspberry Pi, connect USB power, then wait for it to come online. You can find the raspberrypi device IP from your WiFi router, and then SSH into from any computer on your network.

The initial username and password are ubuntu / ubuntu. There is no need to even connect a monitor or keyboard. That’s it for a completely headless setup!

Note: if, for some reason, your Raspberry Pi cannot connect to WiFi at startup, you can hook up an HDMI display and a USB keyboard to it. Then follow these instructions to debug and set up WiFi on the running system.

Next, let's install the developer tool stack on the Pi.

Install Git

I always install Git on all my development environments because a lot of software can be directly retrieved from Git repositories. It saves me the trouble of downloading and copying.

Git also allows me to save and backup my own work in private repositories. For a small computer like Raspberry Pi, I would recommend that you save work in Git in case you lose the device or MicroSD card.

The following command installs Git:

$ sudo apt install git

Install Node.js

To turn the Raspberry Pi into a personal dev server for web applications, you need to install a modern web application runtime.

For most developers today, the best starting point is Node.js, which allows you to write server-side applications in JavaScript. The following two commands install Node.js on your Pi.

$ curl -sL //deb.nodesource.com/setup_10.x | sudo bash - $ sudo apt install nodejs

You can verify the installation is done correctly by running the following two commands. Both node and npm are now available.

$ node -v v10.19.0 $ npm -v 5.8.0

From here, you can use npm to install modules. For example, a commonly used npm module is the express framework for web applications.

$ npm install express

Now, you can go through the ExpressJS hello world example to create a web server on your Pi, and use web browsers from any computer on your network to access the application!

Install Rust

Rust is a fast growing programming language for writing both systems and web applications. It is close to the hardware, high performance, and memory safe. That makes Rust a great language for writing applications on resource constrained devices like the Raspberry Pi.

Also, Rust is the most beloved programming language by StackOverflow users for the past 5 years in a row. It is well worth your time to learn it!

An important use case of Rust is to compile Rust functions into WebAssembly and run them inside Node.js applications to achieve performance, safety, and code portability. It is a great choice for running computationally intensive web applications on a small Raspberry Pi device. In fact, you could get a free Raspberry Pi starter kit if you learn how to do that.

Note: strictly speaking, you do not need to install Rust tools on the Pi. You typically only need to run Rust programs in the Pi. You can compile your Rust program on any computer and then copy the compiled binaries to the Pi.

But still, with the powerful CPU, you can compile Rust programs on the Raspberry Pi. So why not?

The following command installs the Rust compiler toolchain on the Pi.

$ curl --proto '=https' --tlsv1.2 -sSf //sh.rustup.rs | sh

Run the following command to set up the correct path without logging out and back in again.

$ source $HOME/.cargo/env

The above command also installs the Rust package manager called cargo. Most Rust developers use cargo to build and share their work.

$ cargo -V cargo 1.44.1 (88ba85757 2020-06-11)

Next, you can clone our Rust learning repository, and learn from examples.

$ git clone //github.com/second-state/wasm-learning.git

Here is the hello world example. Have fun!

$ cd wasm-learning/rust/hello $ cargo build Compiling hello v0.1.0 (/home/pi/Dev/wasm-learning/rust/hello) Finished dev [unoptimized + debuginfo] target(s) in 4.35s $ target/debug/hello Hello, world!

Check out the official Rust web site and the Rust by Example books for more learning resources.

Learn Docker

We have seen that the Raspberry Pi OS and Ubuntu Server are both very capable Linux distributions with lots of software packages.

But what if I want to test applications on other OSes? Do I need to wipe clean and reinstall a different OS on the MicroSD card? The answer is no. You can just use Docker! The following two commands install docker on the Raspberry Pi:

$ curl -fsSL //get.docker.com -o get-docker.sh $ sudo sh get-docker.sh

Run the following command so that you can use Docker as the pi user:

$ sudo usermod -aG docker pi

The Docker info command shows that Docker is now installed on an ARM system with Raspberry Pi OS.

$ docker info ... ... Kernel Version: 4.19.118-v7l+ Operating System: Raspbian GNU/Linux 10 (buster) OSType: linux Architecture: armv7l CPUs: 4 Total Memory: 3.814GiB Name: raspberrypi ID: XERI:ZVVZ:XQVA:HXSH:KRPI:6GL2:5QRE:E7GZ:Z72Q:6SGF:CEI6:GKTC Docker Root Dir: /var/lib/docker ... ...

Next, you can pull a Docker image for the latest Ubuntu distribution, run it, and log into Ubuntu as a command line user.

$ docker pull ubuntu ... ... $ docker run -it ubuntu bash root# ... enter commands ...

What’s next?

In this article, we have touched on the basics and learned how to turn your Raspberry Pi 4 device into a personal dev server for software developers.

There is much to learn about Git, Node.js, Rust, WebAssembly and Docker. There are also many other developer stacks you can install on the Raspberry Pi.

Grab your free Raspberry Pi kit and let us know what you did with it!

Subscribe to our newsletter and stay in touch.