Manuales y workflows

Todo lo que voy montando (y rompiendo) en mi propio stack de IA, organizado como un manual: 8 capítulos, cada uno con sus temas. Descarga lo que ya está disponible; el resto se va publicando por orden.

Antes de empezar Esto es lo que yo he montado, probando y rompiendo cosas por el camino. Seguro que hay gente con más experiencia, o que dice tenerla, con enfoques distintos al mío. Este es el mío — ni el mejor ni el peor, solo el que me funciona a mí. Adáptalo a tu caso.
Filtrar:

Sin resultados para esa búsqueda o filtro.

00

Antes de empezar: elige tu IA de acompañamiento

Este capítulo no instala nada en tu servidor. Es, quizás, el paso más importante de todos: no vas a hacer este camino solo.

›
0.1

¿Por qué usar un asistente de IA en este proceso?

Este manual es un mapa. Un asistente de IA es quien te acompaña cuando te sales del mapa.

Guía

Yo he seguido este mismo proceso apoyándome todo el rato en Claude, el asistente de IA de Anthropic. No porque este manual esté incompleto, sino porque ningún manual, por bueno que sea, puede prever el error exacto que te va a salir a ti, en tu servidor, con tu configuración concreta.

Un manual te explica lo que pasó cuando yo lo hice. Un asistente de IA puede leer tu error, explicarte qué significa con otras palabras si la primera explicación no te ha quedado clara, y ayudarte a decidir el siguiente paso — a cualquier hora, sin esperar a que yo conteste un mensaje.

No sustituye a entender lo que haces. Pero sí quita esa sensación de estar solo delante de una pantalla negra que no te dice nada.

›
0.2

Elige el que te resulte más cómodo

No hay uno "correcto" — esto va más de costumbre que de rendimiento.

Guía

Hay varias opciones conocidas y todas te van a servir para seguir este manual sin problema. Sin entrar en cuál es "mejor" — porque sinceramente no lo sé, y cambia con el tiempo — esto es, a grandes rasgos, lo que te vas a encontrar:

  • ChatGPT (OpenAI) — probablemente el más conocido y el que más gente ya ha probado alguna vez.
  • Claude (Anthropic) — el que yo uso en este proyecto. Tiene una versión gratuita con límites de uso, igual que las demás.
  • Gemini (Google) — viene integrado en varios productos de Google, cómodo si ya usas ese ecosistema.

Yo uso Claude simplemente porque es con el que más cómodo me siento — es una cuestión de gustos, parecida a elegir un editor de código o un sistema operativo. No es una recomendación de que sea mejor que las otras opciones para este manual: cualquiera de ellas te va a poder ayudar a explicar comandos, revisar errores y acompañarte capítulo a capítulo.

Elige uno, créate una cuenta gratuita si no la tienes, y déjalo abierto en una pestaña mientras avanzas por el resto del manual.

›
0.3

Cómo sacarle partido (sin depender de él a ciegas)

Tres costumbres que marcan la diferencia entre usarlo bien o mal.

Guía
  • Pega el error completo, no un resumen. Cuando algo falle, copia el mensaje entero de la terminal, no solo "no me funciona". Cuantos más detalles le des, mejor te va a poder ayudar.
  • Pregunta antes de ejecutar, si no lo tienes claro. Si un comando te da respeto (sobre todo los de seguridad, como los del capítulo 01), pide que te lo explique antes de darle a Enter. "Antes de ejecutar esto, ¿qué hace exactamente?" es una pregunta perfectamente válida.
  • Pide que te lo repita de otra forma. Si una explicación no te ha quedado clara, dilo. "No lo he entendido, explícamelo más despacio" siempre da mejor resultado que seguir adelante a medias.

Un ejemplo de mensaje que puedes usar tal cual cuando algo falle:

Mensaje de ejemplo para tu asistente de IA
Estoy siguiendo un manual para montar mi propio stack de IA en un VPS.
Acabo de ejecutar este comando:
[pega aquí el comando exacto]

Y me ha devuelto este resultado o error:
[pega aquí el mensaje completo, tal cual]

¿Puedes explicarme en términos sencillos qué ha pasado
y qué debería hacer a continuación?
Una advertencia honesta: un asistente de IA también se puede equivocar, especialmente en temas de seguridad o en pasos que cambian con el tiempo. Para un proyecto personal o de aprendizaje, esto es más que suficiente. Si lo que vas a montar es crítico para un negocio, contrasta los pasos importantes con alguien que sepa del tema.
01

Infraestructura: monta tu VPS

La base de todo lo demás: un VPS propio, actualizado y accesible de forma segura.

›
1.1

Ubuntu 24.04 y acceso SSH

Contratación del VPS, primer acceso por SSH y actualización del sistema.

PDF Descargar

¿Qué es un VPS?

VPS son las siglas de "Servidor Privado Virtual". Piénsalo como un ordenador que no está en tu casa, sino en un centro de datos, encendido las 24 horas, al que tú accedes por internet para instalar y hacer funcionar lo que necesites. No tiene pantalla ni teclado propios: todo se hace escribiendo comandos en una ventana de texto llamada terminal.

Contratar el VPS

Yo uso IONOS porque es lo que ya conocía, pero esto funciona igual en Hetzner, DigitalOcean, Vultr, OVH o cualquier otro proveedor similar. Al contratarlo, elige:

  • Sistema operativo: Ubuntu 24.04 LTS (la versión que uso en todo este manual).
  • Un plan con al menos 4 GB de RAM si más adelante quieres usar ComfyUI u Ollama.
  • Anota la dirección IP que te asignen — la necesitarás para conectarte.
Captura sugerida: panel de tu proveedor de hosting mostrando el VPS ya creado, con su dirección IP visible.

Conectarte por primera vez (SSH)

SSH es el sistema que te permite abrir una terminal "dentro" de tu VPS desde tu propio ordenador, de forma segura. En Windows puedes usar la app Terminal o PowerShell; en Mac y Linux, la Terminal que ya viene instalada.

Terminal — en tu ordenador
ssh root@tu-direccion-ip

Sustituye tu-direccion-ip por la IP real de tu VPS. La primera vez te pedirá confirmar la conexión (escribe yes) y después la contraseña que te dio tu proveedor.

Captura sugerida: terminal justo después de conectar, mostrando el mensaje de bienvenida de Ubuntu.

Actualizar el sistema

Es lo primero que hago siempre en un VPS recién estrenado: ponerlo al día antes de instalar nada más.

Terminal — conectado al VPS
sudo apt update && sudo apt upgrade -y

sudo significa "hazlo con permisos de administrador" — Ubuntu te lo pedirá para casi cualquier cambio importante en el sistema. Es normal y es lo esperado.

Con esto ya tienes: un VPS funcionando, accesible por SSH y actualizado. Es la base sobre la que instalaremos todo lo demás en los siguientes capítulos.
›
1.2

Hardening básico del servidor

Firewall, usuarios sin privilegios y cierre de puertos innecesarios.

Guía
Antes de empezar: necesitas haber completado el tema 1.1 (VPS con Ubuntu 24.04, conectado por SSH).

¿Por qué no trabajar siempre como "root"?

Cuando te conectas como root, tienes permiso para hacer literalmente cualquier cosa en el servidor — incluido borrar algo importante por error, sin que nadie te pregunte "¿seguro?". Por eso el primer paso de seguridad es crear un usuario normal para el día a día, y reservar los permisos de administrador solo para cuando de verdad los necesites.

Terminal — conectado como root
adduser miusuario
usermod -aG sudo miusuario

El primer comando crea el usuario (te pedirá una contraseña). El segundo le da permiso para usar sudo, es decir, para poder pedir permisos de administrador puntualmente cuando haga falta.

Captura sugerida: terminal mostrando la creación del usuario y las preguntas de contraseña respondidas.

Activar el firewall (cortafuegos)

Un firewall decide qué "puertas" de tu servidor están abiertas al exterior y cuáles cerradas. Ubuntu trae uno ya instalado, llamado UFW, que solo hay que activar con cuidado de no cerrarte tú mismo el acceso por SSH.

Terminal — con tu nuevo usuario
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status

La primera línea deja abierta la puerta del SSH (para que no te quedes fuera de tu propio servidor). La segunda activa el firewall. La tercera te muestra qué reglas están activas.

Captura sugerida: resultado de sudo ufw status, mostrando el puerto SSH permitido.
Con esto ya tienes: un usuario propio sin usar "root" a diario, y un firewall activo que solo deja pasar lo que tú decidas.
›
1.3

Copias de seguridad y snapshots

Estrategia sencilla de backups automáticos para no perder nada al romper algo.

Guía

El nombre de este proyecto es "Prueba y Error" por algo: vas a romper cosas. La diferencia entre que eso sea divertido o un disgusto serio está en tener una copia de seguridad reciente.

Snapshots del proveedor (la opción fácil)

Un snapshot es una "foto" completa de tu servidor en un momento concreto — sistema, archivos, todo — que tu proveedor guarda por ti y te permite restaurar con un par de clics si algo sale mal. Casi todos los proveedores (IONOS, Hetzner, DigitalOcean, Vultr...) lo ofrecen desde su panel web, normalmente en una sección llamada "Snapshots" o "Backups".

Captura sugerida: panel de tu proveedor con la opción de crear o programar snapshots automáticos.

Te recomiendo activar la copia automática (semanal, por ejemplo) y además hacer una manual justo antes de cualquier cambio grande que vayas a probar.

Copia manual de tus archivos importantes

Además del snapshot completo, es buena costumbre guardar aparte las carpetas que más te importan (por ejemplo, esta misma web). El comando tar empaqueta y comprime una carpeta en un único archivo.

Terminal — conectado al VPS
tar -czvf backup-$(date +%F).tar.gz /var/www

Esto crea un archivo con la fecha de hoy (por ejemplo backup-2026-07-20.tar.gz) con todo el contenido de /var/www. Puedes descargarlo a tu ordenador desde el propio panel de archivos de tu proveedor, o con un cliente SFTP.

Con esto ya tienes: una red de seguridad en dos capas — snapshot completo del proveedor y copia manual de lo importante — antes de seguir instalando cosas nuevas.
02

Docker y Portainer

Todo el stack corre en contenedores. Aquí, cómo instalarlos y gestionarlos sin perder la cabeza.

›
2.1

Instalación de Docker y Docker Compose

Puesta a punto de Docker en Ubuntu 24.04, listo para levantar servicios.

Guía
Antes de empezar: necesitas el capítulo 01 completado (VPS con usuario propio y firewall activo).

¿Qué es Docker, en plata?

Imagina que cada programa que quieres instalar (n8n, ComfyUI, una base de datos...) viene dentro de su propia "caja cerrada" con absolutamente todo lo que necesita para funcionar: sus propias librerías, su propia configuración, sin pelearse con lo que ya tienes instalado en el servidor. Esa caja es un contenedor. Docker es el programa que crea, arranca y para esas cajas.

La ventaja práctica: si algo se rompe dentro de un contenedor, puedes borrarlo y volver a crearlo desde cero en segundos, sin que afecte a nada más de tu servidor.

Instalar Docker

Usamos el script oficial de instalación, que hace todo el trabajo por ti.

Terminal — conectado al VPS
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

La primera línea descarga el instalador oficial; la segunda lo ejecuta. Tardará un par de minutos.

Nota honesta: este script de conveniencia es perfecto para un proyecto personal o de aprendizaje como este. Si en el futuro montas algo para producción o para un cliente, Docker recomienda instalarlo desde su repositorio APT oficial en vez del script, para tener más control sobre versiones y actualizaciones.

Comprobar que funciona

Terminal — conectado al VPS
docker --version
docker compose version

Si ambos comandos responden con un número de versión (en vez de un error), Docker y Docker Compose están listos.

Captura sugerida: terminal mostrando la salida de docker --version y docker compose version.

Un detalle útil: si quieres usar docker sin escribir sudo delante cada vez, puedes añadir tu usuario al grupo docker:

Terminal — conectado al VPS
sudo usermod -aG docker $USER

Después de esto, cierra sesión y vuelve a conectarte por SSH para que el cambio surta efecto.

Con esto ya tienes: Docker instalado y funcionando, listo para levantar tu primer contenedor en el siguiente tema.
›
2.2

Gestión visual con Portainer

Ver logs, reiniciar contenedores y gestionar volúmenes sin tocar la terminal.

Guía
Antes de empezar: necesitas Docker instalado (tema 2.1).

Para qué sirve Portainer

Docker se controla normalmente escribiendo comandos, y eso puede resultar incómodo al principio. Portainer es un panel visual — una página web — desde el que ves todos tus contenedores, sus registros de actividad ("logs"), puedes reiniciarlos o pararlos con un clic, sin memorizar comandos.

Lo curioso es que Portainer se instala también como un contenedor Docker más.

Instalar Portainer

Terminal — conectado al VPS
docker volume create portainer_data

docker run -d \
  -p 8000:8000 -p 9443:9443 \
  --name portainer --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:lts

La primera línea crea un espacio donde Portainer guarda su propia configuración (un "volumen"). El bloque siguiente descarga Portainer y lo arranca, dejándolo accesible en el puerto 9443. Uso la etiqueta :lts en vez de :latest porque es lo que recomienda ahora mismo la documentación oficial de Portainer — una versión estable de soporte largo, en vez de la última versión sin más.

Acceder por primera vez

Abre en tu navegador: https://tu-direccion-ip:9443

El navegador probablemente avisará de que el certificado de seguridad no es de confianza — es normal en este primer acceso directo por IP, puedes continuar. Portainer te pedirá crear un usuario administrador y una contraseña la primera vez.

Captura sugerida: pantalla de creación del usuario administrador de Portainer.
Captura sugerida: panel principal de Portainer mostrando la lista de contenedores en marcha (incluido el propio Portainer).
Con esto ya tienes: una forma visual de supervisar todo lo que instales en Docker de aquí en adelante, sin depender solo de la terminal.
03

Nginx como proxy inverso

Cómo exponer todos los servicios del VPS bajo un mismo dominio, con SSL.

›
3.1

Configuración base y certificados SSL

Bloque de servidor, certificados y renovación automática.

Guía
Antes de empezar: necesitas un dominio propio (por ejemplo, tunombre.com) apuntando a la IP de tu VPS, y el capítulo 01 completado.

¿Qué hace Nginx aquí?

Cuando alguien visita tu dominio, esa visita llega a tu servidor "en bruto" — hay que decidir a qué servicio dirigirla (¿la web estática? ¿n8n? ¿otra cosa?) y, si usas HTTPS, quién gestiona el candado de seguridad. Ese trabajo de "recepcionista" lo hace Nginx: recibe todas las visitas al dominio y las reparte al sitio correcto dentro del servidor. A esto se le llama proxy inverso.

Instalar Nginx

Terminal — conectado al VPS
sudo apt install nginx -y

Crear el archivo de configuración de tu dominio

Nginx guarda una configuración distinta para cada dominio que gestiona, en archivos separados. Crea uno nuevo con un editor de texto sencillo en la terminal:

Terminal — conectado al VPS
sudo nano /etc/nginx/sites-available/tudominio.com

Y pega este contenido básico, cambiando tudominio.com por el tuyo:

Archivo: /etc/nginx/sites-available/tudominio.com
server {
    listen 80;
    server_name tudominio.com www.tudominio.com;

    location / {
        proxy_pass http://localhost:3000;
    }
}

Guarda con Ctrl+O, luego Enter, y sal con Ctrl+X. El número 3000 es solo un ejemplo — más adelante lo cambiaremos según qué servicio quieras exponer.

Activar el sitio y comprobar errores

Terminal — conectado al VPS
sudo ln -s /etc/nginx/sites-available/tudominio.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

nginx -t comprueba que no hay errores de sintaxis antes de aplicar nada — consulta siempre este paso antes de recargar. Si todo va bien, verás syntax is ok y test is successful.

Captura sugerida: terminal mostrando el resultado correcto de sudo nginx -t.

Añadir HTTPS gratis con Certbot

Un certificado SSL es lo que hace que tu dominio se cargue con el candado de "conexión segura" (HTTPS). Certbot lo consigue gratis y lo renueva solo.

Terminal — conectado al VPS
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d tudominio.com -d www.tudominio.com

Certbot te hará un par de preguntas (un email de contacto y aceptar los términos) y configurará Nginx automáticamente para usar HTTPS.

Captura sugerida: navegador mostrando tu dominio cargado con el candado de conexión segura.
Con esto ya tienes: tu dominio funcionando con HTTPS y Nginx listo para repartir tráfico hacia lo que instales a continuación.
›
3.2

Contenido estático junto a apps en Docker

Servir páginas estáticas y proxys a contenedores desde el mismo servidor Nginx.

Guía
Antes de empezar: necesitas Nginx configurado con tu dominio (tema 3.1).

Esta misma página que estás leyendo es un buen ejemplo: es un simple archivo HTML (lo que llamamos "contenido estático" — no cambia según quién lo visita) que convive en el mismo servidor con aplicaciones como n8n, que sí corren dentro de un contenedor Docker. Nginx puede servir ambas cosas a la vez, cada una en su propia ruta, usando bloques location.

Servir una página estática en una subruta

Sube tus archivos (como este index.html) a una carpeta del servidor, por ejemplo /var/www/pruebayerror, y añade esto dentro del bloque server { } de tu archivo de configuración de Nginx (el mismo que creaste en el tema 3.1):

Archivo: /etc/nginx/sites-available/tudominio.com
location /pruebayerror {
    alias /var/www/pruebayerror;
    index index.html;
}

alias le dice a Nginx en qué carpeta real del servidor están los archivos que debe mostrar cuando alguien visite tudominio.com/pruebayerror.

Redirigir una subruta a un contenedor Docker

Para una aplicación que corre en un contenedor (como n8n, que por defecto escucha en el puerto 5678 dentro del servidor), el bloque es distinto — en vez de apuntar a una carpeta, apunta a ese puerto:

Archivo: /etc/nginx/sites-available/tudominio.com
location /n8n {
    proxy_pass http://localhost:5678;
}

Aplicar los cambios

Terminal — conectado al VPS
sudo nginx -t
sudo systemctl reload nginx
Captura sugerida: navegador con dos pestañas — una mostrando tudominio.com/pruebayerror y otra tudominio.com/n8n — para ver ambos tipos de contenido conviviendo en el mismo dominio.
Con esto ya tienes: un único dominio capaz de servir tanto páginas estáticas como aplicaciones en Docker, cada una en su propia ruta. Es la base que usaremos para el resto de servicios de los siguientes capítulos.
04

Automatización con n8n

Conectar servicios y automatizar tareas repetitivas sin escribir mucho código.

4.1

Instalación y primeros flujos

Despliegue de n8n en Docker y creación del primer workflow funcional.

Próximamente
4.2

Workflow: publicar en LinkedIn

Flujo para preparar y programar publicaciones desde una hoja de cálculo.

Próximamente
05

LLMs locales: Ollama + OpenWebUI

Modelos de lenguaje corriendo en tu propio servidor, sin depender de terceros.

5.1

Instalación y modelos recomendados

Qué modelos usar según la RAM disponible y cómo instalarlos con Ollama.

Próximamente
5.2

Conectar tu propia base de conocimiento

Subir documentos a OpenWebUI para consultarlos con tus propios modelos.

Próximamente
06

Generación con ComfyUI

Imagen y vídeo generados con IA, con control total sobre el flujo de nodos.

6.1

Instalación en modo CPU

Puesta en marcha de ComfyUI como proceso Python directo en el VPS.

Próximamente
6.2

Workflow de nodos: generación básica

El flujo que uso en mis propias pruebas, listo para importar.

JSON Descargar
07

Integración del stack completo

Cómo encajan entre sí todas las piezas anteriores en un único sistema coherente.

7.1

Cómo se conecta todo

Diagrama y explicación de cómo Nginx, Docker, n8n, Ollama y ComfyUI trabajan juntos.

Próximamente
08

Mantenimiento

Lo que hace falta para que el stack siga funcionando bien con el tiempo.

8.1

Actualizaciones y monitorización

Cómo mantener el sistema al día sin que se rompa nada por sorpresa.

Próximamente
8.2

Qué viene después

Ideas para ampliar el stack según vayan surgiendo nuevas necesidades.

Próximamente