# Checklist de Instalación — Bot Telegram

Completa cada paso en orden y márcalo cuando esté listo.

---

## Preparación del servidor

- [ ] PHP >= 8.1 instalado (`php --version`)
- [ ] Composer instalado (`composer --version`)
- [ ] Apache2 instalado y corriendo
- [ ] Módulo `rewrite` de Apache habilitado (`sudo a2enmod rewrite`)
- [ ] Puerto 443 abierto en el firewall

## Despliegue del proyecto

- [ ] `composer install` ejecutado en `/var/www/bot-telegram`
- [ ] `.env` configurado con valores reales (todos los campos sin placeholders)
- [ ] `chmod 600 .env` aplicado
- [ ] `sudo chown -R www-data:www-data storage/` ejecutado
- [ ] `chmod 755 public/index.php` aplicado

## Configuración de Apache

- [ ] Virtual host creado en `/etc/apache2/sites-available/bot-telegram.conf`
- [ ] `DocumentRoot` apunta a `/var/www/bot-telegram/public`
- [ ] `AllowOverride All` configurado para el directorio
- [ ] `sudo a2ensite bot-telegram` ejecutado
- [ ] `sudo systemctl reload apache2` ejecutado
- [ ] `curl http://tu-dominio.com/health` devuelve `{"ok":true,...}`

## HTTPS con Let's Encrypt

- [ ] `sudo certbot --apache -d tu-dominio.com` ejecutado
- [ ] `curl https://tu-dominio.com/health` devuelve `{"ok":true,...}` (con HTTPS)
- [ ] Renovación automática verificada: `sudo certbot renew --dry-run`

## Verificación de credenciales

- [ ] `php tests/test_telegram_token.php` → ✅ Token válido, muestra @username del bot
- [ ] `php tests/test_appscript_api.php` → ✅ 5/5 pruebas exitosas

## Registro del webhook

- [ ] `php scripts/setup_webhook.php tu-dominio.com` ejecutado → respuesta `ok:true`
- [ ] `php scripts/webhook_info.php` confirma URL activa del webhook
- [ ] `pending_update_count` en 0 (o procesándose)
- [ ] No hay `last_error_message` en la info del webhook

## Prueba end-to-end

- [ ] `php tests/test_simulate_message.php "/start"` → status 200
- [ ] Logs en `storage/logs/` muestran el mensaje procesado
- [ ] Enviar `/start` desde Telegram real → bot responde
- [ ] Enviar `/vincular tu_usuario_github` desde Telegram → bot confirma vinculación
- [ ] Enviar `/mi_estado` desde Telegram → bot muestra actividad

---

## Comandos rápidos de referencia

```bash
# Instalar dependencias
cd /var/www/bot-telegram && composer install

# Permisos
sudo chown -R www-data:www-data storage/
chmod 600 .env

# Apache
sudo a2enmod rewrite && sudo a2ensite bot-telegram && sudo systemctl reload apache2

# HTTPS
sudo certbot --apache -d TU_DOMINIO

# Tests
php tests/test_telegram_token.php
php tests/test_appscript_api.php

# Webhook
php scripts/setup_webhook.php TU_DOMINIO
php scripts/webhook_info.php

# Simular mensaje local
php tests/test_simulate_message.php "/start"
```
