|
1 | | -# dcubabot |
| 1 | +# DC-UBA Bot |
2 | 2 |
|
3 | | -La idea de este repositorio es migrar desde el viejo repositorio las funcionalidades que tiene el bot de forma estructurada, prolija y segura. Muy pronto traeremos bardearmarto, tranquilos. |
| 3 | +Este repositorio contiene el código fuente del Bot Oficial de Telegram de los estudiantes del Departamento de Computación de la UBA. |
4 | 4 |
|
5 | | -Mientras seguimos la migración todos son libres de colaborar con pull requests. |
| 5 | +La arquitectura actual está basada en **Google Cloud Run** (Serverless), **FastAPI** para el manejo de webhooks, y **Python 3.11** empaquetado con **uv**. |
6 | 6 |
|
7 | | -Para probar el bot en acción en Telegram es necesario crear un archivo `tokenz.py` que asigne a la variable `token` el token del bot con el que se desea hacer las pruebas. |
| 7 | +## 🛠️ Desarrollo Local |
| 8 | + |
| 9 | +El proyecto ya no utiliza `requirements.txt` clásico, sino que está modernizado con `uv` para instalaciones súper rápidas y reproducibles. |
| 10 | + |
| 11 | +Para instalar las dependencias y configurar el entorno: |
| 12 | + |
| 13 | +```bash |
| 14 | +# 1. Instalar uv (si no lo tenés) |
| 15 | +curl -LsSf https://astral.sh/uv/install.sh | sh |
| 16 | + |
| 17 | +# 2. Sincronizar el entorno virtual (crea .venv y descarga todo) |
| 18 | +uv sync |
| 19 | + |
| 20 | +# 3. Activar el entorno virtual |
| 21 | +source .venv/bin/activate |
| 22 | +``` |
| 23 | + |
| 24 | +Para probar el bot de manera local, es necesario configurar las variables de entorno de acceso (Telegram, Base de Datos, etc.): |
8 | 25 |
|
9 | | -Para instalar las dependecias correr lo siguiente: |
10 | 26 | ```bash |
11 | | -$ pip3 install -r requirements.txt |
| 27 | +export TELEGRAM_BOT_TOKEN="TU_TOKEN_DE_PRUEBA" |
| 28 | +export WEBHOOK_URL="TU_URL_DE_NGROK_O_LOCAL" |
| 29 | +export DB_URL="postgresql://..." |
| 30 | + |
| 31 | +python main.py |
12 | 32 | ``` |
| 33 | + |
| 34 | +## ☁️ Deploy |
| 35 | + |
| 36 | +El deploy a producción está 100% automatizado mediante GitHub Actions y empaquetado en una imagen `distroless` ultra segura de Debian 12. |
| 37 | +Al realizar un push o merge a la rama `main`, la infraestructura se compila y se despliega directamente en Google Cloud Run sin intervención manual. |
| 38 | + |
| 39 | +> **NOTA:** Las tareas programadas (como `/felizdia` o avisos de eventos) se ejecutan mediante invocaciones de Cloud Scheduler al script `cron.py` empaquetado como un Cloud Run Job. |
0 commit comments