Files
zeekay 121a85162f k8s(financial): bump lux-financial to v1.2.0
Expanded solutions (10 new industries) and products (Compliance & Data
section) to cover full docs.lux.financial capability surface.
2026-04-20 22:33:19 -07:00

81 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# Setup script to run on each DO droplet after cloud-init
# Usage: ./setup-node.sh <network-type>
# Example: ./setup-node.sh mainnet
set -e
NETWORK_TYPE=${1:-mainnet}
DATA_DIR=/data/lux
UNIVERSE_DIR=/home/lux/universe
echo "Setting up Lux $NETWORK_TYPE node..."
# Ensure directories exist
mkdir -p $DATA_DIR/{chains,plugins,runs,snapshots,keys}
mkdir -p $DATA_DIR/keys/{node1,node2,node3,node4,node5}
# Generate node keys if they don't exist
cd $UNIVERSE_DIR
for i in 1 2 3 4 5; do
KEY_DIR=$DATA_DIR/keys/node$i
if [ ! -f "$KEY_DIR/staking/staker.crt" ]; then
echo "Generating keys for node$i..."
mkdir -p $KEY_DIR/staking $KEY_DIR/bls
# Generate staking certificate
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 \
-keyout $KEY_DIR/staking/staker.key \
-out $KEY_DIR/staking/staker.crt \
-subj "/CN=lux-node$i" \
-nodes 2>/dev/null
# Generate BLS signer key (placeholder - actual BLS key generation needs CLI)
echo "placeholder-bls-key-node$i" > $KEY_DIR/bls/signer.key
fi
done
# Create environment file
cat > $UNIVERSE_DIR/.env <<EOF
# Lux Network Configuration
NETWORK_TYPE=$NETWORK_TYPE
DATA_DIR=$DATA_DIR
COMPOSE_PROJECT_NAME=lux-$NETWORK_TYPE
# Database credentials
POSTGRES_USER=postgres
POSTGRES_PASSWORD=$(openssl rand -hex 16)
POSTGRES_DB=$NETWORK_TYPE
# Explorer secrets
SECRET_KEY_BASE=$(openssl rand -hex 32)
EOF
# Set ownership
chown -R lux:lux $DATA_DIR
chown -R lux:lux $UNIVERSE_DIR
# Pull Docker images
echo "Pulling Docker images..."
cd $UNIVERSE_DIR
docker compose -f compose.$NETWORK_TYPE.yml pull 2>/dev/null || true
# Build node image
echo "Building node image..."
docker compose -f compose.$NETWORK_TYPE.yml build --no-cache 2>/dev/null || echo "Build will happen on start"
echo ""
echo "=== Setup Complete ==="
echo "Network: $NETWORK_TYPE"
echo "Data directory: $DATA_DIR"
echo ""
echo "Start the network with:"
echo " cd $UNIVERSE_DIR"
echo " docker compose -f compose.$NETWORK_TYPE.yml up -d"
echo ""
echo "Monitor with:"
echo " docker compose -f compose.$NETWORK_TYPE.yml logs -f"
echo ""
echo "Stop with:"
echo " docker compose -f compose.$NETWORK_TYPE.yml down"