Ya, ya, si todo muy bien, pero resulta que mi gato hoy estuvo paseándose por el teclado. No sé qué pasó, pero el docker ahora no me está funcionando bien. Voy a reinstalar todo para...
¡Espera! Cuando tienes problemas con Docker, antes de optar por soluciones extremas, primero hay que intentar saber qué es lo que está pasando. En este artículo vamos a pararnos para ver algunos comandos útiles cuando tenemos una instalacion de Docker entre las manos. Docker no sólo es instalar un Docker y ya está. Si queremos aprender a manejarlo con soltura y a resolver incidencias con él, todo lo que veamos en éste artículo nos va a resultar muy útil.
Tened claro que en este artículo no vamos a hacer instalaciones de ningún Docker a mayores en nuestro equipo. Es un artículo meramente informativo y orientado a ampliar y asentar los conocimientos que estamos adquiriendo acerca de este sistema.
Comandos para manejar imágenes.
Como ya os dije en el segundo artículo, una imagen es algo similar a un paquete de instalación de un programa. Tiene todo lo que necesita el software que vamos a instalar para que funcione correctamente (sistema operativo, bibliotecas y código del programa), pero no se está ejecutando continuamente, sino que la imagen sólo se usa en el momento de la instalación para crear lo que luego llamaremos el contenedor.
Hay algunos comandos útiles para gestionar estas imágenes. Veámoslos.
En el primer tutorial que hemos hecho en esta serie, hemos visto cómo podemos instalar correctamente el último sistema operativo a una Raspberry. El segundo artículo era mucho más teórico y en él hemos aprendido qué es Docker, para qué sirve, ventajas que tiene y también lo hemos instalado en nuestra Raspberry (o en nuestro Debian, que también hemos enseñado cómo se instala en ese sistema), de forma que el dispositivo ha quedado preparado para poder añadirle todos los Dockers que queramos.
Ahora vamos a empezar la juerga. En este artículo vamos a instalar nuestro primer Docker, y recordad que aunque estoy orientando este tutorial a Raspberrys, es aplicable también a cualquier dispositivo que use una distribución Linux derivada de Debian (Ubuntu Server, por ejemplo). El objetivo es tener un servidor doméstico que nos haga un montón de cosas en nuestro hogar, y creo que empezar instalando «Pi-Hole» es un buen comienzo.
Me suena eso de Pi-hole. ¿No lo habíamos instalado ya en otro artículo?
Sí Usuario Anónimo. Lo habíamos instalado en este tutorial, pero de forma tradicional, sin usar docker. En este caso vamos a usar esta tecnología para usarlo y mantenerlo «encapsulado», de forma que no interfiera en otros procesos. En concreto usaremos docker compose tanto en este como en los siguientes tutoriales. Usaremos esta primera instalación como guía principal para los artículos posteriores en los que no nos vamos a parar tanto en explicaciones.
Para los que no lo conozcan, Pi-hole es un programa que actúa en nuestra red como servidor de DNS, pero es un servidor de DNS muy especial, porque lo que hace es quitarnos la publicidad de las aplicaciones de todos los dispositivos de nuestro hogar. Incluso en dispositivos en los que es imposible instalar un bloqueador de publicidad (como en una televisión) nos permite que el dispositivo no muestre publicidad en ningún momento. Es más: imagínate que invitas a alguien a tu casa y le das la contraseña del WiFi. Por el simple hecho de conectarse a tu WiFi, esa persona ya estaría navegando sin publicidad.
Pues sí que mola. Pues hala: dinos ya cómo se instala que tú en seguida te dispersas.
Tal y cómo dije, vamos a seguir la misma estructura en las instalaciones posteriores, así que tened los puntos principales de este artículo siempre bien claros.
Hemos visto en nuestro último artículo cómo instalar la última version de Raspberry Pi OS en una Raspberry, de forma que quede lista para funcionar como servidor. A partir de ahora vamos a ver cómo instalar varios programas que harán que nuestra Raspberry se convierta en un magnífico servidor doméstico. Sin embargo vamos a instalarlos de una forma un poco especial. En lugar de instalar los programas directamente en el sistema operativo, vamos a usar Docker para meter cada uno en un contenedor separado para que…
Espera, espera. ¿Por qué te complicas tanto la vida? ¿Para qué me va a interesar hacer cosas raras con los programas que vamos a instalar si al final el objetivo es simplemente que funcionen? ¿No podemos simplemente instalarlos y ya está? Hay que ver cómo te gusta retorcer las cosas, majete.
Si no tuviera sentido no estaría aquí dando la chapa y estaría escribiendo sobre otra cosa, Usuario Anónimo. En realidad, sobre todo en servidores, tiene mucho sentido usar Docker en lugar de instalaciones directas de los programas. En este artículo vamos a ver, en primer lugar las ventajas de usar Docker respecto a hacer instalaciones directas para montar un servidor. Luego analizaremos qué tipos de Dockers son los más adecuados para su uso en pequeñas instalaciones y por último aprenderemos a instalar Docker tanto en una Raspberry como en un servidor Debian.
Vale... lo que quieras, pero ¿Qué demonios es eso de docker?
Tiene razón. Debería haber comenzado por ahí. Hazte la imagen mental de que Docker es como un conjunto de archivos empaquetados, sólo que con la característica de que tienen todo lo necesario para que funcione la aplicación que quieres usar (y cuando digo todo lo necesario me refiero a TODO. Archivos, dependencias, librerías, configuraciones, etc…). En lugar de hacer la instalación de la aplicación, haces la instalación de ese docker en concreto, y si lo has hecho correctamente, todo debería funcionar exactamente igual que haciendo la instalación de la forma «tradicional».
Que sí. Vale. Hurra por empaquetar todo, pero ¿Eso de qué me sirve? Si me estás diciendo que al final va a funcionar todo igual. Sigo preguntándome para qué te complicas tanto la vida.
Te voy a poner varios ejemplos en los que vas a ver claro que instalar de esta forma las aplicaciones en un servidor tiene su utilidad.
1) Ventajas de usar Docker en un servidor.
Caso 1: Aplicaciones separadas que requieren versiones diferentes de componentes del sistema (Gestión de dependencias)
Imagina que, por ejemplo, quieres instalar en un único equipo dos aplicaciones que actúen como servidores independientes, por ejemplo, un servidor de Nextcloud y un servidor de OSTicket (podrían ser otro tipo de servicios. Esto sólo es un ejemplo). Puede que la configuración que requiera uno de estos servicios sea diametralmente opuesta a la que requiere el otro. Por ejemplo, puede que uno necesite un componente de linux superior a la versión 8, pero el otro sólo pueda trabajar con versiones inferiores a la 7. En este caso no podrían coexistir las dos instalaciones en el mismo sistema. Docker resuelve este problema, porque cada una de las instalaciones se convertiría en completamente independiente de la otra al estar empaquetadas en dos contenedores distintos. Cada una podría tener sus componentes y ser incompatibles los de un contenedor con el otro, pero funcionar de forma independiente. Cada contenedor sólo debe preocuparse en satisfacer las dependencias de sus componentes, sin preocuparse de las dependencias de otros contenedores que corran en el mismo sistema operativo base.
Caso 2: Paradas, cuelgues o reinicios controlados de una única aplicación.
Imagina ahora que tenemos de nuevo dos aplicaciones en el mismo hardware. Ambas usan el servidor Apache y hemos hecho cambios en una de ellas, pero hemos metido la pata hasta el fondo y ahora, por el motivo que sea, el servicio apache no arranca. Si hubiéramos hecho la instalación de las dos aplicaciones sobre el mismo servidor sin «empaquetarlas», ambas se verían afectadas por la incidencia y ninguna de las dos funcionaría. Con Docker, al correr cada una de forma independiente en dos servidores Apache independientes, lo que hagamos en una no interfiere nunca en lo que hagamos en la otra, por lo que nos podemos equivocar y estropear uno de los dockers pero el otro no se vería afectado en absoluto. Se habrá caído el primero y lo deberemos arreglar, pero el segundo ni se entera. Es más… podemos parar o reiniciar completamente uno de los Dockers y el otro simplemente seguiría funcionando sin preocuparse de lo que hubiera pasado fuera de su empaquetado. Al final, la única forma en la que un contenedor de Docker pueda afectar a otros es que esos contenedores compartan recursos (almacenamiento o tráfico de red). Por ejemplo, si un contenedor se pone a escribir datos en el disco sin parar y llena el disco, evidentemente puede poner todo el sistema en riesgo, pero supongo que entiendes que es un caso muy concreto y obvio.
Caso 3: Rollbacks controlados..
Ahora imagina que sólo tenemos una aplicación. Le hemos realizado una actualización pero descubrimos que esta nueva versión tiene un fallo crítico o no es compatible con ciertos componentes del sistema. En un entorno sin Docker, volver al estado anterior (rollback) puede llegar a ser complicado y arriesgado. A lo mejor tenemos que revertir cambios en todo el sistema y podríamos estar afectando a otras aplicaciones. Sin embargo, con Docker, podemos realizar rollbacks de manera controlada y aislada. Podemos volver a una versión anterior de la imagen de Docker de esa aplicación específica sin afectar otras partes del sistema. Esto nos daría tranquilidad a la hora de deshacer cambios (sabríamos que aunque tocáramos esa aplicación, el resto del sistema se mantendría estable).
Caso 4: Portabilidad
Si hemos desplegado nuestra aplicación en Docker, podremos llevarla junto con todas sus dependencias a cualquier otro equipo que tenga Docker instalado, ya sea en la nube o en un servidor local. Y esto en particular es algo que está muy bien. Por ejemplo, podemos probar nuestra aplicación en un entorno local y si vemos que funciona correctamente, luego podemos migrarla a entorno de producción o a una máquina en la nube sin tener que preocuparnos por configuraciones complicadas o diferencias en el sistema operativo principal de la máquina. Por ejemplo, podemos pasar una aplicación que ya está funcionando en un Debian a un Red Hat o viceversa. Y de nuevo… ¡¡Esto mola mucho!!
Caso 5: Escalabilidad
Esto es algo que viene derivado del caso 4. Imaginaos que tenemos una aplicación en producción (por ejemplo una página web). Funciona perfectamente, pero vemos que nuestra página ha tenido un éxito inusitado y cada vez entra más y más gente y nuestro servidor empieza a no ser suficiente para tramitar tantas peticiones. Las solicitudes de nuestros usuarios empiezan a ir más lentas e incluso se caen. La portabilidad de Docker nos permitirá migrar todo a un servidor más rápido de forma sencilla, otorgándole más recursos en un nuevo sistema.
Y para los más técnicos sólo una puntualización sobre este último punto: para escalar de forma eficiente hay más herramientas que facilitan esta labor y que no vamos a explicar en este artículo (como kubernetes). De momento no vamos a entrar en ellas.
Podría poner más ejemplos, pero creo que a grandes rasgos se entiende que en un servidor mola mucho tener las aplicaciones dockerizadas. Te da mucha libertad a la hora de cambiar la aplicación de servidor y el hecho de tener dependencias separadas puede resolver muchos problemas.
Hace ya unos cuantos años creamos en este mismo blog una serie de tutoriales para aprender a montar un servidor casero con una Raspberry. Empezamos aprendiendo a instalar Raspbian, que era de aquella el sistema operativo oficial para estos dispositivos, y después hemos ido montando sobre ese sistema un montón de «Servicios» para nuestro hogar. Pi-hole, un servidor de VPN, clientes de aMule y Transmision y hasta un servidor de Plex.
El tiempo ha pasado y han cambiado muchas cosas. Raspbian ha evolucionado y ahora se llama «Raspberry pi OS». Además ahora tenemos herramientas mucho mejores que nos facilitan mucho la vida a la hora de instalar y configurar el sistema, y tenemos tecnologías maduras que nos permiten montar todo de forma muchísimo más sencilla. Así que creo que es un buen momento de volver a explicar de nuevo todo lo que hemos montado de aquella. Seguiré enfocando estas guías a gente que está empezando en el uso de estos dispositivos y que no tienen ni idea de Linux (Creo que es la forma correcta de abordar este tema), por lo que os ruego a los expertos que me perdonen si me paro en exceso explicando comandos demasiado «basicos». Además también quiero introducir unos cambios muy importantes respecto a lo que hicimos hace unos años:
Vamos a adaptar estos tutoriales a las nuevas tecnologías y sistemas que han ido apareciendo en los últimos años.
Antes de ponernos a instalar cosas, vamos a aprender qué es docker, para qué sirve y cómo se usa (tendremos un artículo íntegramente de este tema)
Una vez que sepamos usar docker, vamos a emplearlo para instalar todo lo que habíamos instalado en los tutoriales anteriores (Sí… será como una repetición de esos mismos tutoriales pero usando docker).
Y una vez que sepamos montar todo lo que ya habíamos montado previamente ¿Por qué no aprender a instalar muchas más cosas en nuestro servidor?
Bueno... muchas más cosas no podrán ser. Una Raspberry es un dispositivo muy limitado y como le metas mucha caña seguro que acaba explotando.
Para tu información, Usuario Anónimo, todo ese software (sin dockerizar) lo he llegado a usar activamente, todo a la vez, en una mísera Raspberry Pi 2. Las Raspberrys actuales tienen más núcleos, más capacidad de proceso, más memoria y procesadores de 64 bits en lugar de 32 por lo que son mucho más potentes y pueden hacer más cosas a la vez. Aún así es evidente que no tienen las capacidades que pueda tener un ordenador completo moderno, pero sí que tienen potencia más que suficiente como para aguantar con todo esto y más.
En todo caso es importante indicar una cosa. Excepto este primer tutorial (Que está enfocado a la instalación del sistema operativo en una Raspberry), el resto de artículos podréis usarlos tal cual en cualquier instalación linux basada en Ubuntu o Debian. Así que lo que aprendamos aquí podremos aplicarlo a instalaciones más complejas.
¿Qué necesitamos para seguir el tutorial?
Para poder montar nuestro pequeño servidor vamos a necesitar lo siguiente:
Un ordenador (Da igual que tenga instalado Windows, Mac OS o Linux). Lo necesitaremos para acceder a nuestra pequeña raspberry porque a ésta ni siquiera le vamos a conectar un monitor. Trabajaremos con ella siempre de forma remota.
Una placa Raspberry Pi. Para los proyectos que crearemos, nos servirá cualquiera desde la Raspberry Pi 3 en adelante. Incluso una Zero 2 W nos podría servir (Ojo: una zero normal no nos serviría porque no soportaría un sistema operativo de 64 bits). Una sencilla búsqueda en Amazon os muestra algunas opciones.
Una tarjeta de memoria Micro SD que hará las veces de disco duro de nuestra Raspberry. Vamos a meterle bastante caña, así que intentad ponerle una decente (no la compréis en el bazar de al lado de casa. Coged una en una tienda de informática de confianza). Os recomendaría usar una de un mínimo de 32 GB de almacenamiento. Este enlace os da algunas opciones.
Necesitamos que nuestro ordenador pueda escribir en esa tarjeta de memoria, así que si no tiene un lector de tajetas compatible, necesitaríamos ponerle un adaptador USB que permita escribir en ella. Me refiero a algo como esto.
Os recomiendo encarecidamente conectar la raspberry con un cable de red directamente al router. Evidentemente no podremos hacerlo si usamos una Raspberry Pi Zero 2 W, pero si no es así, buscad un cable de red y hacedle un sitio a la raspberry al lado del router. Usad sólo la conexión WiFi de la Raspberry como última opción.
Para muchos de los proyectos que vamos a hacer, vamos a necesitar mapear puertos en el router que os otorga conexión a internet, así que tened a mano las credenciales de acceso al vuestro.
A colación con este último punto, voy a suponer que sabéis todo lo referente a direcciones IP (Sabéis qué es una dirección ip, qué segmento de IP’s estáis usando en vuestra instalación, etc…). Suelo detenerme en cada punto en este tipo de tutoriales, pero pararme a explicar qué es una dirección IP tal vez sea excesivo.
Es importante indicar que, con la excepción de este primer tutorial, el resto de lo que vayamos a aprender se va a poder aplicar tanto en una Raspberry como en cualquier otro equipo en el que hayáis instalado una distribución Linux (al menos las derivadas de Debian y Ubuntu).
Sin más preámbulos, vamos a ver cómo podemos instalar un sistema operativo optimizado para funcionar como servidor en nuestra Raspberry.
Windows 11 ha sido polémico desde su lanzamiento por diversas causas. Sin embargo a los que usamos un montón de ordenadores diferentes nos ha enojado sobre todo un aspecto de este sistema operativo: no puede instalarse en equipos que «calcen» un procesador anterior a 2017.
Tienes razón. Siempre me pregunté por qué no podía instalarse oficialmente en un equipo anterior a esa fecha. Sobre todo porque yo conseguí parchear Windows 11 y lo tengo funcionando en un Intel Core de cuarta generación sin mayor problema. Esa limitación es completamente artificial.
Efectivamente Usuario Anónimo. Muchos somos los que nos hemos visto obligados a usar parches o trucos para hacer funcionar Windows 11 en equipos de generaciones anteriores a los que oficialmente soporta el sistema. Sin ir más lejos, ahora mismo te estoy escribiendo este artículo desde un flamante Mac Mini del año 2012, que además de correr Mac OS Sonoma (que oficialmente no podría funcionar el él) también tiene una partición con Windows 11. Y estamos hablando de un equipo con un procesador Intel Core de tercera generación.
Personalmente tengo una teoría sobre estos requisitos excesivos para instalar Windows 11. Lo que ha hecho Microsoft ha sido cargarse de un plumazo todos los procesadores que se vieron afectados en su momento por las vulnerabilidades Spectre y Meltdown (Lo del TPM es también de traca, puesto que tampoco es necesario para hacer funcionar un Windows 11, pero es otra historia). Es algo completamente injusto, puesto que los usuarios de estos procesadores ya se vieron perjudicados con parches que para tapar esa vulnerabilidad reducían el rendimiento de sus sistemas. Pero supuestamente con los parches ese fallo quedaba solventado, así que no ha sido nada justo que haya que parchear Windows para que funcione en estos procesadores, porque está más que demostrado que Windows 11 funciona perfectamente sobre ellos.
En todo caso ha habido mucha gente que ha podido instalar Windows 11 en equipos con estos procesadores mediante diversos parches. El problema ha sido siempre que cuando Microsoft saca una actualización importante del sistema (como lo fue en su momento la 22H2), antes de aplicar la actualización el sistema comprobaba si era compatible con ella. Al no serlo, Windows no se actualizaba automáticamente y había que actualizar utilizando de nuevo «ñapas» extrañas.
Sí. Actualizar a la 22H2 ha sido un pequeño follón. Yo tuve que bajar una ISO completa y parchear varios archivos de esa ISO para que me permitiera hacer la actualización, porque si no no se iba a actualizar nunca.
Efectivamente. El método para actualizar estos equipos hasta ahora ha sido ejecutar un actualizador parcheado de alguna forma extraña y sobreescribiendo el sistema completo. No se podía actualizar de forma directa.
Sin embargo para actualizar de la versión 22H2 a la 23H2, los usuarios de equipos no compatibles tenemos una pequeña alegría. Sólo hace falta instalar un pequeño parche en el sistema (que aún por encima es oficial) para que el sistema se actualice sin mayores problemas. Vale: hay que instalar el parche de forma manual, ejecutándolo. Pero actualizar el sistema entero no debería llevar más de 3 minutos con este método, que fue publicado en inglés en este foro. Vamos a intentar ser algo más claro que ellos e intentaremos explicar de forma sencilla cómo hay que hacer para llevar a cabo la actualización.
Cada sistema operativo tiene sus ventajas e inconvenientes. No por ser un producto de alta gama Mac OS es el mejor sistema operativo del mundo. Ni por ser el más usado lo es Windows. Y tampoco por ser libre y gratuíto lo es GNU Linux. Cada uno tiene sus puntos fuertes y débiles. Los que tenemos que pasar de un sistema a otro contínuamente lo vemos día a día. Y si hay algo que diferencia a estos tres sistemas casi radicalmente es la forma en la que se instalan programas nuevos en cada uno de ellos.
Uy, en eso tengo que darte la razón. En Mac OS es poco más que arrastrar programas y en Windows es hacer doble click en un archivo de instalación. Sin embargo en linux hay que meter unos comandos complicadísimos desde el terminal que...
Espera Usuario Anónimo. Antes de que metas más la pata, es bueno recordar que estos tres sistemas ya tienen tienda de aplicaciones (y sí… el último en implementarla ha sido Windows, al igual que fue el último en implementar escritorios múltiples y tantas otras cosas). Pero te voy a hacer un apunte muy importante: ese sistema que tiene Linux y que tan complicado te resulta para instalar y actualizar programas a través del terminal del sistema tiene partes muy positivas. Puede ser un poco complicado de entender al principio, pero gracias a él puedes hacer instalaciones de un montón de programas diferentes desde una única línea de comandos. Tener la posibilidad de usar algo similar en windows es muy interesante, sobre todo para un administrador de sistemas de una pequeña empresa.
¿Seguro que te has tomado hoy la medicación? ¿Cómo le va a interesar a alguien instalar cosas en windows a través de un terminal si puedes instalar programas descargándotelos o entrando en la tienda de aplicaciones de Microsoft?
Te voy a poner un ejemplo con el que lo vas a entender a la primera. Imagina que por el motivo que sea tienes que instalar 4 portátiles en tiempo record. Necesitas instalarles un montón de software y te va a llevar su tiempo ir instalándolos uno a uno, y eso para cada portátil por separado. Estos equipos no son parte de un dominio, por lo que no puedes optar por hacer instalaciones desatendidas desde el propio servidor ¿No te parecería interesante poder ejecutar un único comando que instalara todo el software que necesitas de una única vez? Es más… imagínate que esos ordenadores tengan ya todo instalado pero te gustaría actualizar todos sus programas ¿No estaría bien poner un único comando en su terminal y que absolutamente todo el software instalado se actualizara a su última versión como por arte de magia? Y por supuesto hacer todo esto sin gastar un duro, sin usar utilidades de terceros ni programas con publicidad invasiva.
A ver... visto así eso estaría muy bien, pero esto que planteas simplemente no se puede hacer en Windows. Windows no es linux. Todo es gráfico y no se puede...
¡Quieto parao! Porque sí que se puede. Para eso tenemos un comando muy útil en Windows 10 y Windows 11 llamado Winget. Escribiendo una única linea puedes instalar de golpe varios cientos de programas en un mismo equipo. Así que en este artículo vamos a explicar cómo podemos usar winget para hacer instalaciones de software desatendidas. Pero también voy a intentar no meterme en aspectos demasiado técnicos para que cualquiera sin demasiados conocimientos informáticos pueda seguir fácilmente las explicaciones.
Apple siempre ha sido muy… digamos… especial con las actualizaciones del sistema operativo de sus ordenadores. Es habitual que cuando ellos sacan una versión nueva de su sistema operativo dejan sin poder recibir actualizaciones a muchos modelos de ordenadores que son perfectamente capaces de ejecutar la última versión de su sistema.
Bueno... no te pases. Seguro que esos sistemas operativos tienen características nuevas que hacen que sea imposible hacerlos funcionar en los equipos que quedan fuera de la actualización.
Pues estas en un error, Usuario anónimo. Hemos visto en un artículo anterior que hay un montón de equipos que oficialmente no soportan Mac OS 10.15 Catalina y en ese mismo artículo hemos aprendido a instalarlo de una manera sencilla en esos mismos equipos. Y si lo habéis hecho, habréis comprobado también que el rendimiento del sistema es demasiado bueno como para hacernos creer que esos equipos no puedan recibir la actualización.
Ésto debe ser un moda en las grandes tecnológicas que diseñan sistemas operativos, porque Microsoft ha hecho algo similar con Windows 11 y sus requisitos absurdos para la instalación del sistema. Microsoft exige procesadores del 2016 en adelante y chips TPM, pero es muy sencillo saltarse esos requisitos y tener un sistema igualmente estable y rápido con procesadores muy anteriores y sin necesidad de tener el chip TPM.
Además, para la desgracia de sus usuarios, Apple ha vuelto a hacer lo mismo con la versión de macOS 13 Ventura. De nuevo hay un montón de equipos en los que oficialmente no podemos instalarlo. Sin embargo desarrolladores independientes han demostrado de forma práctica que se trata de una limitación artificial y que es posible realizar una instalación de Mac Os Ventura en equipos más antiguos de los que indica Apple.
Ya, pero seguro que hacer eso está al alcance de muy pocos. Me da que hacer algo así es algo tremendamente complicado. Mejor voy preparando la billetera para comprar un Mac nuevo y...
Para el carro, Usuario Anónimo. Ni se te ocurra deshacerte de un ordenador que posiblemente tenga aún mucha vida. Instalar macOS Ventura en un ordenador no compatible no es complicado. Es lento por los tiempos de espera descargando el sistema operativo, creando el medio de instalación e instalando el sistema, pero no es en absoluto complicado. Por ser, ni siquiera es ilegal hacer lo que se indica en este artículo, puesto que en las condiciones legales de la instalación (que te animo a ver en este enlace) se indica que el sistema sólo se puede instalar en un equipo fabricado por Apple. No pone en ningún sitio que no se admita la instalación en un equipo Apple que no es compatible.
En este artículo vamos a ver cómo cualquiera puede instalar macOS Ventura en un Mac no compatible, de forma que el sistema sea completamente estable y sea posible trabajar con él sin miedo a cuelgues ni a lentitudes.
Desde hace muchos años cualquier usuario de un ordenador dispone de muchísimas opciones para poder realizar llamadas de audio y videoconferencias. Podemos remitirnos al Pleistoceno informático y hablar de Yahoo! Messenger, Microsoft Messenger, AOL instant Messenger… (vaya… todos tenían la palabra «messenger») hasta los que más se usan hoy en día, como Skype, Microsoft Teams, Zoom, Webex, Google Chat o Google Meet.
Ay... El Messenger de Microsoft. Qué recuerdos. Acabas de hacerme saltar una lagrimita, canalla. Snif, snif...
Fíjate Usuario Anónimo que siempre me pareció curioso que casi todo el mundo de aquella época usara el Messenger de Microsoft. Yo de aquella era de «Yahoo! Messenger». Supongo que cuestión de gustos.
En fin… dejemos las historias de abuelo Cebolleta y vamos al grano. Desde que el infame Covid19 surgió para cambiarnos nuestras vidas para siempre, el poder hacer videoconferencias a nivel empresarial se ha hecho cada vez más importante. Ahora ya no se trata de hacer una llamada con uno de estos programas a un amigo o familiar para verle la cara.
Claro. Ahora lo que mola es hablar con alguna chorba por internet para verle las...
¡¡USUARIO ANÓNIMO!! 😠 ¡¡Qué nos pueden estar leyendo niños!! 😤 A la siguiente te echo. 😒
¡¡Eh! ¡Esas caritas son muy de messenger! 😂
Perdonad a este usuario. Ya no sé qué hacer con él. 😓 Como iba diciendo, muchas de las cosas que hemos hecho durante la pandemia se han quedado y ahora cada vez son más frecuentes las videoconferencias grupales. Muchas clases han podido ser impartidas gracias a que ha habido servicios que permitían a un profesor dar clase de forma remota a decenas o incluso cientos de alumnos. Y a nivel empresarial muchísimas reuniones han pasado de ser presenciales a hacerse de forma telemática, también con multitud de asistentes. Incluso las reuniones con comerciales que antes se pasaban presencialmente por la empresa para ofrecerte algún servicio o producto, ahora muchas se hacen mediante videoconferencia.
Como hemos dicho al principio, se han usado soluciones diversas para afrontar estas nuevas necesidades. A nivel docente diría que Zoom, Skype y las herramientas de Google han sido las soluciones más usadas. Incluso algunas universidades o comunidades autónomas han optado por usar alguna plataforma propia (Normalmente desarrollada con software de Microsoft).
A nivel empresarial, por lo que he podido ver, el claro ganador ha sido Microsoft Teams, que es… Un momento… ¿Alguien de Microsoft nos está leyendo?
Ehhh... pues creo que no.
Perfecto. Pues entonces puedo decir sin problema que es el mayor desastre en cuanto implementación que he podido ver en una plataforma de mensajería ¿Verdad?
Ehhhh.. ahora eres tú el que me deja con el culo torcido.
A ver… no es que el programa funcione del todo mal (cuando eres capaz de hacerlo funcionar, claro), Es que no es ni medianamente normal la complejidad que tiene este sistema para poder crearte un sistema de mensajería decente para la empresa, ni tampoco es normal el descaro con el que le cuelan a las empresas licencias de office 365 con la excusa de que son necesarias para este tipo de software, cuando realmente ni siquera son necesarias.
¿Pero si yo tengo una cuenta personal de Teams? ¿Por qué la complejidad de la que hablas?
Puedes tener una cuenta personal de Microsoft Teams usado una cuenta de correo con el dominio «@outlook.es», pero si intentas usar un dominio de empresa del tipo «@miempresa.com» y configurar múltiples usuarios en ese dominio vas a ver problemas por todos los lados. Incluso se te «invitará» a comprar licencias de office 365 para poder usar teams… cuando realmente Teams sí que se puede usar de forma gratuíta con dominios propios creando las cuentas mendiante Azure, pero con un nivel de complejidad para un usuario normal que roza lo salvaje. Tengo en mente hacer algún día un tutorial explicando cómo se hace, que este asunto tiene mucha tela.
En todo caso, hemos visto en otro tutorial que la mensajería empresarial podemos sustituirla sin problemas con software libre usando Zulip (que al final, aún teniendo que instalarlo en un servidor Linux, resulta mucho más sencillo de poner en marcha y configurar que un sistema Teams, por no decir que el interface a la hora de usarlo es mucho más intuitivo y amigable). Pero también es factible usar software libre de gran calidad para poder hacer videoconferencias, tanto entre dos personas como grupales con muchísimos participantes, y que sea válido tanto a nivel de docencia como a nivel empresarial.
¿Y por qué cambiar el modo en que la gente hace las videoconferencias si a la gente le funciona lo que tiene? Además sé que tú eres de los de "Si funciona no lo toques".
Tengo un montón de motivos por los que te diría que a cualquier empresa o escuela le debería interesar cambiar ya mismo su software de videoconferencias a alguna solución de software libre, pero los que no se deberían ignorar serían fundamentalemente 4:
Privacidad: Cuando haces una videoconferencia en una plataforma que no es tuya, toda la información (el vídeo, audio, mensajes, etc…) pasa por servidores que no controlas y esa información puede acabar en malas manos. Es un riesgo que mucha gente obvia y no debe despreciarse. Además para hacer una reunión con el sistema que te voy a proponer no hay que registrarse en ningún lado ni crear ningún tipo de usuario. Todo es fácil, rápido y sobre todo seguro.
Costes: Sobre todo cuando hay que hacer videoconferencias grupales, los costes de las plataformas para hacer estas conferencias pueden no ser despreciables. Algunas permiten hacer llamadas de hasta 40 minutos de forma gratuíta, pero después de esos 40 minutos la llamada se corta si no tienes un plan de pago. La solución que vamos a ver en este artículo es completamente gratuíta para la empresa.
Calidad: Si usas un servidor propio para hacer videoconferencias, no dependes de que el servidor de videoconferencias del proveedor X (Sea Microsoft, Zoom u otro cualquiera) esté saturado o que tenga problemas de conectividad. No hay nada más rápido que tener el propio servidor de videoconferencias en tu propia sede, por lo que resulta muy difícil tener problemas de conexión o calidad de vídeo una vez que todo está funcionando.
Compatibilidad. Las videoconferencias con el método que vamos a ver se van a lanzar siempre desde el navegador de internet. Por lo tanto, el único requisito para los participantes es que tengan un navegador de intenet. Esto va a funcionar en Windows, Mac, Linux, o en cualquier otro sistema sin problema, sin necesidad de instalar absolutamente nada en el equipo y con una facilidad de uso impresionante. En el caso de usar este sistema sobre plataformas móviles (iOS, Android…) sí que necesitaremos instalar la aplicación específica para el móvil, pero eso lo hay que hacer igualmente con cualquier otro sistema de videoconferencias si se quiere usar desde el móvil.
Vaya... pues visto así tiene sentido y todo. A veces hasta me da la impresión de que piensas, fíjate tú.
Tiene mucho más sentido del que te imaginas. Así que en este tutorial veremos un sistema de videoconferencias llamado Jitsi. Aprenderemos cómo se usa su versión web y voy a dar instrucciones detalladas para que si queréis podáis montaros vosotros un servidor de videoconferencias con jistsi que os permita ser independiente de servidores ajenos.
Desde que comenzó la pandemia de Covid19 allá por el 2020 muchas empresas han tenido que buscarse la vida para dar soporte a usuarios de ordenadores situados lejos de sus propias oficinas. El teletrabajo ha hecho que para mucha gente la oficina ahora sea su domicilio, y pese a que este hecho tenga consecuencias positivas tanto para los empleadores como para los empleados, también tiene algunas negativas.
Por ejemplo, los departamentos de IT de muchas empresas tienen ahora más cosas de las que ocuparse, ya que van tener que dar soporte a los empleados que están trabajando desde sus casas, y por qué no decirlo, esto ha supuesto un pequeño quebradero de cabeza en algunos casos. Cuando hay que configurar algo en el ordenador que usa el empleado es imprescindible que la empresa use alguna herramienta que permita visualizar y controlar remotamente la pantalla de ese equipo.
Uy, sí. Herramientas de esas en mi empresa las llevan usando hace años. Primero usaban LogMeIn. Luego empezaron a usar Team Viewer. Luego Anydesk. No sé por qué andan cambiando de software cada poco tiempo.
Algo similar ha pasado en casi todas las empresas. Incluso cuando tienes contratado algún software en el servidor y los desarrolladores necesitan acceder a él de alguna forma, acaban instalando alguna otra herramienta similar. El problema es que muchas de estas herramientas se han intentado vender con precios absurdamente elevados, incluso para las empresas (LogMeIn sobre todo), con lo cual poco a poco fueron entrando competidores con precios «menos exagerados». Algunos de ellos con el tiempo acabaron optando por la misma política de precios desorbitados (Team Viewer) y algunos otros han podido ofrecer precios mucho más razonables (como Mikogo o Anydesk), pero sin llegar a ofrecer nada que no ofreciera ya la competencia, por lo que no hay ningún software de este tipo que podamos decir que usa la gran mayoría de las empresas. Cada una va usando el software que ve más conveniente para esta labor o que más se ajusta a sus presupuestos.
Por mi parte siempre he distinguido dos tipos en esta clase de software: por un lado tenemos los programas que funcionan (mejor o peor) en una red local, pero que a la hora de conectarse a través de internet tienen serios problemas de acceso porque no están diseñados para acceder a ellos a través de internet (como VNC o el escritorio remoto de Microsoft). Y por otro lado tenemos programas que nos permiten conectar al equipo de forma remota a través de internet y dar soporte directo al usuario, como LogMeIn, Team Viewer, AnyDesk y similares.
Y básicamente en estas estábamos hasta que hace muy poquito entró un nuevo competidor en el juego que nos vino a ofrecer algo tremendamente rompedor.
Te veo venir. ¿Algo que no usa ni el tato? ¿Programa raruno? ¿Software libre quizá? ¿Algo que para instalarlo tienes que sacarte tres master en informática de sistemas?
Ehhhh… bueno… te concedo lo de raruno. El tema es que por fin se ha desarollado un software completamente libre que nos permite acceder a equipos de forma remota a través de internet, de forma muy similar a cómo lo hace Team Viewer o Anydesk. Mira, fijate en esta pantalla de anydesk.
Ahora mira esta otra pantalla de RustDesk (que es el software del que vamos a hablar en este artículo)
¡Ay va! ¡Pero si parecen gemelos!
Si te fijas el interfaz es casi igual (Bueno… por qué no decirlo, muchos de estos programas tienen interfaces similares). Personalmente a RustDesk no le he echado en falta ninguna funcionalidad clave, así que todo esto unido a que es un software por el momento completamente gratis…
Espera, espera... ¿Por qué "por el momento"? ¿El programa se va a volver de pago?
Sólo en una parte que no nos debería afectar. Este software está aún en desarrollo. Según he podido entender, los desarrolladores tienen la intención de mantener gratuítas las funcionalidades que tiene Rustdesk en este momento (básicamente todas las cosas que podemos hacer con AnyDesk, por ejemplo). Pero al parecer están desarrollando también un interface web para controlar todos los dispositivos vinculados con nuestro servidor de Rustdesk, controlar los equipos que estén dentro del dominio de la empresa, etc… Ese interface por lo que he entendido va a ser una parte de pago, pero no es algo crítico ni mucho menos. En mi empresa pagamos (hasta ahora) religiosamente licencias de Anydesk y esa parte no se la he visto a Anydesk por ningún lado, así que puede estar interesante cuando terminen su desarrollo.
¡¡Quieto parao!! ¿Qué es eso que dijiste antes de "nuestro servidor de RustDesk"?. Anydesk o Team Viewer no necesitan instalar ningún servidor. Sólo un programa en el equipo cliente y otro en el ordenador de la persona que va a dar soporte al usuario.
Lo sé, pero el tema es que no puedes hacer una conexión de equipo a equipo a través de internet (para visualizar la pantalla del cliente, por ejemplo) sin una estas dos opciones:
Saber su ip pública y que esta ip pública sea accesible a través de internet.
Usar un servidor que medie en la conexión entre los dos equipos.
El primer punto es el punto clave. Últimamente están muy de moda las líneas CG-NAT de las que tanto hemos hablado en otros artículos (y que tanto detesto). Este tipo de líneas no tienen ip pública a la que poder mandar una petición, así que tendremos un problema a la hora de acceder a ese equipo de forma directa. Resulta mucho más adecuado que el software de escritorio remoto de ese equipo se conecte a un servidor y que se haga la transferencia de datos con ese servidor mediando entre los dos equipos. Un esquema similar es el que usan todos estos servicios, sólo que el servidor que se usa es la infraestructura de la empresa desarrolladora (Team Viewer, Anydesk o la que sea) en lugar de tener que montártelo tú en tu empresa.
Sí, sí... lo que quieras. Pero yo no necesito montarme un servidor para usar AnyDesk.
Pues has de saber que la parte de montar un servidor de Rustdesk es completamente opcional. Puedes usar RustDesk sin montarte un servidor, usando los servidores de RustDesk. Sin embargo para mi, ya que existe la opción, es más que recomendable montarse uno.
Para que nos entendamos: puedes dar soporte a un usuario con RustDesk usando los servidores del propio RustDesk (Como haces con AnyDesk o Team Viewer), con lo cual necesitas sólo el programa en el ordenador del usuario y en el tuyo. O también puedes montarte tú un servidor de RustDesk propio para que todo el tráfico pase por tu servidor. En este artículo aprenderemos a montarnos nuestro propio servidor de Rustdesk aunque también aprenderemos a usar RustDesk sin realizar esa instalación.
Ni que decir tiene que montarte tú un servidor propio es la opción ideal siempre que sea factible. Tendremos menos riesgos de que alguien intercepte el tráfico directamente en el servidor y no dependeremos de si un servidor ajeno está saturado de peticiones o no, con lo que si nuestro servidor está bien dimensionado no deberíamos tener nunca problemas de rendimiento. Si lo piensas, para una empresa tener algo así es más que recomendable (y toda empresa que tenga un departamento de informática debería tener alguien que pudiera montarlo sin mayores problemas). No dependes de terceros para un servicio que puede llegar a ser crítico y te garantizas un rendimiento óptimo siempre.
Así que vamos a ver cómo podemos montar este tinglado sin que nos explote ningún equipo.
Hace ya algún tiempo vimos en otro artículo que hoy en día es indispensable contar con un gestor de contraseñas para poder manejarlas de forma correcta. Hemos analizado los riesgos de no tener un gestor de contraseñas y hemos aprendido a usar una opción muy interesante para gestionarlas de forma correcta, mediante un progama llamado «Keepass».
Ahí le has dado. Tengo que reconocer que tenías razón y el programilla va de perlas. La pena es que hay algo que tienen los programas "famosos" como 1Password o LastPass que Keepass no tiene, y es la gestión de las contraseñas en todos los dispositivos. Es un coñazo tener que sincronizar de alguna forma cuando quiero ver las contraseñas en el móvil.
Efectivamente. Ese es una de las dos funcionalidades que yo le echo en falta a Keepass. La otra gran funcionalidad que le echo en falta es la posibilidad de trabajar varias personas en tiempo real con el mismo grupo de contraseñas. Estas son funcionalidades que este tipo de programas en la nube suelen tener resueltas. Otra funcionalidad muy útil es que muchos de ellos permiten instalar un plugin en el navegador de internet que «captura» las contraseñas según las vas poniendo y las introduce de forma automática en el gestor. Luego, cuando el navegador te pide la contraseña de esa página, el propio plugin te la ofrece sin tener que abrir el gestor de contraseñas para revisarla. Es una forma de trabajar muy muy cómoda.
Así que hoy vamos a ver una alternativa a Keepass que hace todo eso y que nos va a guardar nuestras contraseñas en una nube que…
¿Lo quééééé? Pero si nos has dicho en el otro artículo que intentemos no guardar contraseñas en nubes ajenas, que muchas de estas nubes habían sido hackeadas anteriormente y que no te fiabas de que alguien pudiera estar espiando tus contraseñas.
Déjame terminar, Usuario Anónimo. Efectivamente no soy muy amigo de usar nubes ajenas para almacenar mis datos. Por eso os voy a proponer un par de soluciones de código abierto que os permitirán crear una nube en algún equipo que tengáis encendido todo el día. Las contraseñas estarán almacenadas en vuestro propio servidor y las tendréis controladas en todo momento.
O si tiramos por un perfil un poco más profesional, podríamos tener un ordenador o servidor con algún tipo de virtualización (VMWare, Proxmox o similar) y crear una máquina virtual para alojar este gestor de contraseñas.
Incluso podríamos usar algún servicio que nos alquilase una máquina virtual para montar esto, como los de «DigitalOcean«, aunque he de decir que no soy partidario de usar «ordenadores ajenos» para estas cosas. Raro que es uno.
Por tanto vamos a enfocar el tutorial para que siempre podamos seguir siendo los dueños de nuestras propias contraseñas, alojándolas en algún equipo que controlemos e impidiendo el paso a personas ajenas a él a la vez que habilitamos la posibilidad de acceder a ellas a través de internet tanto mediante un plugin en nuestro navegador como con una aplicación de móvil o escritorio. Para ello vamos a aprender a instalar en nuestro servidor tanto Bitwarden como Vaultwarden, que aunque están muy emparentados, la instalación de uno y otro es bastante diferente. Elegir uno u otro os lo dejo a vosotros, aunque tenga bastante clara mi preferencia.
Eso no lo entiendo. Si sabes perfectamente cuál es el mejor entre esos dos ¿No nos lo puedes recomendar y listo? Es que tengo las patatas al fuego y quería ir directo al grano, no sea que se me quemen mientras leo esto.
Podría, pero estos dos sistemas están tremendamente relacionados y supongo que habrá gente que quiera probar ambos sistemas para comparar, así que voy a explicar el origen de ambos, sus diferencias y cómo hacer la instalación de cualquiera de los dos. Vamos al lío.
Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.