- Reset master to upstream/main (16,697 commits) - Overlay 2,271 local-only files (skills, tools, workspace, configs, apps) - Restore IDENTITY.md and USER.md templates - Build verified, gateway running, Discord working Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
77 lines
2.0 KiB
Bash
77 lines
2.0 KiB
Bash
#!/bin/bash
|
|
# Server Update - Update packages on servers
|
|
|
|
set -e
|
|
|
|
SERVERS=(
|
|
"192.168.1.220:localhost:alex:none"
|
|
"192.168.1.23:nginx-server:alex:~/.ssh/id_ed25519_local"
|
|
"192.168.1.24:raspberry-pi:alex:none"
|
|
)
|
|
|
|
ssh_run() {
|
|
local ip=$1
|
|
local user=$2
|
|
local key=$3
|
|
shift 3
|
|
local cmd="$@"
|
|
|
|
if [ "$ip" == "192.168.1.220" ]; then
|
|
eval "$cmd"
|
|
else
|
|
if [ "$key" == "none" ]; then
|
|
ssh -o StrictHostKeyChecking=no "$user@$ip" "$cmd"
|
|
else
|
|
ssh -i "${key/#\~/$HOME}" -o StrictHostKeyChecking=no "$user@$ip" "$cmd"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
update_server() {
|
|
local server_info=$1
|
|
IFS=':' read -r ip name user key <<< "$server_info"
|
|
|
|
echo ""
|
|
echo "═══════════════════════════════════════════════════════════════"
|
|
echo "📦 Updating $name ($ip)"
|
|
echo "═══════════════════════════════════════════════════════════════"
|
|
|
|
ssh_run "$ip" "$user" "$key" \
|
|
'sudo apt update -qq && sudo DEBIAN_FRONTEND=noninteractive apt upgrade -y 2>&1 | grep -E "upgraded|installed|removed" | tail -5'
|
|
|
|
echo "✅ $name updated!"
|
|
}
|
|
|
|
# Parse arguments
|
|
ALL=false
|
|
SERVER=""
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
--all) ALL=true; shift ;;
|
|
--server) SERVER="$2"; shift 2 ;;
|
|
*) echo "Unknown option: $1"; exit 1 ;;
|
|
esac
|
|
done
|
|
|
|
if [ "$ALL" == "true" ]; then
|
|
for server in "${SERVERS[@]}"; do
|
|
update_server "$server" &
|
|
done
|
|
wait
|
|
echo ""
|
|
echo "✅ All servers updated!"
|
|
elif [ -n "$SERVER" ]; then
|
|
for server in "${SERVERS[@]}"; do
|
|
if [[ "$server" == "$SERVER:"* ]]; then
|
|
update_server "$server"
|
|
exit 0
|
|
fi
|
|
done
|
|
echo "❌ Unknown server: $SERVER"
|
|
exit 1
|
|
else
|
|
echo "Usage: server-update --all | --server <IP>"
|
|
exit 1
|
|
fi
|