diff --git a/TODO.md b/TODO.md index 653d2c6..4fa200e 100644 --- a/TODO.md +++ b/TODO.md @@ -48,39 +48,47 @@ ## Pendiente — Tú lo haces en el VPS/GitHub -### 4.1 GitHub (15 min) -- [ ] Crear repositorio `carlospalanca.es` en GitHub -- [ ] Push inicial: `git init && git add . && git commit -m "feat: initial project setup" && git remote add origin && git push -u origin main` -- [ ] Crear GitHub Fine-Grained PAT → ver `docs/setup/01-github.md` -- [ ] Añadir GitHub Secrets al repo → ver `docs/setup/01-github.md` -- [ ] Crear labels: `agent-created`, `needs-review`, `approved` -- [ ] Activar branch protection en `main` (requerir PR + CI) +### 4.1 GitHub ✅ +- [x] Crear repositorio `cpalanca/carlospalanca.es` en GitHub (público) +- [x] Push inicial a `main` +- [x] Crear GitHub Fine-Grained PAT (`carlospalanca-agents`) → guardado como secret `AGENTS_GH_TOKEN` +- [x] Añadir GitHub Secrets: `VPS_HOST`, `VPS_USER`, `VPS_SSH_PRIVATE_KEY`, `AGENTS_GH_TOKEN`, `OPENWEBUI_API_KEY` +- [x] Crear labels: `agent-created`, `needs-review`, `approved` +- [x] Activar branch protection ruleset en `main` (requiere PR) -### 4.2 VPS (30-60 min) -- [ ] Contratar VPS Ubuntu 24.04 (Hetzner CX22 recomendado ~5€/mes) -- [ ] Apuntar DNS `carlospalanca.es` y `ai.carlospalanca.es` a la IP del VPS -- [ ] Ejecutar `bash vps/deploy.sh` en el VPS → ver `docs/setup/02-vps.md` -- [ ] Obtener certificados SSL: `sudo certbot --nginx -d carlospalanca.es -d www.carlospalanca.es -d ai.carlospalanca.es` -- [ ] Verificar que `https://carlospalanca.es` carga la web +### 4.2 VPS ✅ +- [x] VPS existente en `217.154.185.188` (Ubuntu 24.04, Docker + NPM) +- [x] DNS `carlospalanca.es` y `ai.carlospalanca.es` apuntando al VPS +- [x] Stack `carlospalanca` con nginx:alpine en `/opt/stacks/carlospalanca/` +- [x] SSL gestionado por Nginx Proxy Manager +- [x] Deploy automático via GitHub Actions (push a `main` → rsync → `/opt/stacks/carlospalanca/html/`) +- [x] `https://carlospalanca.es` operativo -### 4.3 OpenWebUI (15 min) -- [ ] Subir `vps/docker-compose.openwebui.yml` al VPS en `/opt/openwebui/` -- [ ] Crear `/opt/openwebui/.env` → ver `docs/setup/03-openwebui.md` -- [ ] `docker compose up -d` -- [ ] Crear API key en OpenWebUI → guardar como `OPENWEBUI_API_KEY` -- [ ] Verificar `https://ai.carlospalanca.es` +### 4.3 OpenWebUI ✅ +- [x] Stack desplegado en `/opt/stacks/openwebui/` con proxy-net +- [x] NPM host `ai.carlospalanca.es` → `openwebui:8080` con SSL +- [x] Anthropic API key configurada (Claude 3.5 Sonnet) +- [x] API Keys habilitadas en admin → secret `OPENWEBUI_API_KEY` añadido al repo +- [x] `https://ai.carlospalanca.es` operativo -### 4.4 Discord (30 min) -- [ ] Crear 9 Discord Applications → ver `docs/setup/04-discord.md` -- [ ] Activar "Message Content Intent" en cada bot -- [ ] Invitar los 9 bots al servidor -- [ ] Crear los 9 canales de Discord -- [ ] Copiar los 9 Channel IDs +### 4.4 Discord ⏳ — MANUAL (no automatizable) +> Discord no permite crear bots por API. Hay que hacerlo desde https://discord.com/developers/applications + +- [ ] Activar Developer Mode: Discord → Ajustes → Avanzado → Modo desarrollador +- [ ] Crear categoría `LA MANO DEL REY` en tu servidor y los 9 canales: + - `el-trono-de-hierro`, `el-pajarillo`, `la-ciudadela`, `el-banco-de-hierro`, `el-muro` + - `desembarco-del-rey`, `cara-sin-nombre`, `poniente-en-llamas`, `la-guardia-de-la-noche` +- [ ] Copiar los 9 Channel IDs (click derecho → Copiar ID) +- [ ] Crear 9 Discord Applications en https://discord.com/developers/applications: + - `Tyrion Lannister`, `Varys`, `Samwell Tarly`, `Bronn`, `Bran Stark` + - `Davos Seaworth`, `Arya Stark`, `Daenerys Targaryen`, `Jon Snow` +- [ ] En cada app → **Bot** → activar **Message Content Intent** → **Reset Token** → copiar token +- [ ] En cada app → **OAuth2** → bot permissions (Read + Send + History) → invitar al servidor +- [ ] Dar todos los tokens y Channel IDs para añadirlos como secrets ### 4.5 Despliegue de agentes (15 min) -- [ ] Subir `agents/` al VPS en `/opt/agents/` -- [ ] Crear `/opt/agents/.env` desde `.env.example` con todos los tokens -- [ ] `docker compose up -d --build` +- [ ] Dar tokens Discord y Channel IDs (ver 4.4) +- [ ] Claude Code desplegará `agents/` en `/opt/stacks/agents/` y creará el `.env` - [ ] Verificar que los 9 bots aparecen online en Discord ### 4.6 Test end-to-end