#!/usr/bin/env bash
set -euo pipefail

echo "[*] Installing packages (Ubuntu)…"
sudo apt-get update -y
sudo apt-get install -y network-manager dnsmasq wireguard iptables nginx nodejs npm

echo "[*] Enabling IP forwarding…"
sudo install -m 0644 ./../../configs/99-vrb-sysctl.conf /etc/sysctl.d/99-vrb-sysctl.conf
sudo sysctl --system

echo "[*] Installing NetworkManager profiles…"
sudo install -m 0600 ./../../configs/networkmanager/vrb-lan.nmconnection /etc/NetworkManager/system-connections/vrb-lan.nmconnection
sudo install -m 0600 ./../../configs/networkmanager/vrb-lan-port.nmconnection /etc/NetworkManager/system-connections/vrb-lan-port.nmconnection
sudo install -m 0600 ./../../configs/networkmanager/vrb-wan.nmconnection /etc/NetworkManager/system-connections/vrb-wan.nmconnection
sudo install -m 0600 ./../../configs/networkmanager/vrb-ext.nmconnection /etc/NetworkManager/system-connections/vrb-ext.nmconnection
echo ">> Replace <LAN_IFACE>/<WAN_IFACE> in the profiles (see 'ip link')."

echo "[*] dnsmasq setup…"
sudo install -m 0644 ./../../configs/dnsmasq/dnsmasq.conf /etc/dnsmasq.conf
sudo install -m 0644 ./../../configs/dnsmasq/dnsmasq.hosts /etc/dnsmasq.hosts
sudo systemctl enable --now dnsmasq

echo "[*] WireGuard setup…"
if [[ ! -f /etc/wireguard/wg0.conf ]]; then
  sudo install -m 0600 ./../../configs/wireguard/wg0.conf.sample /etc/wireguard/wg0.conf
  echo ">> Edit /etc/wireguard/wg0.conf with keys and WAN iface."
fi
sudo systemctl enable --now wg-quick@wg0 || true

echo "[*] Deploying app to /opt/exosysteme…"
sudo mkdir -p /opt/exosysteme
sudo rsync -a --delete ./../../app/ /opt/exosysteme/app/

echo "[*] Systemd services…"
sudo install -m 0644 ./../../configs/systemd/exosysteme-api.service /etc/systemd/system/exosysteme-api.service
sudo install -m 0644 ./../../configs/systemd/exosysteme-keymgr.service /etc/systemd/system/exosysteme-keymgr.service
sudo systemctl daemon-reload
sudo systemctl enable --now exosysteme-api.service exosysteme-keymgr.service

echo "[*] NGINX…"
sudo install -m 0644 ./../../configs/nginx/spectra.conf /etc/nginx/conf.d/spectra.conf || true
sudo systemctl enable --now nginx

echo "[✓] VRB + API deployed (Ubuntu)."
