Plataforma Educativa Informática

Bienvenidos a la página personal de José Domingo Muñoz Rodríguez

Últimas entradas

Microblog

openLAB: generador de escenarios educativos virtualizados

Os presento openLAB, una aplicación que crea escenarios de prácticas a partir de un fichero YAML: instancias (contenedores o máquinas virtuales de Incus) conectadas por redes, con la red, los usuarios y los paquetes ya configurados. Está pensada para que el profesorado prepare los laboratorios de sus prácticas de redes, sistemas y servicios, y para que el alumnado los cree en su equipo con una sola orden (openlab up). Se maneja desde la línea de órdenes o desde el navegador (openlab web), y las dos formas trabajan sobre el mismo fichero.

La he desarrollado con asistencia de inteligencia artificial, que me ha permitido convertir en una herramienta completa una idea que llevaba tiempo rondándome para mis clases.

Sus funcionalidades principales:

  • Escenarios como directorios, al estilo de Vagrant: se reparten con git, se comprueban antes de crearlos (openlab check) y se actualizan cambiando solo lo modificado.
  • Instancias Debian, Ubuntu y Fedora, como contenedores o máquinas virtuales, con tipos de recursos al estilo de los sabores de OpenStack. También Windows Server 2025 y Windows 11.
  • Usuarios, claves SSH, paquetes y cloud-init propio, para que las instancias estén listas para la práctica (o a medio configurar para que el alumno la termine).
  • Instancias con escritorio (XFCE o GNOME), accesibles por RDP o desde la web.
  • Redes muy aisladas, aisladas o con NAT, con IP fijas o DHCP, el gestor de red que se quiera (ifupdown, networkd, Netplan o NetworkManager) y rutas a medida para prácticas de routers y cortafuegos.
  • Almacenamiento: discos de bloque (para LVM y RAID), directorios compartidos y carpetas del anfitrión.
  • Una web con el escenario dibujado y el estado de cada instancia en vivo, terminales y pantalla de las instancias, formularios y editor YAML, un asistente con modelos, prácticas guiadas y un modo tutorial que explica los conceptos.

Funciona en Debian, Ubuntu y Fedora, y se instala con pipx (openlab install se encarga de instalar y preparar Incus). Es software libre con licencia GPL-3.0.

Detalle →
Microblog

git.josedomingo.org: mi nuevo gestor de repositorios con Forgejo

Estrenamos gestor de repositorios git: git.josedomingo.org.

Está montado con Forgejo, una forja de software libre, ligera y autoalojada, desarrollada por la comunidad bajo el paraguas de Codeberg. Ofrece todo lo que esperas de una plataforma tipo GitHub: repositorios Git, incidencias, pull requests, wiki, gestión de paquetes e incluso integración continua con Forgejo Actions. Todo ello en tu propio servidor y con el control total de tus datos.

En mi gestor de repositorios iré subiendo los repositorios más interesantes de mi GitHub, y también lo utilizaré para mis proyectos personales. Eso sí, no me despido de GitHub: algunos repositorios seguirán estando allí.

Te invito a pasarte y echar un vistazo: git.josedomingo.org

Detalle →
Blog

Repartir el tráfico HTTPS por nombre sin descifrarlo: el módulo stream de nginx

El módulo stream de nginx

En muchas ocasiones me he encontrado con la necesidad de configurar iptables o nftables con reglas DNAT para redirigir el tráfico web entrante a un servidor interno. Funciona bien mientras haya un único destino, pero tiene una limitación: el kernel solo ve direcciones y puertos, así que todo el tráfico al puerto 443 va a parar al mismo servidor. ¿Y si tengo varios servidores web detrás y quiero repartir las conexiones según el nombre de dominio?

La solución habitual sería instalar un proxy inverso, pero eso obliga a descifrar el tráfico TLS en esa máquina y, por lo tanto, a tener allí los certificados de todos los servicios, algo que no siempre es posible ni deseable. Para estos casos, nginx nos ofrece el módulo stream, que nos permite repartir las conexiones por nombre sin descifrarlas.

Seguir leyendo →
Blog

Curso de Programación Orientada a Objetos con C++ moderno

Curso de Programación Orientada a Objetos con C++ moderno

En esta entrada os traigo mi último curso publicado en la Plataforma Educativa Informática: Programación Orientada a Objetos con C++ moderno. Es la continuación natural del Curso de Introducción a C++ Moderno: si en aquel aprendíamos el lenguaje desde cero, en este nos centramos en la Programación Orientada a Objetos, desde los fundamentos hasta técnicas avanzadas de diseño.

Seguir leyendo →
Blog

Curso de Introducción a C++ Moderno

Curso de Introducción a C++ Moderno

Acabo de publicar en la Plataforma Educativa Informática el material del nuevo curso que he impartido en OpenWebinars: Introducción a C++ Moderno, pensado para aprender a programar en C++ desde cero utilizando ya desde el principio las características del estándar moderno del lenguaje (C++11 en adelante, con especial atención a C++17 y C++20).

Seguir leyendo →

Licencia: Puedes copiar y modificar todos los contenidos, pero siempre respetando los términos de la licencia CC-BY-SA.