#!/bin/bash
# Run once on a fresh Vultr Ubuntu 22.04 instance (root user).
# Usage: cd /srv/site-clones/slackbot && bash setup.sh
set -e

echo "=== 1. System packages ==="
apt update && apt install -y python3 python3-venv python3-pip curl git wget

echo "=== 2. Install Node.js (required by Claude Code) ==="
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -y nodejs

echo "=== 3. Install Claude Code CLI ==="
npm install -g @anthropic-ai/claude-code

echo "=== 4. Create service user + directory structure ==="
# -r alone does NOT create a home dir, but claude needs one for ~/.claude
# config — so create it explicitly and point the user at it.
id -u clonebot &>/dev/null || useradd -r -m -d /home/clonebot -s /usr/sbin/nologin clonebot
mkdir -p /home/clonebot
chown clonebot:clonebot /home/clonebot
mkdir -p /srv/slackbot   # holds .env only — secrets stay outside git

echo "=== 5. Python venv + deps ==="
cd /srv/site-clones/slackbot
python3 -m venv venv
venv/bin/pip install -r requirements.txt

echo "=== 6. Set up .env ==="
if [ ! -f /srv/slackbot/.env ]; then
    cp /srv/site-clones/slackbot/.env.example /srv/slackbot/.env
    echo ""
    echo ">>> Edit /srv/slackbot/.env with your Slack tokens before starting."
fi
chown -R clonebot:clonebot /srv/site-clones /srv/slackbot

echo "=== 7. Install systemd service ==="
cp /srv/site-clones/slackbot/clonebot.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable clonebot

echo ""
echo "=== Done! Next steps: ==="
echo "  1. Run: claude  (first time — logs in and sets up API key)"
echo "  2. Edit /srv/slackbot/.env — add your SLACK_BOT_TOKEN and SLACK_APP_TOKEN"
echo "  3. Run: sudo systemctl start clonebot"
echo "  4. Check logs: journalctl -u clonebot -f"
