Something went wrong. Try again.
Monorepo for Aesthetic.Computer aesthetic.computer
Something went wrong. Try again.
Shell
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108#!/bin/bash# Copy MongoDB credentials from silo to vault
set -e
GREEN='\033[0;32m'YELLOW='\033[1;33m'BLUE='\033[0;36m'RED='\033[0;31m'NC='\033[0m'
SILO_HOST="${1:-root@silo.aesthetic.computer}"VAULT_FILE="aesthetic-computer-vault/silo/.env"
echo -e "${BLUE}╔════════════════════════════════════════════════════════════╗${NC}"echo -e "${BLUE}║ Copy MongoDB Credentials from Silo to Vault ║${NC}"echo -e "${BLUE}╚════════════════════════════════════════════════════════════╝${NC}"echo ""
# Check if credentials exist on siloecho -e "${YELLOW}Checking for credentials on silo...${NC}"if ! ssh "$SILO_HOST" "test -f /root/mongodb-credentials.txt"; then echo -e "${RED}✗ Credentials file not found on silo${NC}" echo -e "${YELLOW}Run the setup script first: utilities/setup-silo-mongodb-auth.sh${NC}" exit 1fi
# Download credentialsecho -e "${YELLOW}Downloading credentials...${NC}"TEMP_FILE=$(mktemp)scp "$SILO_HOST:/root/mongodb-credentials.txt" "$TEMP_FILE"
if [ ! -f "$TEMP_FILE" ]; then echo -e "${RED}✗ Failed to download credentials${NC}" exit 1fi
echo -e "${GREEN}✓ Downloaded credentials${NC}"echo ""
# Extract passwordsMONGO_ADMIN_PASS=$(grep "^Password:" "$TEMP_FILE" | head -1 | awk '{print $2}')MONGO_APP_USER=$(grep "^Username:" "$TEMP_FILE" | tail -1 | awk '{print $2}')MONGO_APP_PASS=$(grep "^Password:" "$TEMP_FILE" | tail -1 | awk '{print $2}')
# Update vault fileecho -e "${YELLOW}Updating vault file: $VAULT_FILE${NC}"
cat > "$VAULT_FILE" << EOF# Silo MongoDB Credentials# Generated: $(date)# Server: silo.aesthetic.computer (64.23.151.169)
# Application User (for day-to-day use)MONGODB_CONNECTION_STRING="mongodb://${MONGO_APP_USER}:${MONGO_APP_PASS}@localhost:27018/aesthetic?authSource=aesthetic"MONGODB_NAME="aesthetic"
# For SSH Tunnel (recommended - most secure)# In one terminal: ssh -L 27018:localhost:27017 root@silo.aesthetic.computer# Then use the connection string above
# For Direct Connection (if MongoDB bound to 0.0.0.0)# MONGODB_CONNECTION_STRING="mongodb://${MONGO_APP_USER}:${MONGO_APP_PASS}@silo.aesthetic.computer:27017/aesthetic?authSource=aesthetic"
# Admin credentials (use sparingly, only for admin tasks)MONGO_ADMIN_USER="admin"MONGO_ADMIN_PASSWORD="${MONGO_ADMIN_PASS}"MONGO_ADMIN_CONNECTION="mongodb://admin:${MONGO_ADMIN_PASS}@localhost:27017/admin?authSource=admin"
# Server accessSILO_HOST="silo.aesthetic.computer"SILO_IP="64.23.151.169"SILO_SSH_USER="root"SILO_SSH_PORT="22"
# For benchmark scriptSILO_MONGODB_CONNECTION_STRING="mongodb://${MONGO_APP_USER}:${MONGO_APP_PASS}@localhost:27018/aesthetic?authSource=aesthetic"SILO_MONGODB_NAME="aesthetic"EOF
echo -e "${GREEN}✓ Updated $VAULT_FILE${NC}"echo ""
# Display connection infoecho -e "${BLUE}╔════════════════════════════════════════════════════════════╗${NC}"echo -e "${BLUE}║ SUCCESS! ║${NC}"echo -e "${BLUE}╚════════════════════════════════════════════════════════════╝${NC}"echo ""echo -e "${GREEN}Credentials stored in: $VAULT_FILE${NC}"echo ""echo -e "${YELLOW}To use these credentials:${NC}"echo ""echo -e "1. Create SSH tunnel:"echo -e " ${BLUE}ssh -L 27018:localhost:27017 root@silo.aesthetic.computer${NC}"echo ""echo -e "2. Source credentials:"echo -e " ${BLUE}export \$(grep -v '^#' $VAULT_FILE | xargs)${NC}"echo ""echo -e "3. Test connection:"echo -e " ${BLUE}mongosh \"\$MONGODB_CONNECTION_STRING\" --eval 'db.runCommand({ping: 1})'${NC}"echo ""echo -e "4. Run benchmark:"echo -e " ${BLUE}node utilities/benchmark-mongodb.mjs${NC}"echo ""
# Cleanuprm -f "$TEMP_FILE"