Files

72 lines
2.1 KiB
Bash

#!/bin/bash
# Base Provisioning — ThinkCentre 1 + 2
# Run as target user (secondclaw) with NOPASSWD sudo
# Usage: bash provision.sh
set -e
echo "=== ZeitAnker ThinkCentre Base Provisioning ==="
echo "[1/6] System update..."
sudo apt-get update -qq
sudo apt-get upgrade -y -qq
sudo apt-get install -y -qq \
curl wget git unzip build-essential \
htop tmux vim jq \
lighttpd \
ca-certificates gnupg lsb-release
echo "[2/6] Node.js 22 (LTS)..."
if ! command -v node &>/dev/null; then
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
fi
node --version
npm --version
echo "[3/6] Docker (if not installed)..."
if ! command -v docker &>/dev/null; then
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker "$USER"
fi
docker --version
echo "[4/6] PM2..."
npm install -g pm2 2>/dev/null || true
pm2 --version
echo "[5/6] lighttpd APK Server..."
sudo mkdir -p /var/www/downloads
sudo chown "$USER:$USER" /var/www/downloads
sudo tee /etc/lighttpd/lighttpd.conf > /dev/null << 'EOF'
server.modules = ( "mod_dirlisting" )
server.document-root = "/var/www/downloads"
server.port = 8080
dir-listing.activate = "enable"
mimetype.assign = (
".apk" => "application/vnd.android.package-archive",
".html" => "text/html",
)
EOF
sudo systemctl enable lighttpd
sudo systemctl restart lighttpd
echo "[6/6] SSH key (from Pi)..."
mkdir -p ~/.ssh && chmod 700 ~/.ssh
# Pi's public key — allows Otto to SSH in without password
PI_KEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP0AOGdfsP2pewLTZ5yq9podhDaPinPqLeI148tecY5o ottobringts@gmail.com"
grep -qF "$PI_KEY" ~/.ssh/authorized_keys 2>/dev/null || echo "$PI_KEY" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
echo ""
echo "=== Provisioning complete ==="
echo "Node: $(node --version)"
echo "Docker: $(docker --version)"
echo "PM2: $(pm2 --version)"
echo "lighttpd: http://$(hostname -I | awk '{print $1}'):8080"
echo ""
echo "Next steps:"
echo " Android: bash android/setup.sh"
echo " Ollama: bash ollama/setup.sh"
echo " OpenClaw (TC2 only): npm install -g openclaw && openclaw setup"