Repolode
marvinvr

marvinvr/docktail

Expone contenedores Docker como Tailscale Services mediante etiquetas docktail.*, sin crear dispositivos Tailscale por contenedor ni publicar puertos.

Alternativa open source a:TSDProxy

Estrellas
1,408
Forks
51
Issues abiertos
12
Último commit
hace 12 horas

¿Qué es?

DockTail supervisa los contenedores Docker, lee las etiquetas docktail.* y publica los que coinciden como Tailscale Services nativos. De forma predeterminada, las aplicaciones no necesitan publicar puertos de Docker, porque DockTail se conecta directamente a sus direcciones IP en la red de Docker.

Admite servicios HTTP, HTTPS, TCP y TCP con terminación TLS, el uso opcional del protocolo PROXY para que los backends puedan ver la IP del cliente de la tailnet y Tailscale Funnel para el acceso público. Un mismo contenedor puede exponer varios servicios, y DockTail los reconcilia automáticamente cuando los contenedores se reinician o cambian de IP. Las credenciales se proporcionan mediante OAuth o una clave de API. Según la documentación, el proyecto puede ejecutarse como contenedor o binario estático, así como en entornos Compose, Podman, Swarm y Kubernetes.

DockTail está escrito en Go y cuenta con licencia AGPL-3.0. Si se configura una clave, el panel alojado opcional DockTail Cloud puede recibir metadatos del agente; sin esa variable, el agente no establece ninguna conexión saliente para este servicio.

Funciones clave

  • 01Detecta contenedores automáticamente mediante las etiquetas docktail.*.
  • 02Crea servicios de Tailscale con credenciales de OAuth o una clave de API.
  • 03Admite HTTP, HTTPS, TCP y TCP con terminación TLS.
  • 04Ofrece el uso opcional del protocolo PROXY para que los backends vean la IP del cliente de la tailnet.
  • 05Proporciona Tailscale Funnel para el acceso público a Internet.
  • 06Permite que un contenedor exponga varios servicios y los reconcilia cuando se reinicia.

Casos de uso

  • Publicar una aplicación web de un homelab mediante Tailscale HTTPS sin abrir puertos del host.
  • Exponer una base de datos a los clientes de la tailnet mediante TCP.
  • Ejecutar un proxy inverso que necesite la IP real del cliente de la tailnet mediante el protocolo PROXY.
  • Hacer que un endpoint de webhook sea accesible públicamente mediante Tailscale Funnel.

Inicio rápido

  1. 1

    Añade un servicio de Compose para docktail con el socket de Docker y las variables de Tailscale OAuth, y etiqueta los contenedores de tu aplicación

  2. 2

    Inicia el stack

    docker compose up -d
  3. 3

    Abre la aplicación desde tu tailnet

    curl http://myapp.your-tailnet.ts.net

Antes de usarlo

  • Licenciado bajo AGPL-3.0, una licencia copyleft que exige publicar el código fuente de los servicios de red modificados.
  • Requiere que el host de Docker esté conectado a Tailscale y tenga permiso para anunciar servicios.
  • La creación automática de servicios requiere credenciales de Tailscale OAuth o una clave de API.
  • Montar el socket de Docker permite que el contenedor acceda al daemon de Docker del host.

En colecciones

Temas

Preguntas frecuentes

¿Qué es docktail?
Expone contenedores Docker como Tailscale Services mediante etiquetas docktail.*, sin crear dispositivos Tailscale por contenedor ni publicar puertos. DockTail supervisa los contenedores Docker, lee las etiquetas docktail.* y publica los que coinciden como Tailscale Services nativos. De forma predeterminada, las aplicaciones no necesitan publicar puertos de Docker, porque DockTail se conecta directamente a sus direcciones IP en la red de Docker.
¿docktail es gratuito? ¿Qué licencia tiene?
docktail es open source bajo la licencia AGPL-3.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿docktail sigue mantenido?
Mantenimiento activo. El último commit de docktail fue el 7 nov 2026.
¿Para qué puedo usar docktail?
Publicar una aplicación web de un homelab mediante Tailscale HTTPS sin abrir puertos del host. Exponer una base de datos a los clientes de la tailnet mediante TCP. Ejecutar un proxy inverso que necesite la IP real del cliente de la tailnet mediante el protocolo PROXY. Hacer que un endpoint de webhook sea accesible públicamente mediante Tailscale Funnel.
¿Cómo se instala docktail?
Añade un servicio de Compose para docktail con el socket de Docker y las variables de Tailscale OAuth, y etiqueta los contenedores de tu aplicación Inicia el stack: docker compose up -d Abre la aplicación desde tu tailnet: curl http://myapp.your-tailnet.ts.net
¿Dónde consigo docktail?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/marvinvr/docktail

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados