IT-Tools es una caja de más de ochenta utilidades para desarrolladores que funciona entera en tu navegador, sin enviar tus datos a ningún servidor. En esta guía la levantas con un único docker-compose.yml, entras por el puerto 80, repasas qué herramientas trae y aprendes a protegerla tras autenticación, porque no incluye control de acceso propio. Al final tendrás tu propio JWT, hashes, expresiones cron y conversores sin depender de webs de terceros. La misma explicación está disponible en inglés.

Puntos clave

  • IT-Tools es una colección de código abierto con más de 80 utilidades para desarrolladores (crea, cifra, convierte y genera), agrupadas en categorías como criptografía, conversores, red y texto.
  • Es una aplicación de una sola página hecha en Vue y servida por nginx: todo el trabajo ocurre en tu navegador, así que no tiene backend, ni base de datos, ni volúmenes que respaldar.
  • El contenedor expone el puerto 80; lo habitual es publicarlo solo en 127.0.0.1 y mapearlo a un puerto de tu elección, por ejemplo 8080.
  • El proyecto acumula más de 39 000 estrellas en GitHub y se distribuye bajo licencia GPLv3; la imagen oficial vive en corentinth/it-tools.
  • Fija la etiqueta con fecha corentinth/it-tools:2024.10.22-7ca5933 en lugar de :latest; el repositorio también publica una etiqueta nightly con las utilidades más recientes.

¿Qué es IT-Tools y para qué sirve?

IT-Tools es, en palabras de su propio repositorio, una "colección de herramientas online prácticas para desarrolladores, con muy buena experiencia de uso". En vez de tener una decena de pestañas abiertas en webs distintas para descodificar un JWT, calcular un hash o generar una contraseña, reúnes todas esas utilidades en una sola página que tú mismo alojas. Lo creó Corentin Thomasset y se ha convertido en uno de los proyectos self-hosted más populares: supera las 39 000 estrellas en GitHub.

La clave para entenderlo es que IT-Tools no es un servicio, es una web estática. Está construida con Vue y TypeScript, se compila a HTML y JavaScript, y la imagen de Docker no es más que un nginx sirviendo esos ficheros. No hay proceso que guarde estado, ni cuenta de usuario, ni datos que persistan entre reinicios. Eso lo hace extremadamente ligero y, como veremos, privado por diseño. Encaja de maravilla en un homelab junto a otras utilidades que también procesan todo en la propia máquina, como Stirling-PDF para manipular documentos.

¿Qué utilidades incluye IT-Tools?

La gracia de IT-Tools es la variedad. Las más de ochenta herramientas están organizadas en categorías que cubren casi cualquier tarea rutinaria de programación y administración de sistemas:

  • Criptografía y seguridad: generador de contraseñas y tokens, hashes (MD5, SHA-1, SHA-256), HMAC, bcrypt, cifrado y descifrado AES, y un analizador de JWT que descompone la cabecera y el cuerpo del token.
  • Conversores: base64, conversor de color (HEX, RGB, HSL), un generador y explicador de expresiones cron, bases numéricas, fechas, y conversión entre YAML y JSON.
  • Web y desarrollo: codificar y descodificar URL, analizador de URL, tipos MIME, códigos de estado HTTP, generador de credenciales para autenticación básica y datos de prueba.
  • Red: calculadora de subredes IPv4, búsqueda de fabricante por dirección MAC y generador de direcciones IPv6.
  • Texto: generador de lorem ipsum, comparador de diferencias, ofuscador de cadenas y contador de estadísticas de un texto.

Cada herramienta funciona sola: entras, pegas tu dato, obtienes el resultado y copias. No hay que guardar nada ni iniciar sesión.

¿Cómo es el docker-compose.yml de IT-Tools?

Este es el caso más sencillo de toda la serie, precisamente porque IT-Tools no guarda estado. No necesitas un volumen persistente ni una base de datos: basta con arrancar la imagen y publicar su puerto. Este es un docker-compose.yml completo, con la etiqueta fijada a una versión concreta, el puerto publicado solo en la propia máquina y una comprobación de estado que verifica que nginx responde:

services:
  it-tools:
    image: corentinth/it-tools:2024.10.22-7ca5933
    container_name: it-tools
    restart: unless-stopped
    ports:
      - "127.0.0.1:8080:80"
    healthcheck:
      test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:80"]
      interval: 30s
      timeout: 5s
      retries: 3

Merece la pena fijarse en un par de detalles. El contenedor escucha en el puerto 80 (el de nginx), y con 127.0.0.1:8080:80 lo dejas accesible solo desde el propio servidor en el puerto 8080; así nadie llega a él desde fuera hasta que tú decidas cómo publicarlo. No hay ninguna sección volumes ni environment porque la aplicación no tiene ajustes que persistir. Si prefieres el registro de GitHub, cambia la imagen por ghcr.io/corentinth/it-tools.

Arranca la pila y comprueba el estado:

docker compose up -d
docker compose ps
docker compose logs -f it-tools

Abre http://127.0.0.1:8080 en el navegador y verás la rejilla de herramientas con su buscador arriba. No hay instalación ni asistente: la web está lista desde el primer arranque. Para actualizar, cambia la etiqueta de la imagen y ejecuta docker compose pull seguido de docker compose up -d.

¿Por qué IT-Tools es privado por diseño?

Aquí está la razón de peso para alojarlo tú en lugar de usar cualquier web equivalente. Como IT-Tools es una aplicación de una sola página, todo el procesamiento ocurre en el JavaScript de tu navegador: cuando descodificas un JWT, generas un hash o cifras un texto, ese dato nunca sale de tu equipo hacia el servidor. El contenedor de nginx solo entrega los ficheros de la web una vez; a partir de ahí no vuelve a intervenir.

Esto importa mucho con datos sensibles. Un JWT suele contener información de sesión, y una clave o una contraseña que pegas en una web pública de terceros viaja hasta un servidor que no controlas. Con tu propia instancia de IT-Tools, en cambio, el dato se queda en el navegador y el tráfico ni siquiera necesita salir de tu red local. Es la misma filosofía de procesamiento local que aplican otras herramientas de la serie, y la que convierte a IT-Tools en un sustituto seguro de las docenas de webs de utilidades que pululan por Internet.

¿Cómo protegerlo tras autenticación?

IT-Tools no trae ningún sistema de acceso: quien alcance su puerto, usa la web. Como es estática y no guarda datos, el riesgo no es que te roben información almacenada, sino exponer una herramienta interna a Internet sin necesidad. La solución no está en la aplicación, sino delante de ella.

La forma recomendada es ponerlo detrás de un proxy inverso con autenticación delegada. Con Traefik como proxy y Authentik como proveedor de identidad, defines un middleware de tipo forwardAuth que obliga a iniciar sesión antes de dejar pasar la petición. En la práctica, añades a IT-Tools unas etiquetas que enrutan el dominio y aplican ese middleware:

labels:
      - "traefik.enable=true"
      - "traefik.http.routers.it-tools.rule=Host(`tools.midominio.com`)"
      - "traefik.http.routers.it-tools.entrypoints=websecure"
      - "traefik.http.routers.it-tools.tls.certresolver=le"
      - "traefik.http.routers.it-tools.middlewares=authentik@docker"
      - "traefik.http.services.it-tools.loadbalancer.server.port=80"

Si no quieres montar un proveedor de identidad completo, tienes dos alternativas más simples: dejar el puerto atado a 127.0.0.1 y acceder por VPN (por ejemplo WireGuard), o activar una autenticación básica en el propio proxy. Cualquiera de las tres evita el error clásico de dejar una herramienta de administración asomada directamente a Internet. Si además usas un panel para reunir todos tus servicios, puedes enlazar IT-Tools desde Dashy.

Preguntas frecuentes

¿IT-Tools necesita una base de datos o un volumen?

No. IT-Tools es una web estática: guarda su estado en el propio navegador (algunas herramientas recuerdan preferencias en el almacenamiento local del cliente), no en el servidor. El contenedor solo sirve ficheros HTML y JavaScript con nginx, así que no hay nada que persistir. Por eso el docker-compose.yml no lleva sección volumes y puedes recrear o actualizar el contenedor sin miedo a perder datos: no hay datos que perder en el lado del servidor.

¿Es seguro pegar un JWT o una contraseña en IT-Tools?

En tu propia instancia, sí, porque el procesamiento ocurre por completo en tu navegador y el dato no viaja al servidor. Esa es justo la ventaja de alojarlo tú frente a usar una web pública de utilidades, donde no sabes qué hace el servidor con lo que pegas. Aun así, evita exponer tu instancia a Internet sin autenticación y no la uses desde un equipo en el que no confíes.

¿Por qué la etiqueta latest lleva tiempo sin actualizarse?

La versión estable con fecha, 2024.10.22-7ca5933, marca el último lanzamiento etiquetado, y la etiqueta :latest apunta a ese mismo punto. El desarrollo, sin embargo, continúa: el proyecto publica una etiqueta nightly que se reconstruye con las utilidades más nuevas. Si quieres las últimas herramientas, usa corentinth/it-tools:nightly; si prefieres estabilidad, quédate en la versión con fecha y evita depender de :latest.

Conclusión

IT-Tools es probablemente el contenedor más fácil de toda esta serie: sin volúmenes, sin base de datos y sin variables obligatorias, arranca con un docker-compose.yml de nueve líneas y te da más de ochenta utilidades de desarrollo en el puerto 80. Lo importante no es instalarlo, sino entenderlo: como todo ocurre en el navegador, sustituye con seguridad a las webs públicas de utilidades, y como no trae control de acceso, conviene publicarlo siempre tras un proxy con autenticación, nunca directamente en Internet. Fija la etiqueta de la imagen, decide entre la versión con fecha y nightly, y tendrás tu propia navaja suiza de desarrollador en casa.

Fuentes

  1. Repositorio oficial de IT-Tools en GitHub
  2. IT-Tools, sitio y demostración en vivo
  3. Imagen y etiquetas de IT-Tools en Docker Hub
  4. The New Stack: IT-Tools reúne utilidades para desarrolladores

Ruta: Paneles y notificaciones self-hosted con Docker