#!/usr/bin/env bash
# ============================================================================
#  Brimoza — SINGLE-COMMAND SETUP (SQLite; NO separate database server).
#  Usage:     ./scripts/install.sh
#  Requires:  Docker + Docker Compose.
#  On first run it generates .env (random panel password + encryption key),
#  builds the image and starts the panel. Data persists in the 'costate' volume.
# ============================================================================
set -euo pipefail
cd "$(dirname "$0")/.."

gen() { openssl rand -hex "${1:-24}" 2>/dev/null || head -c "$((${1:-24}*2))" /dev/urandom | od -An -tx1 | tr -d ' \n'; }

if [ ! -f .env ]; then
  PASS="$(gen 16)"
  echo "PANEL_USER=admin"            >  .env
  echo "PANEL_PASSWORD=${PASS}"      >> .env
  echo "SECRET_KEY=$(gen 32)"        >> .env
  echo "COINBOT_MODE=dry_run"        >> .env
  echo "PORT=8787"                   >> .env
  chmod 600 .env
  echo "=================================================================="
  echo " .env oluşturuldu. Panel girişi:"
  echo "   kullanıcı: admin"
  echo "   parola   : ${PASS}"
  echo " (Bu parolayı kaydet — .env içinde de duruyor.)"
  echo "=================================================================="
else
  echo ".env zaten var — mevcut ayarlar korunuyor."
fi

echo "İmaj kuruluyor + başlatılıyor (ilk sefer birkaç dakika)…"
docker compose -f compose.sqlite.yml --env-file .env up -d --build

echo ""
echo "Kuruldu ✓  Panel:  http://localhost:$(grep -E '^PORT=' .env | cut -d= -f2)"
echo "Mod: DRY_RUN (kâğıt). LIVE için Ayarlar ekranından Binance anahtarı + LIVE onayı gerekir."
