#!/bin/bash # # Setup development environment on Archipelago target machine # # Run this ON the HP ProDesk via SSH: # curl -sSL https://raw.githubusercontent.com/.../setup-target-dev.sh | bash # Or copy and run locally: # scp scripts/setup-target-dev.sh archipelago@192.168.1.228:~/ # ssh archipelago@192.168.1.228 'bash ~/setup-target-dev.sh' # set -e echo "╔════════════════════════════════════════════════════════════════╗" echo "║ Setting up Archipelago Development Environment ║" echo "╚════════════════════════════════════════════════════════════════╝" echo "" # Update packages echo "📦 Updating packages..." sudo apt update # Install Node.js (for Vue.js frontend) echo "" echo "📦 Installing Node.js..." if ! command -v node &> /dev/null; then curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs else echo " Node.js already installed: $(node --version)" fi # Install Rust (for backend) echo "" echo "📦 Installing Rust..." if ! command -v cargo &> /dev/null; then curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y source ~/.cargo/env else echo " Rust already installed: $(rustc --version)" fi # Install build tools echo "" echo "📦 Installing build tools..." sudo apt install -y \ build-essential \ pkg-config \ libssl-dev \ git # Create development directory echo "" echo "📁 Creating development directory..." mkdir -p ~/archy # Fix XDG_RUNTIME_DIR for rootless Podman (add to bashrc) if ! grep -q "XDG_RUNTIME_DIR" ~/.bashrc; then echo "" echo "🔧 Fixing Podman rootless setup..." cat >> ~/.bashrc << 'EOF' # Fix for rootless Podman if [ -z "$XDG_RUNTIME_DIR" ]; then export XDG_RUNTIME_DIR=/run/user/$(id -u) if [ ! -d "$XDG_RUNTIME_DIR" ]; then sudo mkdir -p "$XDG_RUNTIME_DIR" sudo chown $(whoami):$(whoami) "$XDG_RUNTIME_DIR" sudo chmod 700 "$XDG_RUNTIME_DIR" fi fi EOF fi # Enable user lingering for Podman sudo loginctl enable-linger archipelago 2>/dev/null || true echo "" echo "╔════════════════════════════════════════════════════════════════╗" echo "║ ✅ Development environment ready! ║" echo "╚════════════════════════════════════════════════════════════════╝" echo "" echo "Installed:" echo " • Node.js: $(node --version 2>/dev/null || echo 'not found')" echo " • npm: $(npm --version 2>/dev/null || echo 'not found')" echo " • Rust: $(rustc --version 2>/dev/null || echo 'not found')" echo " • Cargo: $(cargo --version 2>/dev/null || echo 'not found')" echo "" echo "Next steps:" echo " 1. Log out and back in (or run: source ~/.bashrc)" echo " 2. From your Mac, run: ./scripts/deploy-to-target.sh" echo " 3. To start Vue.js dev server: cd ~/archy/neode-ui && npm run dev -- --host 0.0.0.0" echo ""