Skip to content

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.

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.

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.

  1. Clonar el repositorio:
    Terminal window
    git clone https://github.com/TechAtlasDev/yastubo_backend_v1.git
    cd yastubo_backend_v1
  2. Ejecutar el Setup Maestro:
    Terminal window
    uv run python scripts/backend_setup.py

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 alembic hasta el estado HEAD.
  • Semilla de Seguridad: Ejecuta seed_roles.py para establecer la jerarquía de permisos.
  • Smoke Test: Valida la comunicación de la API con PostgreSQL y Redis.

Pasos para el despliegue manual del entorno:

Terminal window
cp .env.example .env
uv sync --dev

Asegúrese de tener PostgreSQL activo y ejecute:

Terminal window
uv run alembic upgrade head
uv run python scripts/seed_roles.py
Terminal window
uv run pre-commit install

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.lock garantiza paridad total entre entornos de desarrollo y producción.

Para confirmar que el entorno es funcional, inicie la Yastubo Dev Machine:

Terminal window
make cli

En la pestaña de Dashboard (Inicio), podrá visualizar el estado de Python, Docker y los secretos configurados.


Installation Flow