Autoinstall Script

AUTOINSTALL SCRIPT:

Es necesario tener docker instalado previamente, puedes instalarlo copiando directamente este código en tu terminal: sudo apt-get update

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

Modo de empleo:

1. generar un archivo para el script ‘sudo nano sxt-docker-autoinstall.sh’ 2. pegar el script en el archivo creado 3. dar permisos de ejecución: sudo chmod +x sxt-docker-autoinstall.sh 4 ejecutar: ./sxt-docker-autoinstall.sh

#!/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

Last updated