extract-hostnames.sh (1687B)
1 #!/bin/bash 2 # Extract .onion hostnames from all containers 3 4 echo "=== Extracting .onion hostnames ===" 5 6 # Create output directory if it doesn't exist 7 mkdir -p hostnames 2>/dev/null || { 8 echo "Using /tmp for hostname files due to permission restrictions" 9 OUTPUT_DIR="/tmp/hostnames" 10 mkdir -p "$OUTPUT_DIR" 11 } 12 OUTPUT_DIR="${OUTPUT_DIR:-hostnames}" 13 14 for container in chatterbox shitchat2 shitchat3; do 15 echo "Checking $container..." 16 17 # Get container hostname to find the unique file 18 CONTAINER_ID=$(docker exec $container hostname 2>/dev/null) 19 20 if [ -n "$CONTAINER_ID" ]; then 21 # Try to get hostname from unique file 22 HOSTNAME=$(docker exec $container cat /var/www/html/hostname_${CONTAINER_ID}.txt 2>/dev/null) 23 24 if [ -n "$HOSTNAME" ] && [ "$HOSTNAME" != "Failed to generate hostname" ]; then 25 echo "$HOSTNAME" > "${OUTPUT_DIR}/${container}.onion" 2>/dev/null || { 26 echo "$HOSTNAME" > "/tmp/${container}.onion" 27 echo " ✅ ${container}: $HOSTNAME (saved to /tmp/${container}.onion)" 28 continue 29 } 30 chmod 644 "${OUTPUT_DIR}/${container}.onion" 2>/dev/null || true 31 echo " ✅ ${container}: $HOSTNAME (saved to ${OUTPUT_DIR}/${container}.onion)" 32 else 33 echo " ❌ ${container}: No valid hostname found" 34 fi 35 else 36 echo " ❌ ${container}: Container not accessible" 37 fi 38 done 39 40 echo "" 41 echo "=== Summary ===" 42 if [ -d "$OUTPUT_DIR" ]; then 43 ls -la "${OUTPUT_DIR}"/*.onion 2>/dev/null || echo "No hostname files created" 44 else 45 ls -la /tmp/*.onion 2>/dev/null || echo "No hostname files created" 46 fi