Instalación
Para garantizar la consistencia entre los desarrolladores del equipo y maximizar el rendimiento, Yastubo utiliza Python 3.12 y uv como gestor de paquetes y entornos virtuales.
Requisitos Previos
Section titled “Requisitos Previos”Antes de comenzar, asegúrese de tener instalado:
- Python 3.12+
- uv (Recomendado): Gestor de paquetes rápido para Python.
curl -LsSf https://astral.sh/uv/install.sh | sh - Docker y Docker Compose: Para levantar la infraestructura de soporte (PostgreSQL y Redis).
- Git: Para clonación de repositorios y gestión de versiones.
Instalación Automática (Recomendado)
Section titled “Instalación Automática (Recomendado)”Se ha diseñado un script que automatiza el proceso de inicialización, desde la creación de entornos virtuales hasta la verificación de la infraestructura.
- Clonar el repositorio:
Terminal window git clone https://github.com/TechAtlasDev/yastubo_backend_v1.gitcd yastubo_backend_v1 - Ejecutar el Setup Maestro:
Terminal window uv run python scripts/backend_setup.py
Operaciones del script de inicialización
Section titled “Operaciones del script de inicialización”El script backend_setup.py realiza las siguientes acciones de forma secuencial:
- Gestión de Secretos: Genera el archivo .env inicial a partir de .env.example.
- Sincronización Determinística: Instala las dependencias exactas usando
uv sync --dev. - Control de Calidad: Configura los hooks de
pre-commit(Ruff, Mypy). - Migraciones de Datos: Aplica las migraciones de base de datos con
alembichasta el estadoHEAD. - Semilla de Seguridad: Ejecuta
seed_roles.pypara establecer la jerarquía de permisos. - Smoke Test: Valida la comunicación de la API con PostgreSQL y Redis.
Instalación Manual
Section titled “Instalación Manual”Pasos para el despliegue manual del entorno:
1. Preparar Entorno
Section titled “1. Preparar Entorno”cp .env.example .envuv sync --dev2. Base de Datos
Section titled “2. Base de Datos”Asegúrese de tener PostgreSQL activo y ejecute:
uv run alembic upgrade headuv run python scripts/seed_roles.py3. Hooks de Calidad
Section titled “3. Hooks de Calidad”uv run pre-commit installAnálisis de Herramientas: uv
Section titled “Análisis de Herramientas: uv”Yastubo utiliza uv en lugar de pip para asegurar tiempos de resolución mínimos y entornos reproducibles. Sus principales ventajas son:
- Resolución Eficiente: Gestión de dependencias complejas en milisegundos.
- Gestión de Versiones: Control de versiones de Python sin herramientas externas.
- Archivo de Bloqueo:
uv.lockgarantiza paridad total entre entornos de desarrollo y producción.
Verificación Final con la CLI
Section titled “Verificación Final con la CLI”Para confirmar que el entorno es funcional, inicie la Yastubo Dev Machine:
make cliEn la pestaña de Dashboard (Inicio), podrá visualizar el estado de Python, Docker y los secretos configurados.
