# Autoinstall Script

<sub>*Fecha de Creación: 10.06.2025*</sub>

<sub>*Fecha actualización: 30.06.2025*</sub>

## Introducción

En esta guía encontrarás:

* Cómo realizar la instalación de docker con facilidad
* Un script que realiza todas las acciones necesarias hasta tener tu validador de Space and Time desplegado en docker.

{% hint style="danger" %}
El proceso está testado sobre ubuntu server. Necesitarás un servidor con un terminal para poder realizar la instalación.
{% endhint %}

## Instalar Docker

Copia directamente este código en tu terminal:

```
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update


sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
```

## Descarga y Ejecuta el script

### Paso 1 - Genera un archivo para el script

```
sudo nano sxt-docker-autoinstall.sh
```

### Paso 2 - Pegar script en el archivo creado

Se te habrá abierto un editor de texto en el que podrás copiar el siguiente código.

```
#!/bin/bash
# === CONFIGURACIÓN ===
NODE_NAME="YOUR_VALIDATOR_NAME"
DOCKER_IMAGE="ghcr.io/spaceandtimefdn/sxt-node:mainnet-v0.114.5"


# === 1. Limpieza previa completa ===
echo "🧹 Limpiando contenedor y volúmenes anteriores..."
docker rm -f sxt-validator 2>/dev/null
docker volume rm -f sxt-mainnet-data sxt-validator-key sxt-node-key 2>/dev/null
docker system prune -a -f


# === 2. Crear volúmenes ===
echo "📦 Creando volúmenes nuevos..."
docker volume create sxt-mainnet-data >/dev/null
docker volume create sxt-validator-key >/dev/null
docker volume create sxt-node-key >/dev/null


# === 3. Descargar la imagen ===
echo "⬇️ Descargando imagen Docker mainnet..."
docker pull "$DOCKER_IMAGE"


# === 4. Generar clave nueva de nodo ===
echo "🔑 Generando clave de nodo nueva..."
docker run -it --rm \
  --platform linux/amd64 \
  -v sxt-node-key:/data \
  --entrypoint=/usr/local/bin/sxt-node \
  "$DOCKER_IMAGE" \
  key generate-node-key --chain /opt/chainspecs/mainnet-spec.json --file /data/subkey.key


# === 5. Fix permisos en el volumen del keystore ===
echo "🛠️ Corrigiendo permisos en volumen de clave..."
docker run -it --rm \
  --platform linux/amd64 \
  -v sxt-validator-key:/key \
  --user root \
  --entrypoint=chown \
  "$DOCKER_IMAGE" \
  -R sxtuser:sxtuser /key


# === 6. Lanzar nodo validador ===
echo "🚀 Lanzando nodo validador Mainnet..."
docker run -d --restart always \
  --platform linux/amd64 \
  --name sxt-validator \
  -v sxt-mainnet-data:/data \
  -v sxt-validator-key:/key \
  -v sxt-node-key:/node-key \
  -p 30333:30333/tcp \
  -p 9615:9615/tcp \
  -p 9944:9944/tcp \
  --env HYPER_KZG_PUBLIC_SETUP_DIRECTORY=/data \
  "$DOCKER_IMAGE" \
  --base-path /data \
  --prometheus-port 9615 \
  --prometheus-external \
  --pool-limit 10240 \
  --pool-kbytes 1024000 \
  --chain /opt/chainspecs/mainnet-spec.json \
  --keystore-path /key \
  --node-key-file /node-key/subkey.key \
  --bootnodes "/dns/validator0.mainnet.sxt.network/tcp/30333/p2p/12D3KooWK4MUYTi\
z8H6gG98JwN3bT11keivvFLYjtwEv5sqhwkAt" \
  --bootnodes "/dns/validator1.mainnet.sxt.network/tcp/30333/p2p/12D3KooWF92asK\
6nd1DTo4Hng3ekGpV2UYW9mSXJaXqB9RKGtyFU" \
  --bootnodes "/dns/validator2.mainnet.sxt.network/tcp/30333/p2p/12D3KooWRdhvrm\
MziPGeLxB7jtbe7h5q54Qth8KWjoCPaLn9Hv4v" \
  --validator \
  --port 30333 \
  --log info \
  --telemetry-url 'wss://telemetry.polkadot.io/submit/ 5' \
  --no-private-ipv4 \
  --unsafe-rpc-external \
  --rpc-methods=unsafe \
  --rpc-cors all \
  --rpc-port 9944 \
  --name "$NODE_NAME"


# === 7. Mostrar logs ===
echo "📺 Logs del nodo (Ctrl+C para salir)..."
docker logs -f sxt-validator

```

Una vez copiado, pulso 'Ctrl + x' y confirma que quieres guardar el archivo ('y' + enter)

### Paso 3 - Dar permisos de ejecución

```
sudo chmod +x sxt-docker-autoinstall.sh
```

### Paso 4 - Ejecutar

```
./sxt-docker-autoinstall.sh
```

Una vez hayas finalizado la ejecución, te aparecerán los logs en vivo del validador. Ahí podrás ver si todo ha ido correctamente y se empezará a sincronizar.&#x20;

Para seguir con la instalación, tienes que realizar las interacciones con los Smart Contracts. Sigue desde el [Paso 3. Instrucciones de Staking en la Mainnet](https://docs.ethernodes.io/guias-y-otros/space-and-time/desplegar-tu-validador-de-space-and-time) para los últimos pasos.
