Instalacion
Paso 1 - Actualizar el servidor
sudo apt update
sudo apt upgrade -y
Paso 2 - Instalar dependencias
sudo apt install -y curl wget gnupg unzip jq
Paso 3 - Crear un usuario para Headscale
No me gusta ejecutar servicios como root.
sudo useradd \
--system \
--create-home \
--home-dir /var/lib/headscale \
--shell /usr/sbin/nologin \
headscale
Paso 4 - Crear directorios
sudo mkdir -p /etc/headscale
sudo mkdir -p /var/lib/headscale
sudo mkdir -p /var/run/headscale
sudo chown -R headscale:headscale /etc/headscale
sudo chown -R headscale:headscale /var/lib/headscale
sudo chown -R headscale:headscale /var/run/headscale
Paso 5 - Crear usuario en PostgreSQL
Entramos a PostgreSQL:
sudo -u postgres psql
Creamos el usuario:
CREATE USER headscale WITH PASSWORD 'ElegiUnaPasswordSegura';
Paso 6 - Crear la base
CREATE DATABASE headscale
OWNER headscale
ENCODING 'UTF8'
TEMPLATE template0;
Paso 7 - Conectarse
\c headscale
Paso 8 - Probar el acceso
Desde el servidor:
psql \
-h 127.0.0.1 \
-p 7543 \
-U headscale \
-d headscale
Debería pedir la contraseña y entrar sin problemas.
Paso 9 - Descargar Headscale
Primero creemos un directorio temporal.
mkdir -p ~/downloads
cd ~/downloads
Descargar la última versión
En lugar de usar apt, descargaremos el binario oficial desde GitHub.
Primero obtenemos la última versión:
curl -s https://api.github.com/repos/juanfont/headscale/releases/latest | jq -r .tag_name
Debería devolver algo similar a:
v0.xx.x
Luego descargamos el binario correspondiente a Linux AMD64.
Por ejemplo (reemplazando la versión):
wget https://github.com/juanfont/headscale/releases/download/v0.xx.x/headscale_0.xx.x_linux_amd64
Verificar el binario
chmod +x headscale_*
./headscale_* version
Deberías ver algo como:
Headscale v0.xx.x
Paso 910 - Instalar HeadScale
sudo mv headscale_* /usr/local/bin/headscale
sudo chmod 755 /usr/local/bin/headscale
Comprobar:
headscale version