# Installation sur un Raspberry Pi

### Prérequis

#### Raspberry Pi OS

Vous devrez installer la dernière version complète du système d'exploitation [Raspberry Pi OS](https://www.raspberrypi.com/software/)   
Utilisez l'application [Raspberry Pi Imager](https://www.raspberrypi.com/software/)

#### Node.js

Node.js est le framework requis pour exécuter MagicMirror.   
L'installation de Node.js est très simple ; suivez simplement le guide officiel ci-dessous :

👉🏻 [nodejs download current](https://nodejs.org/en/download/current "nodejs download current")

```bash
# Download and install nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

# in lieu of restarting the shell
\. "$HOME/.nvm/nvm.sh"

# Download and install Node.js:
nvm install 25

# Verify the Node.js version:
node -v # Should print "v25.2.1".

# Verify npm version:
npm -v # Should print "11.6.2".

```

### Installation manuelle

1. Vérifiez si `Git` est installé sur votre machine en exécutant la commande `git` (l'aide devrait s'afficher), sinon installez-le.  
    ```shell
    sudo apt update
    sudo apt install git -y
    ```
    
    Vérifier
    
    ```
    git --version
    ```
    
    *(Cela devrait vous afficher quelque chose comme `git version 2.30.x` ou plus récent).*
2. <div class="gtx-body">Cloner le dépôt :  
    </div>```
    git clone https://github.com/MagicMirrorOrg/MagicMirror
    ```
3. <div class="gtx-body">Accédez au dépôt :  
    </div>```
    cd MagicMirror
    ```
4. <div class="gtx-body">Installez l'application : ``  
    </div>```
    node --run install-mm
    ```
5. Faites une copie du fichier de configuration d'exemple :  
    ```
    cp config/config.js.sample config/config.js
    ```
6. #### Lancer l'application :  
    
    
    ```
    node --run start
    ```

### Démarrage automatique de votre MagicMirror

**Utilisation de PM2**

---

PM2 est un gestionnaire de processus de production pour les applications Node.js, doté d'un équilibreur de charge intégré. Il permet de maintenir les applications actives en permanence, de les recharger sans interruption de service et de simplifier les tâches d'administration système courantes. Dans cet exemple, nous l'utiliserons pour exécuter un script shell.

#### Install PM2

<div class="gtx-body" id="bkmrk-installez-pm2-%C3%A0-l%27ai">Installez PM2 à l'aide de NPM :  
</div>```
npm install -g pm2
```

#### Démarrage de PM2 au boot

Pour que PM2 puisse fonctionner correctement lors du (re)démarrage de votre système d'exploitation, il doit être lancé au démarrage. Heureusement, PM2 dispose d'une fonction pratique pour cela.

```
pm2 startup
```

<p class="callout info">PM2 va maintenant vous afficher une commande à exécuter.</p>

#### Créer un script de démarrage MagicMirror²

Pour utiliser PM2 avec MagicMirror², il suffit de créer un simple script shell. Il est préférable de placer ce script en dehors du dossier MagicMirror² afin d'éviter tout problème lors d'une éventuelle mise à jour du miroir.

```bash
cd ~
nano mm.sh
```

<div class="gtx-body" id="bkmrk-ajoutez-les-lignes-s">Ajoutez les lignes suivantes :  
</div>```
cd ./MagicMirror
DISPLAY=:0 node --run start
```

Enregistrez et fermez le fichier à l'aide des commandes CTRL+O et CTRL+X. Assurez-vous ensuite que le script shell est exécutable en exécutant la commande suivante :

```
chmod +x mm.sh
```

#### Démarrez votre MagicMirror² avec PM2

<div class="gtx-body" id="bkmrk-il-vous-suffit-de-d%C3%A9">Il vous suffit de démarrer votre miroir avec la commande suivante :  
</div>```
pm2 start mm.sh
```

Votre miroir devrait maintenant démarrer et apparaître sur votre écran après quelques secondes.

#### Activer le redémarrage du script MagicMirror²

Pour garantir le redémarrage de MagicMirror² après un redémarrage, vous devez enregistrer l'état actuel de tous les scripts exécutés via PM2. Pour ce faire, exécutez la commande suivante :

```
pm2 save
```

Et voilà ! Votre MagicMirror² devrait maintenant redémarrer après le démarrage et après toute panne.

### Controlling your MagicMirror² via PM2  


Avec votre MagicMirror fonctionnant via PM2, vous disposez d'outils pratiques :

##### Redémarrage de votre MagicMirror²  


```
pm2 restart mm
```

##### Arrêter votre MagicMirror²

```
pm2 stop mm
```

<div class="gtx-body" id="bkmrk-afficher-les-logs-ma">Afficher les logs MagicMirror²</div>```
pm2 logs mm
```

##### Show the MagicMirror² process information

```
pm2 show mm
```