diff --git a/bin/ose b/bin/ose
new file mode 100755
index 0000000000000000000000000000000000000000..cff424c7cabef5a28704356209becff47fb0c2f2
--- /dev/null
+++ b/bin/ose
@@ -0,0 +1,327 @@
+#!/usr/bin/env php
+<?php
+
+$c  = new Console();
+$oa = new OseAdmin($c);
+
+$c->printMainTitle("OSE", 15);
+
+$action = isset($_SERVER['argv'][1]) ? $_SERVER['argv'][1] : '';
+
+switch ($action) {
+    case 'update':
+        update($c, $oa);
+    break;
+    case 'notifier-indicateurs':
+        $oa->exec('notifier indicateurs');
+    break;
+    default:
+        help($c, $oa);
+    break;
+}
+
+
+function update(Console $c, OseAdmin $oa)
+{
+    $osedir = "/var/www/ose/deploy";//dirname(__DIR__);
+
+    // Choix de la version
+    $c->println("Mise à jour de OSE");
+    $c->println("Assurez-vous bien d'avoir mis OSE en mode maintenance avant de démarrer\n(pressez Entrée pour continuer)...");
+    $c->getInput();
+
+    $c->exec([
+        "cd $osedir",
+        "git fetch --all --tags --prune",
+    ], false);
+
+    $c->println("Sélection de la version à déployer", $c::COLOR_LIGHT_CYAN);
+    $c->println("La version actuellement installée est la ".$oa->currentVersion($osedir));
+    $c->println("Voici la liste des versions de OSE disponibles:");
+    $tags = $oa->getTags();
+    foreach ($tags as $tag) {
+        $c->println($tag);
+    }
+    $ok = false;
+    while (!$ok) {
+        $c->print("Veuillez choisir une version à déployer: ");
+        $version = $c->getInput();
+        if ($oa->tagIsValid($version)) {
+            $ok = true;
+        } else {
+            $c->println("$version n'est pas dans la liste des versions disponibles.");
+        }
+    }
+
+    // Récupération des sources
+    $c->println("\nMise à jour des fichiers à partir de GIT", $c::COLOR_LIGHT_CYAN);
+    $c->passthru([
+        "cd $osedir",
+        "git checkout tags/$version",
+    ]);
+    $oa->writeVersion($osedir, $version);
+
+    // Récupération des dépendances
+    $c->println("\nMise à jour des dépendances à l'aide de Composer", $c::COLOR_LIGHT_CYAN);
+    $c->passthru([
+        "cd $osedir",
+        "php composer.phar self-update",
+        "php composer.phar install",
+    ]);
+
+    // Conclusion
+    $c->println("\nFin de la mise à jour des fichiers", $c::COLOR_LIGHT_GREEN);
+    $c->println("Il reste encore votre base de données à mettre à jour.");
+    $c->println("N'oubliez pas de sortir du mode maintenance!");
+    $c->println('');
+}
+
+
+function help(Console $c, OseAdmin $oa)
+{
+    $c->println('Actions possibles :');
+    $c->println(" - update               : Mise à jour de l'application");
+    $c->println(" - notifier-indicateurs : Envoi des mails relatifs aux indicateurs");
+}
+
+
+
+
+
+/************************************************************
+ *                      Classes utiles                      *
+ ************************************************************/
+class OseAdmin
+{
+    const OSE_ORIGIN = 'git@git.unicaen.fr:dsi/OSE.git';
+
+    /**
+     * @var Console
+     */
+    protected $console;
+
+    /**
+     * @var array
+     */
+    private $tags = false;
+
+
+
+    /**
+     * OseAdmin constructor.
+     *
+     * @param Console $console
+     */
+    public function __construct(Console $console)
+    {
+        $this->console = $console;
+    }
+
+
+
+    public function gitlabIsReachable(): bool
+    {
+        $gitCheck = $this->console->exec("git ls-remote --heads " . self::OSE_ORIGIN, false);
+
+        return (false !== strpos(implode(' ', $gitCheck), 'heads/master'));
+    }
+
+
+
+    public function getTags(): array
+    {
+        if (false === $this->tags) {
+            $this->tags = [];
+
+            $ts = $this->console->exec("git ls-remote --tags --refs " . self::OSE_ORIGIN, false);
+            foreach ($ts as $tag) {
+                $this->tags[] = substr($tag, strpos($tag, 'refs/tags/') + 10);
+            }
+        }
+
+        return $this->tags;
+    }
+
+
+
+    /**
+     * @param string $tag
+     *
+     * @return bool
+     */
+    public function tagIsValid(string $tag): bool
+    {
+        return in_array($tag, $this->getTags());
+    }
+
+
+
+    public function currentVersion(string $osedir): string
+    {
+        $vf = $this->getVersionFile($osedir);
+        if (!file_exists($vf)) {
+            return 'inconnue';
+        }
+
+        return file_get_contents($vf);
+    }
+
+
+
+    public function writeVersion(string $osedir, string $version)
+    {
+        $vf = $this->getVersionFile($osedir);
+        file_put_contents($vf, $version);
+    }
+
+
+
+    private function getVersionFile(string $osedir): string
+    {
+        if ('/' == substr($osedir, -1)) {
+            return $osedir . 'VERSION';
+        } else {
+            return $osedir . '/VERSION';
+        }
+    }
+
+
+
+    public function exec($args)
+    {
+        $this->console->exec("php ../public/index.php " . $args);
+    }
+}
+
+
+
+
+
+class Console
+{
+    const COLOR_BLACK        = '0;30';
+    const COLOR_DARK_GRAY    = '1;30';
+    const COLOR_BLUE         = '0;34';
+    const COLOR_LIGHT_BLUE   = '1;34';
+    const COLOR_GREEN        = '0;32';
+    const COLOR_LIGHT_GREEN  = '1;32';
+    const COLOR_CYAN         = '0;36';
+    const COLOR_LIGHT_CYAN   = '1;36';
+    const COLOR_RED          = '0;31';
+    const COLOR_LIGHT_RED    = '1;31';
+    const COLOR_PURPLE       = '0;35';
+    const COLOR_LIGHT_PURPLE = '1;35';
+    const COLOR_BROWN        = '0;33';
+    const COLOR_YELLOW       = '1;33';
+    const COLOR_LIGHT_GRAY   = '0;37';
+    const COLOR_WHITE        = '1;37';
+
+    const BG_BLACK      = '40';
+    const BG_RED        = '41';
+    const BG_GREEN      = '42';
+    const BG_YELLOW     = '43';
+    const BG_BLUE       = '44';
+    const BG_MAGENTA    = '45';
+    const BG_CYAN       = '46';
+    const BG_LIGHT_GRAY = '47';
+
+
+
+    public function printMainTitle($title, $spaces = 1)
+    {
+        $pstr = str_repeat(' ', $spaces);
+        $t    = $pstr . $title . $pstr;
+
+        $len = mb_strlen($t);
+
+        echo '╔' . str_repeat('═', $len) . "╗\n";
+        echo '║' . str_repeat(' ', $len) . "║\n";
+        echo "║" . $t . "║\n";
+        echo '║' . str_repeat(' ', $len) . "║\n";
+        echo '╚' . str_repeat('═', $len) . "╝\n\n";
+    }
+
+
+
+    public function print($text, $color = null, $bgColor = null)
+    {
+        if ($bgColor) $bgColor = ';' . $bgColor;
+
+        if (!$color && !$bgColor) {
+            echo $text;
+        } else {
+            echo "\e[$color$bgColor" . "m$text\e[0m";
+        }
+    }
+
+
+
+    public function println($text, $color = null, $bgColor = null)
+    {
+        $this->print($text, $color, $bgColor);
+        echo "\n";
+    }
+
+
+
+    public function gestExitCode($code)
+    {
+        if (0 == $code) return;
+
+        $this->printDie("Une erreur ($code) est survenue. Le script est stoppé");
+    }
+
+
+
+    public function printDie($text)
+    {
+        $this->println($text, self::COLOR_LIGHT_RED);
+        $this->println(' -- FIN Prématurée de l\'exécution du script -- ', null, self::BG_RED);
+        die("\n");
+    }
+
+
+
+    public function getInput()
+    {
+        return trim(fgets(STDIN));
+    }
+
+
+
+    public function exec($command, $autoDisplay = true)
+    {
+        if (is_array($command)) {
+            $command = implode(';', $command);
+        }
+
+        exec($command, $output, $return);
+        if ($autoDisplay) {
+            echo implode("\n", $output) . "\n";
+        }
+        $this->gestExitCode($return);
+
+        return $output;
+    }
+
+
+
+    public function passthru($command)
+    {
+        if (is_array($command)) {
+            $command = implode(';', $command);
+        }
+
+        passthru($command, $returnVar);
+        $this->gestExitCode($returnVar);
+
+        return $returnVar;
+    }
+
+
+
+    public function strPad($input, $padLength = null, $padString = ' ')
+    {
+        return utf8_encode(str_pad(utf8_decode($input), $padLength, $padString));
+    }
+}
\ No newline at end of file
diff --git a/bin/ose-deploy b/bin/ose-deploy
new file mode 100644
index 0000000000000000000000000000000000000000..9c2c5449b27ed3752f7ba245c7b96ce643f56fff
--- /dev/null
+++ b/bin/ose-deploy
@@ -0,0 +1,342 @@
+#!/usr/bin/env php
+<?php
+
+$c  = new Console();
+$od = new OseDeploy($c);
+
+$c->printMainTitle("Déploiement de OSE", 13);
+
+// Mise en place de la clé SSH
+$c->println("\nMise en place de la clé SSH vers le GitLab hébergeant OSE", $c::COLOR_LIGHT_CYAN);
+$c->println("L'accès au serveur Gitlab doit se faire par SSH.");
+$c->print("Voulez-vous créer une clé SSH pour accéder au serveur Gitlab hébergeant OSE ? (o/n, n par défaut) ");
+$needKey = $c->getInput();
+if (in_array($needKey, ["o", "O"])) {
+    $c->println("Génération de la clé SSH...");
+    $c->print("Veuillez préciser l'adresse mail du compte utilisé pour accéder au Gitlab de OSE: ");
+    $gitlabMail = $c->getInput();
+    $c->passthru("ssh-keygen -t rsa -C $gitlabMail -b 4096");
+
+    $c->println("Intégrez ensuite votre clé SSH dans Gitlab. Ensuite, appuyez sur \"Entrée\" pour continuer...");
+    $c->getInput();
+    if ($od->gitlabIsReachable()) {
+        $c->println("Votre clé SSH a bien été déployée et est fonctionnelle.", $c::COLOR_LIGHT_GREEN);
+    } else {
+        $c->printDie("L'accès par SSH au serveur GitLab de OSE ne fonctionne pas. Merci de déployer par vous-même une clé, car vous en aurez besoin pour la suite de la procédure.");
+    }
+} else {
+    if (!$od->gitlabIsReachable()) {
+        $c->printDie("L'accès par SSH au serveur GitLab de OSE ne fonctionne pas. Merci de déployer par vous-même une clé, car vous en aurez besoin pour la suite de la procédure.");
+    }
+}
+
+
+// Création du dossier
+$c->println("\nCréation du dossier et initialisation de GIT", $c::COLOR_LIGHT_CYAN);
+$c->print("Veuillez indiquer un nouveau répertoire où implanter OSE: ");
+$osedir = $c->getInput();
+
+if (file_exists($osedir)){
+    $c->printDie("Le répertoire $osedir existe déjà. Merci d'en spécifier un nouveau.");
+}
+
+$c->exec([
+    "mkdir $osedir",
+    "cd $osedir",
+    "git init",
+    "git remote add origin " . $od::OSE_ORIGIN,
+    "git fetch --all --tags --prune",
+]);
+
+
+
+// Choix de la version
+$c->println("\nSélection de la version à déployer", $c::COLOR_LIGHT_CYAN);
+$c->println("Voici la liste des versions de OSE disponibles:");
+$tags = $od->getTags();
+foreach ($tags as $tag) {
+    $c->println($tag);
+}
+$ok = false;
+while (!$ok) {
+    $c->print("Veuillez choisir une version à déployer: ");
+    $version = $c->getInput();
+    if ($od->tagIsValid($version)) {
+        $ok = true;
+    } else {
+        $c->println("$version n'est pas dans la liste des versions disponibles.");
+    }
+}
+
+
+// Récupération des sources
+$c->println("\nDéploiement à partir des sources GIT", $c::COLOR_LIGHT_CYAN);
+$c->exec([
+    "cd $osedir",
+    "git checkout tags/$version",
+    "mkdir data/cache",
+    "chmod 777 data/cache",
+    //"chmod +7 bin/ose",
+]);
+$od->writeVersion($osedir, $version);
+
+
+
+// Récupération de Composer
+$c->println("\nRécupération de l'outil de gestion des dépendances Composer", $c::COLOR_LIGHT_CYAN);
+$c->passthru("cd $osedir;wget https://getcomposer.org/composer.phar");
+
+// Récupération des dépendances
+$c->println("\nChargement des dépendances à l'aide de Composer", $c::COLOR_LIGHT_CYAN);
+$c->passthru("cd $osedir;php composer.phar install");
+
+// Mise en place des tâches CRON...
+
+
+// Conclusion
+$c->println("\nFin du script d'installation des fichiers", $c::COLOR_LIGHT_GREEN);
+$c->println("Il reste encore six étapes à réaliser pour que OSE soit pleinement fonctionnel :");
+$c->println(" 1 - Configurez votre serveur Apache");
+$c->println(" 2 - Initialisez la base de données de OSE avec le script prévu à cet effet");
+$c->println(" 3 - Mettez en place la configuration locale de l'application");
+$c->println(" 4 - Une fois bien connecté, configurez vos connecteurs en vous appuyant\n     le cas échéant sur ceux qui vous sont fournis");
+$c->println(" 5 - Mettez en place les tâches CRON et les JOBS Oracle nécessaires (envoi de mails pour les infdicateurs, Synchronisatio automatique, etc.");
+$c->println(" 6 - Paramétrez l'application pour l'adapter à vos besoins");
+$c->println('');
+$c->println("Vous trouverez plus d'informations dans la procédure d'installation située dans\n$osedir/data/Déploiement/Procédure d'installation.pdf");
+$c->println("OSE possède également un guide de l'administrateur pour vous aider à configurer l'application");
+$c->println('');
+
+
+
+
+/************************************************************
+ *                      Classes utiles                      *
+ ************************************************************/
+class OseDeploy
+{
+    const OSE_ORIGIN = 'git@git.unicaen.fr:dsi/OSE.git';
+
+    /**
+     * @var Console
+     */
+    protected $console;
+
+    /**
+     * @var array
+     */
+    private $tags = false;
+
+
+
+    /**
+     * OseDeploy constructor.
+     *
+     * @param Console $console
+     */
+    public function __construct(Console $console)
+    {
+        $this->console = $console;
+    }
+
+
+
+    public function gitlabIsReachable(): bool
+    {
+        $gitCheck = $this->console->exec("git ls-remote --heads " . self::OSE_ORIGIN, false);
+
+        return (false !== strpos(implode(' ', $gitCheck), 'heads/master'));
+    }
+
+
+
+    public function getTags(): array
+    {
+        if (false === $this->tags) {
+            $this->tags = [];
+
+            $ts = $this->console->exec("git ls-remote --tags --refs " . self::OSE_ORIGIN, false);
+            foreach ($ts as $tag) {
+                $this->tags[] = substr($tag, strpos($tag, 'refs/tags/') + 10);
+            }
+        }
+
+        return $this->tags;
+    }
+
+
+
+    /**
+     * @param string $tag
+     *
+     * @return bool
+     */
+    public function tagIsValid(string $tag): bool
+    {
+        return in_array($tag, $this->getTags());
+    }
+
+
+
+    public function currentVersion(string $osedir): string
+    {
+        $vf = $this->getVersionFile($osedir);
+        if (!file_exists($vf)) {
+            return 'inconnue';
+        }
+
+        return file_get_contents($vf);
+    }
+
+
+
+    public function writeVersion(string $osedir, string $version)
+    {
+        $vf = $this->getVersionFile($osedir);
+        file_put_contents($vf, $version);
+    }
+
+
+
+    private function getVersionFile(string $osedir): string
+    {
+        if ('/' == substr($osedir, -1)) {
+            return $osedir . 'VERSION';
+        } else {
+            return $osedir . '/VERSION';
+        }
+    }
+}
+
+
+
+
+
+class Console
+{
+    const COLOR_BLACK        = '0;30';
+    const COLOR_DARK_GRAY    = '1;30';
+    const COLOR_BLUE         = '0;34';
+    const COLOR_LIGHT_BLUE   = '1;34';
+    const COLOR_GREEN        = '0;32';
+    const COLOR_LIGHT_GREEN  = '1;32';
+    const COLOR_CYAN         = '0;36';
+    const COLOR_LIGHT_CYAN   = '1;36';
+    const COLOR_RED          = '0;31';
+    const COLOR_LIGHT_RED    = '1;31';
+    const COLOR_PURPLE       = '0;35';
+    const COLOR_LIGHT_PURPLE = '1;35';
+    const COLOR_BROWN        = '0;33';
+    const COLOR_YELLOW       = '1;33';
+    const COLOR_LIGHT_GRAY   = '0;37';
+    const COLOR_WHITE        = '1;37';
+
+    const BG_BLACK      = '40';
+    const BG_RED        = '41';
+    const BG_GREEN      = '42';
+    const BG_YELLOW     = '43';
+    const BG_BLUE       = '44';
+    const BG_MAGENTA    = '45';
+    const BG_CYAN       = '46';
+    const BG_LIGHT_GRAY = '47';
+
+
+
+    public function printMainTitle($title, $spaces = 1)
+    {
+        $pstr = str_repeat(' ', $spaces);
+        $t    = $pstr . $title . $pstr;
+
+        $len = mb_strlen($t);
+
+        echo '╔' . str_repeat('═', $len) . "╗\n";
+        echo '║' . str_repeat(' ', $len) . "║\n";
+        echo "║" . $t . "║\n";
+        echo '║' . str_repeat(' ', $len) . "║\n";
+        echo '╚' . str_repeat('═', $len) . "╝\n\n";
+    }
+
+
+
+    public function print($text, $color = null, $bgColor = null)
+    {
+        if ($bgColor) $bgColor = ';' . $bgColor;
+
+        if (!$color && !$bgColor) {
+            echo $text;
+        } else {
+            echo "\e[$color$bgColor" . "m$text\e[0m";
+        }
+    }
+
+
+
+    public function println($text, $color = null, $bgColor = null)
+    {
+        $this->print($text, $color, $bgColor);
+        echo "\n";
+    }
+
+
+
+    public function gestExitCode($code)
+    {
+        if (0 == $code) return;
+
+        $this->printDie("Une erreur ($code) est survenue. Le script est stoppé");
+    }
+
+
+
+    public function printDie($text)
+    {
+        $this->println($text, self::COLOR_LIGHT_RED);
+        $this->println(' -- FIN Prématurée de l\'exécution du script -- ', null, self::BG_RED);
+        die("\n");
+    }
+
+
+
+    public function getInput()
+    {
+        return trim(fgets(STDIN));
+    }
+
+
+
+    public function exec($command, $autoDisplay = true)
+    {
+        if (is_array($command)) {
+            $command = implode(';', $command);
+        }
+
+        exec($command, $output, $return);
+        if ($autoDisplay) {
+            echo implode("\n", $output) . "\n";
+        }
+        $this->gestExitCode($return);
+
+        return $output;
+    }
+
+
+
+    public function passthru($command)
+    {
+        if (is_array($command)) {
+            $command = implode(';', $command);
+        }
+
+        passthru($command, $returnVar);
+        $this->gestExitCode($returnVar);
+
+        return $returnVar;
+    }
+
+
+
+    public function strPad($input, $padLength = null, $padString = ' ')
+    {
+        return utf8_encode(str_pad(utf8_decode($input), $padLength, $padString));
+    }
+}
\ No newline at end of file
diff --git a/composer.json b/composer.json
index 0e0260b92c33264ccb85e9c384f1dbdb9d1a341c..e28ec25a11053c38ec190bcf48d54037386d1601 100755
--- a/composer.json
+++ b/composer.json
@@ -8,15 +8,15 @@
         }
     ],
     "require": {
-        "unicaen/app":                  "dev-master as 1.3.6",
-        "unicaen/auth":                 "dev-master",
+        "unicaen/app":                  "1.3.10",
+        "unicaen/auth":                 "1.2.0",
         "zendframework/zend-code":      "^2.4",
         "zendframework/zend-text":      "^2.4",
         "bjyoungblood/bjy-authorize":   "dev-master",
         "zf-commons/zfc-user":          "0.1.3",
         "zendframework/zend-file":      "^2.4",
-        "unicaen/code":                 "dev-master",
-        "unicaen/import":               "dev-master",
-        "unicaen/tbl":                  "dev-master"
+        "unicaen/code":                 "1.1.4",
+        "unicaen/import":               "1.1.3",
+        "unicaen/tbl":                  "1.0.2"
     }
 }
diff --git a/composer.lock b/composer.lock
index dc27a9f193ab152e5c03eb26d6da47f2106036c1..ef45193e46eda968387a232253b3387ce40392fb 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "content-hash": "8fcf364565552167bfe396556f0fee35",
+    "content-hash": "6da2cfcc99bdc140e00167d9ea4ce7cb",
     "packages": [
         {
             "name": "bjyoungblood/bjy-authorize",
@@ -1284,16 +1284,16 @@
         },
         {
             "name": "symfony/debug",
-            "version": "v3.4.6",
+            "version": "v3.4.7",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/debug.git",
-                "reference": "9b1071f86e79e1999b3d3675d2e0e7684268b9bc"
+                "reference": "9cf7c2271cfb89ef9727db1b740ca77be57bf9d7"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/debug/zipball/9b1071f86e79e1999b3d3675d2e0e7684268b9bc",
-                "reference": "9b1071f86e79e1999b3d3675d2e0e7684268b9bc",
+                "url": "https://api.github.com/repos/symfony/debug/zipball/9cf7c2271cfb89ef9727db1b740ca77be57bf9d7",
+                "reference": "9cf7c2271cfb89ef9727db1b740ca77be57bf9d7",
                 "shasum": ""
             },
             "require": {
@@ -1336,7 +1336,7 @@
             ],
             "description": "Symfony Debug Component",
             "homepage": "https://symfony.com",
-            "time": "2018-02-28T21:49:22+00:00"
+            "time": "2018-04-03T05:22:50+00:00"
         },
         {
             "name": "symfony/polyfill-mbstring",
@@ -1399,16 +1399,16 @@
         },
         {
             "name": "symfony/process",
-            "version": "v2.8.36",
+            "version": "v2.8.37",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/process.git",
-                "reference": "756f614c5061729ea245ac6717231f7e3bfb74f9"
+                "reference": "c2fc900ee54e1e44aa956eae8ba041a5347ba93c"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/process/zipball/756f614c5061729ea245ac6717231f7e3bfb74f9",
-                "reference": "756f614c5061729ea245ac6717231f7e3bfb74f9",
+                "url": "https://api.github.com/repos/symfony/process/zipball/c2fc900ee54e1e44aa956eae8ba041a5347ba93c",
+                "reference": "c2fc900ee54e1e44aa956eae8ba041a5347ba93c",
                 "shasum": ""
             },
             "require": {
@@ -1444,15 +1444,15 @@
             ],
             "description": "Symfony Process Component",
             "homepage": "https://symfony.com",
-            "time": "2018-02-12T17:44:58+00:00"
+            "time": "2018-03-19T21:11:56+00:00"
         },
         {
             "name": "unicaen/app",
-            "version": "dev-master",
+            "version": "1.3.10",
             "source": {
                 "type": "git",
                 "url": "https://git.unicaen.fr/lib/unicaen/app.git",
-                "reference": "589ef1b2344804bfb90082eb73405c2dd186b447"
+                "reference": "845dd41da189fdd5e39f6d2d882e05b77a16c5dc"
             },
             "require": {
                 "doctrine/doctrine-orm-module": ">=0.7",
@@ -1495,15 +1495,15 @@
                 ]
             },
             "description": "Module de base des applications unicaen",
-            "time": "2018-03-21T08:44:30+00:00"
+            "time": "2018-03-28T08:06:13+00:00"
         },
         {
             "name": "unicaen/auth",
-            "version": "dev-master",
+            "version": "1.2.0",
             "source": {
                 "type": "git",
                 "url": "https://git.unicaen.fr/lib/unicaen/auth.git",
-                "reference": "c89fb672ac642da21630b8eff4cafd54aa07049f"
+                "reference": "8615a5a03664977d26691a60e35131b12ba0b752"
             },
             "require": {
                 "bjyoungblood/bjy-authorize": ">=1.4",
@@ -1525,11 +1525,11 @@
                 ]
             },
             "description": "Module d'authentification pour les applications Unicaen",
-            "time": "2018-03-26T14:42:50+00:00"
+            "time": "2018-03-19T13:36:48+00:00"
         },
         {
             "name": "unicaen/code",
-            "version": "dev-master",
+            "version": "1.1.4",
             "source": {
                 "type": "git",
                 "url": "https://git.unicaen.fr/lib/unicaen/code.git",
@@ -1555,11 +1555,11 @@
         },
         {
             "name": "unicaen/import",
-            "version": "dev-master",
+            "version": "1.1.3",
             "source": {
                 "type": "git",
                 "url": "https://git.unicaen.fr/lib/unicaen/import.git",
-                "reference": "ec1e41a0f10538308fda52910b8ef9b714bbeb12"
+                "reference": "a8f1c91b436138a0bf22226bb9c20335f0aa73aa"
             },
             "require": {
                 "unicaen/auth": "^1.2 || dev-master",
@@ -1579,7 +1579,7 @@
                 ]
             },
             "description": "Module d'import de données vers une base Oracle",
-            "time": "2018-02-27T14:35:23+00:00"
+            "time": "2018-02-27T08:40:13+00:00"
         },
         {
             "name": "unicaen/oracle",
@@ -1611,11 +1611,11 @@
         },
         {
             "name": "unicaen/tbl",
-            "version": "dev-master",
+            "version": "1.0.2",
             "source": {
                 "type": "git",
                 "url": "https://git.unicaen.fr/lib/unicaen/tbl.git",
-                "reference": "b6e44ef6fb34563debc3c22d0dc32bf7d3daa98b"
+                "reference": "8fcb7ab01d002c1f61a91cc57bd8b0492459a83e"
             },
             "require": {
                 "unicaen/app": "^1.3 || dev-trunk"
@@ -1634,7 +1634,7 @@
                 ]
             },
             "description": "Module Unicaen de gestion de tableaux de bord Oracle",
-            "time": "2018-03-02T10:27:16+00:00"
+            "time": "2018-02-27T09:35:50+00:00"
         },
         {
             "name": "zendframework/zend-authentication",
@@ -3958,22 +3958,10 @@
         }
     ],
     "packages-dev": [],
-    "aliases": [
-        {
-            "alias": "1.3.6",
-            "alias_normalized": "1.3.6.0",
-            "version": "9999999-dev",
-            "package": "unicaen/app"
-        }
-    ],
+    "aliases": [],
     "minimum-stability": "stable",
     "stability-flags": {
-        "unicaen/app": 20,
-        "unicaen/auth": 20,
-        "bjyoungblood/bjy-authorize": 20,
-        "unicaen/code": 20,
-        "unicaen/import": 20,
-        "unicaen/tbl": 20
+        "bjyoungblood/bjy-authorize": 20
     },
     "prefer-stable": false,
     "prefer-lowest": false,
diff --git a/composer.phar b/composer.phar
deleted file mode 100644
index 041775a1274ffc0a74952eec9ceedfc062644408..0000000000000000000000000000000000000000
Binary files a/composer.phar and /dev/null differ
diff --git "a/data/D\303\251ploiement/Proc\303\251dure d'installation.md" "b/data/D\303\251ploiement/Proc\303\251dure d'installation.md"
index 12fc5608035d0c4000e8003e6ce49fd454f2892c..612109ba404b27ef842b2d58b60886f620121084 100644
--- "a/data/D\303\251ploiement/Proc\303\251dure d'installation.md"	
+++ "b/data/D\303\251ploiement/Proc\303\251dure d'installation.md"	
@@ -31,15 +31,15 @@ Les spécifications sont les suivantes :
 * un tablespace temporaire de 2 Go minimum
 * encodage en UTF-8, Oracle Enterprise Edition 11.2.0.3 (ou +)
 
-# Installation de l'archive
+# Installation des fichiers
 
-Cette page mentionne toutes les étapes à réaliser pour pouvoir installer OSE.
-Vous devrez auparavant récupérer l'archive de OSE.
+L'installation se fait en récupérant les sources directement depuis le déôt GitLab de l'Université de Caen.
+Un script a été conçu pour automatiser cette opération.
 
-Dézippez l’Archive de OSE vers le répertoire de votre choix (par exemple /var/www/ose).
-
-Donner les droits d’écriture à l’utilisateur Apache (www-data sous Debian) au dossier suivant :
-data/cache
+Exécutez la commande suivante sur votre serveur :
+```bash
+wget https://ose.unicaen.fr/deploiement/ose-deploy && php ose-deploy
+```
 
 # Configuration d'Apache
 ## Avec un VirtualHost