#!/bin/bash
# start.sh — включает/применяет всю защиту. Идемпотентно: повторный вызов не плодит дубли.
# Долгоживущие части живут в tmux => переживают остановку C#-сервера.
SELF="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"; source "$SELF/../defender.conf"
mkdir -p "$LOGDIR"
exec >>"$LOGDIR/launcher.log" 2>&1
echo "===== [start] $(date) ====="

# 1) тюнинг ядра (idempotent — просто выставляет sysctl)
bash "$SELF/conntrack-tune.sh"
# 2) лимиты в firewall (idempotent — пересобирает цепочку)
bash "$SELF/guard.sh"
# 3) баны в ipset + kernel-drop (idempotent)
bash "$SELF/ban-sync.sh"

# 4) live-watcher банов — только если ещё не крутится
if ! tmux has-session -t "$TMUX_WATCH" 2>/dev/null; then
  tmux new-session -d -s "$TMUX_WATCH" "bash '$SELF/ban-watch.sh'"
  echo "[start] tmux $TMUX_WATCH запущен"
else
  echo "[start] tmux $TMUX_WATCH уже работает"
fi

# 5) мониторинг — только если ещё не крутится
if ! tmux has-session -t "$TMUX_MON" 2>/dev/null; then
  tmux new-session -d -s "$TMUX_MON" "bash '$SELF/monitor.sh'"
  echo "[start] tmux $TMUX_MON запущен"
else
  echo "[start] tmux $TMUX_MON уже работает"
fi

echo "[start] защита активна."
