# Mise à jour automatique - Linux

Le processus de mise à jour de la plateforme Navixy consiste généralement en trois parties : mise à jour de la base de données, mise à jour des fichiers de service Java et mise à jour des fichiers de service web. Il est important de suivre attentivement les instructions de mise à jour et de s'assurer que chaque partie de la mise à jour est menée à bien sans rencontrer d'erreurs.

{% hint style="danger" %}
Si des erreurs ou d'autres difficultés surviennent pendant le processus de mise à jour, veuillez contacter [le support technique Navixy](mailto:support@navixy.com) immédiatement. Des mises à jour initiées et incomplètes peuvent provoquer un dysfonctionnement ou rendre la plateforme indisponible.
{% endhint %}

## Vérification des prérequis

Avant d’installer, veuillez vous assurer que votre système répond aux prérequis suivants :

1. **Java Development Kit 21**\
   À partir de mars 2025, la plateforme a déprécié la version 17 et les versions antérieures.
2. **MySQL 8.0**\
   À partir de mars 2024, la plateforme a déprécié MySQL 5.7. Cette version a atteint sa fin de vie (EOL) et n’est plus prise en charge.

{% hint style="info" %}
La non-conformité aux logiciels requis empêchera la nouvelle version de la plateforme de démarrer. Cependant, une mise à jour préalable des prérequis permettra de maintenir la plateforme fonctionnelle.
{% endhint %}

## Début de la mise à jour

Extrayez un paquet de distribution de la plateforme reçu de Navixy, en général il s’agit d’un `.tar.gz` fichier.

```
tar -zxvf $PACKAGENAME
```

*(où `$PACKAGENAME` est le nom de `tar.gz` fichier)*

Il sera extrait dans `/navixy-package` répertoire, contenant tous les fichiers de la plateforme. Ci-après, ce sera le répertoire principal de la distribution.

## Mise à jour automatisée

Pour les instances hébergées sur des serveurs Linux, une solution de mise à jour automatisée est disponible. Il est fortement recommandé d'utiliser le `update.sh` script. Il effectue une mise à jour pas à pas de la base de données et des fichiers d'application, et vous n'avez pas besoin d'effectuer d'opérations internes manuelles.

Exécutez le `update.sh` script depuis le `/navixy-package` répertoire. Si votre plateforme est hébergée sur deux serveurs, exécutez le script sur le serveur d'application (là où les services Java s'exécutent).

```
root@server:/home/navixy-package# ./update.sh
```

Le script commencera par une mise à jour de la base de données. Si la base de données est sur un serveur séparé, le script récupérera les données de connexion à partir de la configuration des services Java.

Après la mise à jour de la base de données (qui peut prendre un certain temps), le script mettra à jour les fichiers système de la plateforme.

{% hint style="info" %}
Si votre instance n'a pas été mise à jour depuis un certain temps, vous pouvez voir le message suivant pendant la mise à jour : `Il semble que les services Navixy ne soient pas sous le contrôle de systemd. Voulez-vous créer des services systemd (les services runit seront supprimés) ? (y/n)` Il est recommandé de répondre affirmativement. Le fait est que nous avons déprécié la **runit** méthode de démarrage des services, et utilisons maintenant **systemd** à cette fin. Le script s'occupera de tout pour vous. Cependant, si vous répondez non pour une raison quelconque, cela ne fera pas planter le système, et runit continuera de fonctionner. Vous pourrez passer à systemd lors de la prochaine mise à jour.
{% endhint %}

#### Mise à jour de la base de données (optionnelle)

Vous pouvez effectuer la mise à jour de la base de données séparément du reste de la plateforme si nécessaire. Pour ce faire, exécutez le `update-db.sh` script depuis le `/navixy-package` répertoire. Cela peut être fait soit sur le serveur de base de données (localhost) soit depuis un autre serveur en spécifiant l'adresse hôte. Après l'exécution du script, vous verrez le dialogue suivant :

```
Entrez l'hôte mysql [localhost] :
Entrez le port mysql [3306] :
Entrez le nom d'utilisateur mysql [root] :
Mise à jour de la base de données Navixy..
Entrez le mot de passe :
```

Les paramètres par défaut sont indiqués entre crochets. S'ils sont identiques aux paramètres réels (la mise à jour est effectuée depuis le serveur de base de données), vous n'avez rien à saisir : appuyez simplement sur Entrée. Si vous souhaitez spécifier un hôte différent, un port personnalisé ou un utilisateur différent, remplissez les paramètres appropriés.

{% hint style="danger" %}
Si quelque chose ne fonctionne pas correctement après la mise à jour, essayez de redémarrer les services de la plateforme en utilisant `restart-navixy` script. De plus, videz les données de votre navigateur ou vérifiez les problèmes en mode navigation privée.
{% endhint %}

***

## Mise à jour manuelle

{% hint style="info" %}
La mise à jour automatisée d'une plateforme déployée sur Linux est une solution éprouvée et il est fortement recommandé de l'utiliser. Par conséquent, les informations suivantes sont fournies à titre informatif uniquement et pour des cas d'installations spéciales non standard.
{% endhint %}

#### Mise à jour de la base de données

Ouvrir `navixy-package/db` répertoire et exécutez `updates.sql` fichier avec la commande suivante :

```
mysql -uroot -p$ROOTPASSWORD google < updates.sql
```

(où $ROOTPASSWORD est le mot de passe root MySQL)

Supprimer `updates.sql` et `google.sql` du dossier db.

{% hint style="warning" %}
**Cela doit être fait** afin de ne pas écraser la base de données à l'étape suivante.
{% endhint %}

```
rm updates.sql
rm google.sql
```

Assurez-vous que ces fichiers sont supprimés, puis exécutez tous les autres fichiers sql.

```
cat *.sql | mysql -uroot -p$ROOTPASSWORD google
```

#### **Mise à jour des services Java**

La mise à jour des services Java consiste simplement à remplacer les fichiers dans les répertoires de services sous `/home/java`. Ces répertoires sont :

* `api-server`
* `sms-server`
* `tcp-server`

Trouvez les répertoires correspondants dans `navixy-package`. Vous devez remplacer tous les fichiers à l'exception de `config.properties` et `db.properties` dans les *conf* dossiers. Comparez les `config.properties` fichiers existants avec ceux du nouveau distributif. Si vous voyez de nouveaux paramètres, ajoutez-les à la configuration existante.

#### Mise à jour des services Web

Accédez à */var/www* répertoire. Remplacez tous les fichiers dans ***panel-v2*** et ***pro-ui*** répertoires par les fichiers des répertoires correspondants du package de distribution. Cela ne corrompra aucune configuration, car les fichiers de configuration dans le package sont nommés comme *exemple*, et ne remplaceront pas les fichiers existants.

Comparez ces fichiers :

* panel-v2/**Config.js**,
* pro-ui/**PConfig.js**
* pro-ui/static/**app\_config.js**

avec les exemples dans le paquet de distribution.

Si vous voyez de nouveaux paramètres, ajoutez-les.

## Étapes finales

Redémarrez les services Java Navixy. Typiquement, cela se fait avec cette commande :

```
restart-navixy
```

Vérifiez que les services ont redémarré avec succès et fonctionnent pendant au moins une minute. Cela indique que le processus de mise à jour est terminé.
