Volver atrás

Mini PC

Última modificación: 16 de agosto de 2026

Esto no es una guía como tal, es más bien un histórico.


Índice:


Introducción

Como indiqué en el artículo Jellyfin, quería hacerme con un mini pc para tenerlo como un pequeño servidor que consumiera menos que mi pc de sobremesa. La idea es tenerlo para ver películas y series en casa desde Jellyfin, pero no es el único servicio que quiero que ofrezca.

Después de buscar varios mini pc, lo cual fue difícil porque los recomendados con procesadores N100 y N150 se me van de precio, me decanté por uno reacondicionado de oficina como el Dell Optiplex 3040.

  • Procesador: Intel Core i5-6500T
  • RAM: 8GB
  • Almacenamiento: 256GB
  • Precio: 135€

Es bastante modestillo, pero para el uso que le voy a dar diría que de momento está bien y siempre puedo mejorarlo en el futuro.

Primeras pruebas

Una vez me llegó a casa hice que pasara algunas pruebas para ver si todo está bien.
Lo primero fue comprobar que el ordenador tuviera el hardware específicado en la página web con lo típico: comprobar los componentes, comprobar el visor de eventos por si hubiera alguna información rara, los puertos funcionan, etcétera.

Después le pasé una película mediante un pendrive y la tuve reproduciendo en bucle dos o tres veces para ver si tenía algún problema de sobrecalientamiento o similar. Apenas se calentó y el cargador con el que vino tampoco.

Finalmente, ya que todo iba bien, hice una prueba final de estrés con OCCT y los resultados fueron satisfactorios.

Así que... ya podía formatear el disco duro (venía con un Windows 11 sin licencia) y poner un Debian en su lugar.

Sistema operativo

Como iba diciendo, decidí que lo mejor es que fuera un Linux ya que consume bastante menos memoria que un Windows (hecho comprobado con mi antiguo Acer de 2009 que no tiene problema para tareas básicas con un Linux Mint). Me decanté por Debian por estabilidad y facilidad de uso.

Una vez me descargué la ISO, actualicé mi versión de Rufus (lo tengo portable siempre, así que fue borrar una y descargar la nueva) y metí la imagen en un pendrive. Usé los valores por defecto.

Después fue simplemente arrancar desde el pen, en mi caso con F12, y hacer la instalación normal y corriente.
Sin embargo, sí hice algunos cambios como por ejemplo:

  • Almacenamiento: marqué la opción de separar en varias particiones.
  • Contraseña tanto para el usuario normal como para el root.
  • Desmarqué Entorno de escritorio Debian y marqué Xfce, SSH Server, Utilidades estándar del sistema.

Mi idea es que este ordenador no tenga ni pantalla, ni teclado ni ratón propios y conectarme a él a través de SSH. Es decir, tenerlo headless.

Una vez terminé de instalarlo, me dio problemas para detectar la instalación recién hecha, pero fue porque en Rufus marqué "MBR o UEFI" así que desde la propia UEFI tuve que activar el arranque legacy y ahí me funcionó sin problemas.

Comandos interesantes en lo referente a hardware: Linux commands hardware information.

Atajos básicos útiles mientras tengo disponible un teclado extra pero no un ratón:

  • CTRL + ALT + T para abrir la terminal.
  • ALT + F10 para maximizar la ventana actual, ALT + F9 para minimizarla.
  • CTRL + L limpia la terminal, como escribir clear.

Internet

Mi Dell no viene con ninguna tarjeta de red inalámbrica, pero el puerto RJ45 no tiene problemas de ningún tipo. Sin embargo, no quiero ponerme a tirar otro cable extra así que se me ocurrieron dos opciones: comprar un switch o comprar un pincho WiFi. Al final compré el pincho a 7€.

El problema es que a veces las distribuciones de Linux pueden ponerse un poco quejicas con los drivers, así que no estaba segura de si iba a funcionar. Además, como se puede ver en la parte trasera del sobre, solo indica compatibilidad con Windows. ¿Entonces me funcionaría? Tuve que arriesgarme.

Compré el más barato y de la marca Vention. Lo coloqué en mi Sony VAIO de 2005 que tiene problemas conectándose al WiFi y me funcionó, así que solo quedaba comprobar si también funcionaba en mi Debian y... ¡sí, funciona perfectamente! De hecho, no hice nada en especial, fue conectarlo y funcionar.

¿Sería mejor por cable? Sí, pero ahora mismo lo tendré mediante una conexión inalámbrica y tal vez lo cambie en el futuro, pero de momento no me hace falta.

Comandos útiles:

  • lspci información general de buses y dispositivos del sistema.
  • lspci | grep Ethernet permite ver el controlador de Realtek y el modelo.

Pasando a totalmente headless

No quiero tener que tener un teclado, monitor y ratón extra, o estar quitando y poniendo accesorios para poder operarlo. La solución es conectarme a través de SSH y hacer la administración pertinente en cada caso.

Primero metí el usuario normal al grupo sudoers para poder utilizar comandos de superusuario con sudo. En este enlace se explica cómo hacerlo: add user to sudoers. Yo lo hice con el comando usermod pero tuve que indicar la ruta completa con /usr/sbin/usermod -a -G sudo username e iniciada como root.

Por si acaso, comprobé si SSH estaba instalado en mi Debian (debería, porque lo indiqué desde la instalación y de hecho sí lo está) con:

  • su root
  • sudo apt update
  • sudo apt install openssh-server
  • sudo apt install openssh-client

Pero realmente me ponía que estaban actualizados a la última versión.

Después, como ya tengo PuTTY instalado, solamente metí la IP del Debian (hostname -I) y por el puerto 22 (por defecto) inicié la conexión sin problemas con mi usuario normal (con root no).
Para salirse, se puede con logout o con exit. Para apagar el ordenador antes de salirnos: shutdown -h now o systemctl poweroff. Ambos pueden requerir sudo delante y pedirá autenticarse antes de llevar a cabo el apagado.

¡Y ya no hace falta usar ningún accesorio extra! Lo único que faltaría es que inicie en modo texto sin entorno gráfico para ahorrar recursos. De esto se habla en la sección GRUB.

Añadidos básicos antes de continuar

Artículo a tener en cuenta: Advice For New Users On Not Breaking Their Debian System.

Los drivers para todo lo primordial parece ya estar instalado, SSH está instalado, ¿entonces qué queda antes de continuar? Comprobar que está:

  • apt update y upgrade teniendo en cuenta lo que se menciona en el artículo anteriormente enlazado.
  • curl para la transferencia de archivos, se puede ver que lo usé en el artículo Tiempo.
  • htop/btop para monitorizar y administrar los procesos del ordenador.
  • smartmontools para monitorizar discos duros (puede quedarse para más tarde).
  • ncdu para analizar el espacio en disco.
  • ufw o nftables como cortafuegos (firewall), pero habrá que añadir reglas para poder usar nuestra conexión SSH.
  • git para tener un control de versiones, especialmente para los contenedores de Docker que añadiré con el tiempo.

Se puede comprobar mediante dpkg -s nombre_paquete, por ejemplo, dpkg -s htop. En mi caso, no viene ninguno instalado.

GRUB: ¡cuidado!

Artículo de referencia: Guía de configuración básica de GRUB.

Ahora mismo me inicia sesión con xfce (entorno de escritorio), pero yo quiero que por defecto entre en modo texto pero que aun así dé la opción de elegir.

Investigando, porque la verdad nunca he hecho esto, lo que se hace es editar dos archivos referentes al GRUB: /etc/default/grub y /etc/grub.d/40_custom. ¡Importante hacer una copia antes de editarlos! Para ello, recomiendo ver el artículo enlazado que hay al principio de la sección.

Los pasos que voy a seguir se explican aquí también: Add grub new boot option.

Editamos el archivo /etc/default/grub simplemente para copiar nuestra entrada actual. Sería algo como: menuentry 'Debian GNU/Linux' ... { ... }
Pues bien, ahí no importa la parte entera de la línea de menuentry (es decir, el montón de numeritos y cosas "raras" no nos importan), simplemente su nombre y lo que hay entre llaves.

Lo copiamos tal cual al archivo /etc/grub.d/40_custom, exceptuando lo indicado anteriormente; luego en la línea linux /boot/... lo que hay que añadir es la siguiente sentencia: systemd.unit=multi-user.target.

Finalmente, hay que escribir sudo update-grub y sudo reboot para actualizar y reiniciar nuestro Debian para comprobar los cambios.
Si se quiere cambiar cuál es el arranque por defecto, la imagen de fondo o el tiempo de espera, vuelvo a recomendar ver el artículo de referencia que hay al inicio de la sección actual.

Mensaje del día

Cada vez que me conecto desde PuTTY sale un mensaje feísimo, así que editando el archivo /etc/motd y los archivos de dentro de /etc/update-motd.d puedo hacer que muestre un mensaje del día personalizado.

En el caso del archivo motd lo único que hice fue borrar todas las líneas estáticas que tenía dentro, en el caso del archivo 10-uname que hay dentro de /etc/update-motd.d lo que hice fue quitarle los permisos de ejecución: sudo chmod -x nombre_archivo.

Después creé archivos nuevos tomando este repositorio de GitHub como referencia. No usé su programa como tal, simplemente añadí las líneas que me interesaban a mi motd.

Git

Enlace de referencia: UsingGit

Primero hay que instalarlo, pero antes voy a comprobar qué opciones tengo disponibles con apt policy git y apt list -a git.
No tiene pérdida porque solo me sale una opción, así que instalo con sudo apt install git.

Después creo el directorio mkdir ~/server-config y me posiciono dentro de él con cd para después iniciar git dentro de él.

Dentro hago git init y compruebo que ha ido bien con git status, después creo los archivos .env y .gitignore. Dentro de .env guardaré información sensible que NO controlaré con git por seguridad, esto lo hago añadiendo su nombre dentro del archivo .gitignore. Ahora puedo incluso tener un repositorio en GitHub con scripts, docker composes, etcétera sin tener que escribir y subir contraseñas, claves API, etc.

Empiezo copiando los archivos del mensaje del día a esta carpeta porque me gustaría tener una copia. Para ello, sigo los siguientes pasos:

  • mkdir ~/server-config/system/motd
  • sudo cp -p /etc/update-motd.d/* ~/server-config/system/motd/
  • ls -la ~/server-config/system/motd

Añadir, hacer commits, etc son básicas de git que se pueden encontrar en el enlace añadido al inicio de esta sección así que no me voy a repetir.
Lo más complicado en sí es tener que generar las claves SSH para poder subirlo a GitHub, para ello enlazo dos páginas: Adding locally hosted code to GitHub y Generating a new SSH key and adding it to the ssh-agent.

El primer problema que tuve es que en GitHub la rama es main pero en Git es master (se asume que un repositorio se ha creado en remoto antes de pasar a los siguientes pasos), así que tuve que cambiarle el nombre con git branch -M main. Después intenté hacer un push pero no es suficiente con introducir mi nombre de usuario y mi contraseña, también hay que tener configurada una clave SSH tanto en mi ordenador como en GitHub.

Primero, desde el ordenador, escribo lo siguiente: ls -la ~/.ssh pero me informa que no tengo ningún archivo con ese nombre. Así que teniendo como referencia uno de los artículos enlazados de esta sección, genero un par de claves con un comando similar a este ssh-keygen -t ed25519 -C CORREO_NOREPLY_GITHUB. Una vez generada, compruebo qué código me da con la siguiente sentencia cat ~/.ssh/CLAVE.pub y lo copio entero en GitHub yendo a Settings → Access → SSH and GPG keys → New SSH key. Y... ¿con eso es suficiente? ¡Pues no! La autenticación fallará porque va por HTTPS en lugar de por SSH, así que hay que escribir ssh -T git@github.com para confiar en GitHub y git remote set-url origin git@github.com:nombre_usuario/nombre_repositorio.git.

Y al fin, lo último sería hacer git push --set-upstream origin main. Y ahora ya está tanto en local como en remoto. :D

Por continuar...

Poco a poco iré añadiendo más apartados según vaya mejorando mi mini pc. :)