node/scripts/generate-dev-env.sh
anonpenguin f936c5bcde
Some checks failed
Publish Alpha Package to npm / publish (push) Has been cancelled
bug fixes
2025-04-09 01:42:07 +03:00

74 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
RED='\033[0;31m'
GREEN='\033[0;32m'
CYAN='\033[0;36m'
NOCOLOR='\033[0m'
log() {
echo -e "${CYAN}[DEV SETUP]${NOCOLOR} $1"
}
# Base directory - the project root
BASE_DIR=$(dirname "$(dirname "$(readlink -f "$0")")")
KEY_DIR="$BASE_DIR/keys"
KEY_NAME="debros_key"
# Create .env file if it doesn't exist
if [ ! -f "$BASE_DIR/.env" ]; then
log "Generating .env file for development..."
# Create keys directory
mkdir -p "$KEY_DIR"
chmod 700 "$KEY_DIR"
# Generate keypair if it doesn't exist
if [ ! -f "$KEY_DIR/$KEY_NAME" ]; then
log "Creating new key pair..."
ssh-keygen -t ed25519 -f "$KEY_DIR/$KEY_NAME" -N "" -q
log "${GREEN}Keys created in $KEY_DIR${NOCOLOR}"
fi
# Calculate fingerprint
FINGERPRINT=$(ssh-keygen -l -f "$KEY_DIR/$KEY_NAME.pub" 2>/dev/null | awk '{print $2}' | sed 's/SHA256://' | base64 -d 2>/dev/null | xxd -p -u | tr -d '\n' | head -c 40)
# Default dev values
NICKNAME="dev_node"
ADMIN_WALLET="devWallet123456789"
# Create the .env file with development settings
cat > "$BASE_DIR/.env" << EOF
NICKNAME=$NICKNAME
FINGERPRINT=$FINGERPRINT
NODE_ENV=development
PORT=7777
ENABLE_ANYONE=true
HOSTNAME=localhost
ADMIN_WALLET=$ADMIN_WALLET
ENABLE_LOAD_BALANCING=true
SERVICE_DISCOVERY_TOPIC=debros-service-discovery
HEARTBEAT_INTERVAL=5000
STALE_PEER_TIMEOUT=30000
PEER_LOG_INTERVAL=60000
NODE_PUBLIC_ADDRESS=localhost
BOOTSTRAP_NODES=/ip4/188.166.113.190/tcp/7778/p2p/12D3KooWNWgs4WAUmE4CsxrL6uuyv1yuTzcRReMe5r7Psemsg2Z9,/ip4/82.208.21.140/tcp/7778/p2p/12D3KooWPUdpNX5N6dsuFAvgwfBMXUoFK2QS5sh8NpjxbfGpkSCi
MAX_CONNECTIONS=1000
LOAD_BALANCING_STRATEGY=least-loaded
ACCEPT_TERMS=true
KEY_PATH=./keys
LIBP2P_DEBUG=true
IPFS_DEBUG=true
LOG_LEVEL=debug
DEBUG=libp2p:*
EOF
log "${GREEN}Development .env file created successfully${NOCOLOR}"
log "Keys location: $KEY_DIR"
else
log "${GREEN}Development .env file already exists${NOCOLOR}"
fi
# Make the script executable
chmod +x "$0"
log "${GREEN}Development environment setup complete${NOCOLOR}"