BalenaOS loves Coder

Support Engineer @ Atlassian by day, Self-Hoster by night. I write about what I break and how I fix it. Linux • Windows • macOS | Python • Java • Swift | Privacy • AI
Pueees tengo un Raspberry 3 que ha sobrevivido como vikingo a mis experimentos; ahí tenía varios servicios corriendo en contenedores, salió Fedora 42 y pensé, momento de actualizar y probar, pero, al estar grabando la imagen con balenaEtcher al SD recordé que existe balenaOS, un sistema operativo ligero hecho para correr contenedores al estilo Docker (Docker optimizado para IoT), entonces me pregunté ¿ why not? …
[Confesiones: me molesta el desorden de archivos, por eso odio poquito Node.js y toda su basura, y comienzo a ver a Golang con ojos de amor 🥰; se supone debería estar practicando algoritmos con Python y SQL, pero no, aquí estamos, intentando crear un workspace remoto usando Coder, BalenaOS y Docker… ]
En fin, la cosa es sencilla: si lo quieren replicar, primero se crean una cuenta en balena.io, crean su organización, siguiente siguiente shalala … ponen add device y ponen su dispositivo, la versión del OS, modo developer, si lo usarán en WIFI pues ponen su SSID y su contraseña para que se conecte en automático en modo headless, y descargan la imagen, ponen su microSD, la formatean y después escriben la imagen con su programa favorito, aunque ya que estamos aquí usen balenaEtcher.

Ya con su dispositivo encendido y conectado al wifi deben descargar el CLI de balena e instalarlo e inician sesión con:
balena login # Se abre el navegador y pues ponen sus credenciales y listo.
Después para detectar su dispositivo usan:
balena device list # Esto les dará la información desu dispositivo nomás pa saber.
En la instrucción anterior les dará el UUID, por ejemplo ft4hru3o o algo así, con ese harán muchas cosas, por ejemplo activar el local mode que es importante para pushear contenedores:
balena device local-mode fb5e2ad --enable # Activar local mode, ahi dice ps xd
Es importante también conocer la IP de su dispositivo, si mDNS no esta funcionando o les da lata (si ping ft4hru3o.local no funciona o así) pues lo pueden buscar con netstat -a o desde su router o así, mil formas, imaginemos que la IP local de mi dispositivo es 192.168.1.69.
Entonces hacemos un
git push https://github.com/rigelcarbajal/balenacoder.git && cd balenacoder
y una vez dentro del directorio hacemos
balena push 192.168.1.69 # A nuestro raspberry o donde hallan instalado esto.
Les dejo la pagina oficial del instalador de Coder pero les comento que ese docker-compose NO es compatible con balenaOS, por eso subo las instrucciones de arriba que a mi me han funcionado bien.

Acceden usando la IP o el hostname de su dispositivo, en mi caso sería 192.168.1.69:7080, crean su cuenta local con correo y contraseña y listo, pueden comenzar a jugar.

Pueden usar un contenedor de nginx para hacer un reverse proxy al puerto 80 y exponerlo desde la plataforma de balena.io para que puedan acceder desde cualquier sitio a su workspace de Coder. Según leí, solo se puede usar el puerto 80 con balena, por eso usar nginx.
—
Sources:


