Primeros pasos¶
En cinco minutos¶
- Descarga:
mkdir headscale-easy && cd headscale-easy && curl -fsSLO https://raw.githubusercontent.com/insanerask77/headscale-easy/main/compose.yaml - Arráncalo:
docker compose up -d. Un contenedor, con la versión 2.0 fijada en el archivo. - Configúralo: abre
http://<tu-servidor>/console/setupy escribe el token de un solo uso (dedocker compose logs): administrador, dirección pública y HTTPS, nombre de la tailnet, relay (DERP), registro y copias. - Entra: abre
https://<tu-dominio>/console. - Conecta tu primer dispositivo:
tailscale up --login-server=https://<tu-dominio>.
Esto te da un servidor que funciona. Antes de fiarte de él, o de exponerlo a otras personas, repasa Producción y bastionado.
Requisitos¶
- Un Linux (basta un VPS pequeño: 1 vCPU y 1 GB de RAM; el contenedor en reposo usa menos de 100 MB).
- Docker con el plugin de Compose (v2.24 o más reciente).
- Para HTTPS real: un dominio que apunte a la máquina y los puertos 80/443 abiertos.
- El UDP 3478 accesible desde internet (STUN del relay DERP integrado).
Instalación¶
mkdir headscale-easy && cd headscale-easy
curl -fsSLO https://raw.githubusercontent.com/insanerask77/headscale-easy/main/compose.yaml
docker compose up -d
compose.yaml es toda la app: un servicio, dos volúmenes con nombre (hse-data y
hse-backups), sin capabilities añadidas y sin socket de Docker. Abre el asistente y
responde ahí; el token de un solo uso está en docker compose logs headscale-easy.
Para responder de antemano (o arrancar sin asistente), pon las respuestas en un .env al lado:
curl -fsSL https://raw.githubusercontent.com/insanerask77/headscale-easy/main/.env.example -o .env
chmod 600 .env # luego descomenta y edita lo que necesites
Por ejemplo HSE_PUBLIC_URL, HSE_TLS (auto: Let's Encrypt, necesita ACME_EMAIL; internal:
un certificado de la CA propia de Caddy; off: HTTP sin cifrar, o lo termina un proxy que ya
tienes) y HSE_ADMIN_EMAIL con HSE_ADMIN_PASSWORD para saltarte el asistente: el servidor
arranca con esa cuenta.
Actualizar
Cambia HSE_VERSION en .env (o la etiqueta en compose.yaml) y ejecuta
docker compose pull && docker compose up -d. Los datos viven en los volúmenes y no se tocan;
haz antes una copia con docker exec headscale-easy hse backup.
Todo lo demás (un proveedor de identidad, un proxy delante, PostgreSQL, copias remotas) está en Configuraciones avanzadas. Mira Imagen todo en uno y Configuración para todos los ajustes.
Puertos¶
| Puerto | Protocolo | Uso |
|---|---|---|
| 80 / 443 | TCP | Consola web, plano de control, Let's Encrypt |
| 3478 | UDP | STUN del relay DERP integrado |
Conecta tu primer dispositivo¶
Abre https://<tu-dominio>/console, inicia sesión y pulsa Añadir dispositivo:
muestra los pasos para cada sistema. En resumen:
Instala la app de Tailscale y en su menú elige Settings → Change server
(macOS: mantén ++option++ y pulsa el icono del menú) e introduce
https://<tu-dominio>. Inicia sesión cuando se abra el navegador.
Instala la app de Tailscale, toca el icono de perfil (arriba a la derecha)
y luego Log in. Abre el menú de arriba a la derecha (iOS: ⋯ → Use a
custom coordination server; Android: ⋮ → Use an alternate server),
introduce https://<tu-dominio> y toca Log in. Hace falta un certificado
de confianza pública (Let's Encrypt o tu propio proxy).
La página Añadir dispositivo muestra la URL como código QR: escanéalo con la cámara del móvil para tenerla en el teléfono y pégala en la app (la app de Tailscale no lee códigos QR por sí misma).
Una vez conectado, el dispositivo aparece en Máquinas. Lo siguiente: dar de alta a más gente (Operación) y ajustar el control de acceso.