# 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](/guias-y-otros/space-and-time/desplegar-tu-validador-de-space-and-time.md) para los últimos pasos.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ethernodes.io/guias-y-otros/space-and-time/desplegar-tu-validador-de-space-and-time/autoinstall-script.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
