Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands - CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround - CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check - NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere - MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates - LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference Co-authored-by: Cursor <cursoragent@cursor.com>
148 lines
4.9 KiB
Bash
148 lines
4.9 KiB
Bash
#!/bin/bash
|
|
# Install Services Using Alternative Methods
|
|
# Uses binary downloads and manual installation to bypass apt-get limitations
|
|
|
|
set -uo pipefail
|
|
|
|
NODE_IP="${PROXMOX_HOST_R630_01}"
|
|
|
|
log_info() { echo -e "\033[0;32m[INFO]\033[0m $1"; }
|
|
log_error() { echo -e "\033[0;31m[ERROR]\033[0m $1"; }
|
|
log_success() { echo -e "\033[0;32m[✓]\033[0m $1"; }
|
|
|
|
# Install Node.js via binary download
|
|
install_nodejs_binary() {
|
|
local vmid="$1"
|
|
log_info "Installing Node.js (binary) on CT $vmid..."
|
|
|
|
ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no root@${NODE_IP} "pct enter $vmid <<'INSTALL_EOF'
|
|
cd /tmp
|
|
NODE_VERSION=\"v18.19.0\"
|
|
ARCH=\"x64\"
|
|
|
|
# Download Node.js binary
|
|
wget -q https://nodejs.org/dist/\${NODE_VERSION}/node-\${NODE_VERSION}-linux-\${ARCH}.tar.xz || exit 1
|
|
|
|
# Extract
|
|
tar -xf node-\${NODE_VERSION}-linux-\${ARCH}.tar.xz || exit 1
|
|
|
|
# Install to /usr/local
|
|
cp -r node-\${NODE_VERSION}-linux-\${ARCH}/* /usr/local/ || exit 1
|
|
|
|
# Install PM2
|
|
/usr/local/bin/npm install -g pm2 || exit 1
|
|
|
|
# Verify
|
|
/usr/local/bin/node --version && /usr/local/bin/npm --version && echo 'Node.js installed' || exit 1
|
|
|
|
# Cleanup
|
|
rm -rf node-\${NODE_VERSION}-linux-\${ARCH}* || true
|
|
INSTALL_EOF
|
|
" && log_success "Node.js installed on CT $vmid" || log_error "Failed to install Node.js on CT $vmid"
|
|
}
|
|
|
|
# Install Redis via binary download
|
|
install_redis_binary() {
|
|
local vmid="$1"
|
|
log_info "Installing Redis (binary) on CT $vmid..."
|
|
|
|
ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no root@${NODE_IP} "pct enter $vmid <<'INSTALL_EOF'
|
|
cd /tmp
|
|
REDIS_VERSION=\"7.2.3\"
|
|
|
|
# Download Redis
|
|
wget -q https://download.redis.io/releases/redis-\${REDIS_VERSION}.tar.gz || exit 1
|
|
tar -xf redis-\${REDIS_VERSION}.tar.gz || exit 1
|
|
cd redis-\${REDIS_VERSION} || exit 1
|
|
|
|
# Build Redis (requires build tools - may need to install via alternative method)
|
|
# For now, try to use pre-built or skip if build tools unavailable
|
|
if command -v make >/dev/null 2>&1; then
|
|
make && make install || exit 1
|
|
echo 'Redis installed'
|
|
else
|
|
echo 'Build tools not available, skipping Redis binary build'
|
|
exit 1
|
|
fi
|
|
|
|
cd /tmp
|
|
rm -rf redis-\${REDIS_VERSION}* || true
|
|
INSTALL_EOF
|
|
" && log_success "Redis installed on CT $vmid" || log_error "Failed to install Redis on CT $vmid"
|
|
}
|
|
|
|
# Try to enable privileged mode for containers (if possible)
|
|
enable_privileged_mode() {
|
|
local vmid="$1"
|
|
log_info "Attempting to enable privileged mode for CT $vmid..."
|
|
|
|
ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no root@${NODE_IP} "
|
|
# Stop container
|
|
pct stop $vmid 2>/dev/null || true
|
|
|
|
# Try to set unprivileged=0 (may require container recreation)
|
|
pct set $vmid --unprivileged 0 2>&1 || echo 'Cannot change unprivileged mode without recreation'
|
|
|
|
# Start container
|
|
pct start $vmid 2>/dev/null || true
|
|
"
|
|
}
|
|
|
|
# Use pct mount to fix permissions
|
|
fix_permissions_via_mount() {
|
|
local vmid="$1"
|
|
log_info "Fixing permissions via mount for CT $vmid..."
|
|
|
|
ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no root@${NODE_IP} "
|
|
# Stop container
|
|
pct stop $vmid 2>/dev/null || true
|
|
|
|
# Mount container
|
|
MOUNT_POINT=\$(pct mount $vmid 2>&1 | grep -o '/tmp/.*' | head -1)
|
|
|
|
if [ -n \"\$MOUNT_POINT\" ] && [ -d \"\$MOUNT_POINT\" ]; then
|
|
# Fix permissions
|
|
chown -R root:root \$MOUNT_POINT/var/lib/apt 2>/dev/null || true
|
|
chown -R root:root \$MOUNT_POINT/var/cache/apt 2>/dev/null || true
|
|
chown -R root:root \$MOUNT_POINT/var/lib/dpkg 2>/dev/null || true
|
|
|
|
# Remove locks
|
|
rm -f \$MOUNT_POINT/var/lib/apt/lists/lock
|
|
rm -f \$MOUNT_POINT/var/lib/dpkg/lock*
|
|
rm -f \$MOUNT_POINT/var/cache/apt/archives/lock
|
|
|
|
# Unmount
|
|
pct unmount $vmid 2>/dev/null || true
|
|
|
|
echo 'Permissions fixed via mount'
|
|
else
|
|
echo 'Mount failed'
|
|
fi
|
|
|
|
# Start container
|
|
pct start $vmid 2>/dev/null || true
|
|
"
|
|
}
|
|
|
|
echo "═══════════════════════════════════════════════════════════"
|
|
echo "Install Services Using Alternative Methods"
|
|
echo "═══════════════════════════════════════════════════════════"
|
|
echo ""
|
|
|
|
# Try fixing permissions via mount for key containers
|
|
log_info "Fixing permissions via mount method..."
|
|
for vmid in 10000 10020 10030; do
|
|
fix_permissions_via_mount "$vmid"
|
|
sleep 2
|
|
done
|
|
|
|
# Install Node.js via binary for application containers
|
|
log_info "Installing Node.js via binary download..."
|
|
for vmid in 10030 10040 10050 10060 10070 10080 10090 10091 10092 10130 10150 10151; do
|
|
install_nodejs_binary "$vmid"
|
|
sleep 2
|
|
done
|
|
|
|
echo ""
|
|
log_info "Alternative installation methods attempted!"
|