Volver a actualizaciones
Nuevo releaseJul 29, 2026

headscale v0.29.3

Una implementación de código abierto y autoalojada del servidor de control de Tailscale

Compartir

logotipo de headscale

ci

Una implementación de código abierto y autoalojada del servidor de control de Tailscale.

Únete a nuestro servidor de Discord para conversar.

Nota: Selecciona siempre la misma etiqueta de GitHub que la versión publicada que utilizas para asegurarte de tener la configuración de ejemplo correcta. La rama main podría contener cambios no publicados. La documentación está disponible para las versiones estable y de desarrollo:

Qué es Tailscale

Tailscale es una VPN moderna construida sobre Wireguard. Funciona como una red superpuesta entre los equipos de tus redes, utilizando atravesamiento de NAT.

Todo en Tailscale es de código abierto, excepto los clientes con interfaz gráfica para sistemas operativos propietarios (Windows y macOS/iOS), y el servidor de control.

El servidor de control funciona como un punto de intercambio de claves públicas de Wireguard para los nodos de la red de Tailscale. Asigna las direcciones IP de los clientes, crea los límites entre cada usuario, permite compartir máquinas entre usuarios y expone las rutas anunciadas de tus nodos.

Una red de Tailscale (tailnet) es una red privada que Tailscale asigna a un usuario en términos de usuarios privados o de una organización.

Objetivo de diseño

Headscale pretende implementar una alternativa autoalojada y de código abierto al servidor de control de Tailscale. El objetivo de Headscale es proporcionar a los autoalojadores y aficionados un servidor de código abierto que puedan usar para sus proyectos y laboratorios. Implementa un alcance reducido, una única red de Tailscale (tailnet), adecuada para uso personal o para una pequeña organización de código abierto.

Apoyar a Headscale

Si te gusta headscale y lo encuentras útil, hay botones de patrocinio y donación disponibles en el repositorio.

Características

Consulta "Features" en la documentación.

Soporte de sistemas operativos cliente

Consulta "Client and operating system support" en la documentación.

Ejecutar headscale

Ten en cuenta que no damos soporte ni fomentamos el uso de proxies inversos y contenedores para ejecutar Headscale.

Echa un vistazo a la documentación.

Para usuarios de NixOS, hay un módulo disponible en nix/.

Compilaciones desde main

Las compilaciones de desarrollo desde la rama main están disponibles como imágenes de contenedor y binarios. Consulta la documentación de compilaciones de desarrollo para más detalles.

Charlas

Este proyecto no está asociado con Tailscale Inc.

Sin embargo, uno de los mantenedores activos de Headscale está empleado por Tailscale y tiene permitido dedicar horas de trabajo a contribuir al proyecto. Las contribuciones de este mantenedor son revisadas por otros mantenedores.

Los mantenedores trabajan juntos para establecer la dirección del proyecto. El principio subyacente es servir a la comunidad de autoalojadores, entusiastas y aficionados, manteniendo al mismo tiempo un proyecto sostenible.

Contribuir

Por favor, lee el archivo CONTRIBUTING.md.

Echa también un vistazo a nuestro AI_POLICY.md.

Requisitos

Para contribuir a headscale necesitarías la versión más reciente de Go y Buf (generador de Protobuf).

Recomendamos usar Nix para configurar un entorno de desarrollo. Esto se puede hacer con nix develop, que instalará las herramientas y te proporcionará un shell. Esto garantiza que tendrás el mismo entorno de desarrollo que los mantenedores de headscale.

Estilo de código

Para garantizar cierta consistencia con un número creciente de contribuciones, este proyecto ha adoptado reglas de linting y estilo/formato:

El código Go se analiza con golangci-lint y se formatea con los formateadores de golangci-lint (gofumpt, gci, goimports). Configura tu editor para ejecutar las herramientas mientras desarrollas y asegúrate de ejecutar make lint y make fmt antes de hacer commit de cualquier código.

El código Proto se analiza con buf y se formatea con clang-format.

La documentación se formatea con mdformat.

El resto (Markdown, YAML, etc.) se formatea con prettier.

Consulta los archivos .golangci.yaml y Makefile para ver la configuración específica.

Instalar herramientas de desarrollo

  • Go
  • Buf
  • Herramientas de Protobuf

Instalar y activar:

nix develop

Pruebas y compilación

Algunas partes del proyecto requieren la generación de código Go a partir de Protobuf (si se realizan cambios en proto/) y debe ser (re)generado con:

make generate

Nota: Confirma los cambios de gen/ en un commit separado para facilitar la revisión.

Para ejecutar las pruebas:

make test

Para compilar el programa:

make build

Flujo de trabajo de desarrollo

Recomendamos usar Nix para la gestión de dependencias para asegurar que tengas todas las herramientas necesarias. Si prefieres gestionar las dependencias por tu cuenta, puedes usar Make directamente:

Con Nix (recomendado):

nix develop
make test
make build

Con tus propias dependencias:

make test
make build

El Makefile te avisará si falta alguna herramienta requerida y sugerirá ejecutar nix develop. Ejecuta make help para ver todos los objetivos disponibles.

Colaboradores

Hecho con contrib.rocks.

Categorías