---
title: "Installation"
description: "Clonez Nibiru, installez les dépendances, définissez les autorisations, exécutez votre première migration."
---

## Exigences

- **PHP** ≥ 8.2 avec ces extensions : `pdo`, `gd`, `memcached`, `curl`.
- **Composer** pour les dépendances PHP.
- Une base de données : MariaDB / MySQL ≥ 10.4, ou PostgreSQL ≥ 13. ODBC si vous vous connectez à une source non native.
- **Smarty** (installé via Composer).
- Un serveur web avec **mod_rewrite** (Apache) ou équivalent (`vhost.conf` est inclus pour les racines de document nginx-style).

## Cloner et installer
```bash
git clone https://github.com/alllinux/Nibiru my-app
cd my-app
composer install
```
Composer installe dans `core/l/` (Nibiru utilise un `vendor-dir` inhabituel pour garder tous les codes de la trame sous `core/`).

## Configurer

Copiez l'exemple de fichier INI et éditez votre environnement :
```bash
cp application/settings/config/settings.development.ini.example \
   application/settings/config/settings.development.ini
```
Les sections minimales que vous devez configurer :
```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` sélectionne le fichier chargé — par défaut, c'est `settings.development.ini`.
```bash
export APPLICATION_ENV=production   # picks settings.production.ini
```
## Dossiers et autorisations d'initialisation (Bootstrap)
```bash
./nibiru -s
```
Cela crée / corrige les autorisations sur `application/view/templates_c/`, `application/view/cache/`, les répertoires de journaux, etc.

## Exécutez votre première migration

Les fichiers de migration se trouvent dans `application/settings/config/database/` sous forme de fichiers SQL numérotés (`001-acl.sql`, `002-account.sql`, …). Exécutez-les tous avec :
```bash
./nibiru -mi local
```
Le migrateur enregistre ce qu'il a appliqué, donc le réexécuter est sûr. Pour s'appliquer à l'environnement de préproduction ou de production, modifiez l'environnement :
```bash
APPLICATION_ENV=production ./nibiru -mi production
```
:::caution[Les commandes de réinitialisation sont destructives]
`./nibiru -mi-reset {env}` supprime la table des migrations et oublie quels fichiers ont été appliqués. Utilisez-la uniquement sur une base de données fraîchement créée que vous n'avez pas peur de recréer.
:::

## Premier démarrage

Pointez la racine du document de votre serveur web vers la racine du projet (le répertoire qui contient `index.php`). Pour nginx, utilisez le fichier `vhost.conf` inclus comme point de départ. Pour Apache, le redirige par défaut de `.htaccess` dans `index.php` est suffisant.

Accédez à `/` et vous devriez voir le modèle d'index. À partir de là, [le Démarrage rapide](/start/quick-start/) vous guide à travers votre premier contrôleur et vue.
