#!/bin/bash
# Маркет-Пилот · первичная настройка коробки после установки Ubuntu.
# Ставит: NetworkManager (для Wi-Fi через nmcli), BlueZ, Bluetooth Wi-Fi онбординг (Improv BLE),
# Tailscale (без авторизации — ключ позже). Идемпотентно, можно гонять повторно.
set -e
LOG=/tmp/mpbox-bootstrap.log
exec > >(tee -a "$LOG") 2>&1
echo "=== MP box bootstrap $(date) ==="
SRC=/home/mpadmin/mpbox

echo "--- 1. packages ---"
sudo apt-get update -y
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y network-manager bluez python3-venv python3-pip git curl jq dbus

echo "--- 2. NetworkManager renderer (Wi-Fi via nmcli) ---"
sudo tee /etc/netplan/99-mpbox-nm.yaml >/dev/null <<'YAML'
network:
  version: 2
  renderer: NetworkManager
YAML
sudo chmod 600 /etc/netplan/99-mpbox-nm.yaml
sudo netplan apply || true
sudo systemctl enable --now NetworkManager || true
sudo systemctl enable --now bluetooth || true

echo "--- 3. python venv + bless (BLE GATT) ---"
sudo mkdir -p /opt/mpbox
sudo python3 -m venv /opt/mpbox/venv
sudo /opt/mpbox/venv/bin/pip install --upgrade pip
sudo /opt/mpbox/venv/bin/pip install bless

echo "--- 4. improv onboarding service ---"
sudo cp "$SRC/mp_improv.py" /opt/mpbox/
sudo cp "$SRC/mp-improv.service" /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable mp-improv.service

echo "--- 5. tailscale (install only; auth later) ---"
curl -fsSL https://tailscale.com/install.sh | sh || true

echo "=== BOOTSTRAP-DONE ==="
echo "Bluetooth advertises as 'MP-Box'. Start onboarding: sudo systemctl start mp-improv"
echo "Wi-Fi onboarding page: open wifi-setup.html on phone (Android Chrome / iPhone Bluefy)"
