#!/bin/sh
# SOKKAN self-host installer — https://sokkan.ch
# Usage : curl -fsSL https://sokkan.ch/install.sh | sh
set -e

BASE="${SOKKAN_BASE:-https://sokkan.ch}"
DIR="${SOKKAN_DIR:-sokkan}"

command -v docker >/dev/null 2>&1 || {
  echo "✗ Docker est requis → https://docs.docker.com/engine/install/"; exit 1; }
docker compose version >/dev/null 2>&1 || {
  echo "✗ Docker Compose v2 est requis"; exit 1; }
[ -e "$DIR" ] && { echo "✗ Le dossier ./$DIR existe déjà — abandon."; exit 1; }

echo "→ Téléchargement de SOKKAN ($BASE/dist)…"
mkdir -p "$DIR"
curl -fsSL "$BASE/dist/sokkan-latest.tar.gz" | tar xz -C "$DIR" --strip-components=1

cd "$DIR"
cp .env.example .env
TOKEN="$(head -c 24 /dev/urandom | od -An -tx1 | tr -d ' \n')"
sed "s/^SOKKAN_LOCAL_TOKEN=.*/SOKKAN_LOCAL_TOKEN=$TOKEN/" .env > .env.tmp && mv .env.tmp .env

VER="$(curl -fsSL "$BASE/dist/VERSION" 2>/dev/null || echo '?')"
echo ""
echo "✔ SOKKAN $VER installé dans ./$DIR"
echo ""
echo "  1. Édite $DIR/.env :"
echo "       ANTHROPIC_API_KEY=…            (clé API Anthropic)"
echo "       — ou, avec un abonnement Claude Pro/Max :"
echo "       CLAUDE_CODE_OAUTH_TOKEN=…      (généré par : claude setup-token)"
echo "       SOKKAN_WORKSPACE=/chemin/vers/ton/projet"
echo ""
echo "  2. cd $DIR && docker compose up -d --build     (premier build ≈ 3-5 min)"
echo ""
echo "  3. http://localhost:3009 — token d'accès (déjà dans .env) :"
echo "       $TOKEN"
