---
title: "Instalación"
description: "Clona Nibiru, instala las dependencias, establece los permisos, ejecuta tu primera migración."
---

## Requisitos

- **PHP** ≥ 8.2 con estas extensiones: `pdo`, `gd`, `memcached`, `curl`.
- **Composer** para dependencias de PHP.
- **Una base de datos**: MariaDB / MySQL ≥ 10.4, o PostgreSQL ≥ 13. ODBC si te estás conectando a una fuente no nativa.
- **Smarty** (instalado via Composer).
- Un servidor web con **mod_rewrite** (Apache) o equivalente (`vhost.conf` está incluido para docroots estilo nginx).

## Clonar e instalar
```bash
git clone https://github.com/alllinux/Nibiru my-app
cd my-app
composer install
```
Composer se instala en `core/l/` (Nibiru utiliza un `vendor-dir` inusual para mantener todo el código del framework bajo `core/`).

## Configurar

Copia el archivo INI de ejemplo y edite su entorno:
```bash
cp application/settings/config/settings.development.ini.example \
   application/settings/config/settings.development.ini
```
Las secciones mínimas que necesitas configurar:
```ini
[ENGINE]
templates    = "/../../application/view/templates/"
templates_c  = "/../../application/view/templates_c/"
cache        = "/../../application/view/cache/"
caching      = false
debug        = true
error.controller = "error"

[SETTINGS]
page.url = "https://my-app.local"
navigation = "/../../application/settings/config/navigation/main.json"
modules.path = "/../../application/module/"
entries.per.page = 25
smarty.css[] = "/public/css/app.css"
smarty.js[]  = "/public/js/app.js"
timezone = "Europe/Vienna"

[DATABASE]
driver   = "pdo"           ; one of: mysql, pdo, postgres, psql, postgresql
hostname = "localhost"
port     = 3306
username = "nibiru"
password = "secret"
basename = "nibiru_dev"
encoding = "utf8mb4"
is.active = true

[SECURITY]
password_hash = "change-me-at-once"

[GENERATOR]
database = true            ; auto-generate models from DB tables
```
`APPLICATION_ENV` selecciona qué archivo se carga — por defecto, `settings.development.ini`.
```bash
export APPLICATION_ENV=production   # picks settings.production.ini
```
## Carpetas y permisos de Bootstrap
```bash
./nibiru -s
```
Esto crea / corrige permisos en `application/view/templates_c/`, `application/view/cache/`, directorios de registro, etc.

## Ejecuta tu primera migración

Los archivos de migración se encuentran en `application/settings/config/database/` como archivos SQL numerados (`001-acl.sql`, `002-account.sql`, ...). Ejecútalos todos con:
```bash
./nibiru -mi local
```
El migrador registra lo que ha aplicado, por lo que volver a ejecutar es seguro. Para aplicar en entornos de prueba o producción, cambia el entorno:
```bash
APPLICATION_ENV=production ./nibiru -mi production
```
:::caución[Los comandos de reinicio son destructivos]
`./nibiru -mi-reset {env}` elimina la tabla de migraciones y olvida qué archivos se aplicaron. Solo úsalo en una base de datos completamente nueva que no te importe resembrar.
:::

## Primer arranque

Punta la raíz del documento de tu servidor web al directorio raíz del proyecto (el directorio que contiene `index.php`). Para nginx, usa el archivo `vhost.conf` incluido como punto de partida. Para Apache, el redireccionamiento predeterminado de `.htaccess` a `index.php` es suficiente.

Navega a `/` y deberías ver la plantilla de índice. Desde allí, [la Guía Rápida](/start/quick-start/) te guía a través de tu primer controlador y vista.
