diff --git a/modules/attachments/Controllers/ReconciliationController.php b/modules/attachments/Controllers/ReconciliationController.php
index 640cdf4403733dcbd0685f204bfa386b429458db..91634c7551c61e4faff04c25cc49b535741a8858 100755
--- a/modules/attachments/Controllers/ReconciliationController.php
+++ b/modules/attachments/Controllers/ReconciliationController.php
@@ -264,8 +264,8 @@ class ReconciliationController{
         $filetmp .= $tmp;
         $filetmp .= $filename;
 
-        $docserver = \Docserver\models\DocserverModel::getById([
-            'id' => $docserverId
+        $docserver = \Docserver\models\DocserverModel::getByDocserverId([
+            'docserverId' => $docserverId
         ]);
         $docserverType = \Docserver\models\DocserverTypeModel::getById([
             'id' => $docserver['docserver_type_id']
diff --git a/modules/attachments/add_attachments.php b/modules/attachments/add_attachments.php
index 2d472a4d6a330b09f23a9b8d54151e1ce0a93243..3c95c11a234f290fb220ab454e998347e8dce4bb 100755
--- a/modules/attachments/add_attachments.php
+++ b/modules/attachments/add_attachments.php
@@ -174,9 +174,9 @@ for ($i = 0; $i <= count($aArgs['data']); $i++) {
     }
     if ($aArgs['data'][$i]['column'] == 'docserver_id') {
         // Retrieve the PATH TEMPLATE
-        $docserverPath = \Docserver\models\DocserverModel::getById([
-            'select'    => ['path_template'],
-            'id'        => $aArgs['data'][$i]['value']
+        $docserverPath = \Docserver\models\DocserverModel::getByDocserverId([
+            'select'        => ['path_template'],
+            'docserverId'   => $aArgs['data'][$i]['value']
         ]);
 
         $aArgs['docserverPath'] = $docserverPath['path_template'];
diff --git a/modules/convert/Controllers/ProcessConvertController.php b/modules/convert/Controllers/ProcessConvertController.php
index ee591dcdd700293e67ca4ab3f7c26484183636ba..88d1752c3f389e66695c899603a50a746a7852e1 100644
--- a/modules/convert/Controllers/ProcessConvertController.php
+++ b/modules/convert/Controllers/ProcessConvertController.php
@@ -233,7 +233,7 @@ class ProcessConvertController
             return $returnArray;
         }
 
-        $targetDs = DocserverModel::getById(['id' => $storeResult['docserver_id']]);
+        $targetDs = DocserverModel::getByDocserverId(['docserverId' => $storeResult['docserver_id']]);
 
         // LogsController::info(['message'=>'avant update', 'code'=>19, ]);
         //update the \Database
diff --git a/modules/convert/Controllers/ProcessFulltextController.php b/modules/convert/Controllers/ProcessFulltextController.php
index 389f56856c1fd69e8228917bc3748fbf1704f2c3..b0717694408f14f9d42dbbdab178f010ff9d4ddf 100644
--- a/modules/convert/Controllers/ProcessFulltextController.php
+++ b/modules/convert/Controllers/ProcessFulltextController.php
@@ -282,7 +282,7 @@ class ProcessFulltextController
             return $returnArray;
         }
 
-        $targetDs = DocserverModel::getById(['id' => $storeResult['docserver_id']]);
+        $targetDs = DocserverModel::getByDocserverId(['docserverId' => $storeResult['docserver_id']]);
 
         // LogsController::info(['message'=>'avant update', 'code'=>19, ]);
         //update the Database
diff --git a/modules/convert/Controllers/ProcessThumbnailsController.php b/modules/convert/Controllers/ProcessThumbnailsController.php
index 4c98d2093ac10bee83578eba2b40137f394d2868..cc9a263ab23c6b1d6753650908b866d70ba8b58b 100644
--- a/modules/convert/Controllers/ProcessThumbnailsController.php
+++ b/modules/convert/Controllers/ProcessThumbnailsController.php
@@ -226,7 +226,7 @@ class ProcessThumbnailsController
             return $returnArray;
         }
 
-        $targetDs = DocserverModel::getById(['id' => $storeResult['docserver_id']]);
+        $targetDs = DocserverModel::getByDocserverId(['docserverId' => $storeResult['docserver_id']]);
 
         // LogsController::info(['message'=>'avant update', 'code'=>19, ]);
         //update the Database
diff --git a/modules/export_seda/AdapterMaarchCourrier.php b/modules/export_seda/AdapterMaarchCourrier.php
index 9cf6fc3bd2682a0c682e960995997c28c12eec1e..87690f6cd118be6486ff0af024bc47d9b45183a4 100644
--- a/modules/export_seda/AdapterMaarchCourrier.php
+++ b/modules/export_seda/AdapterMaarchCourrier.php
@@ -18,7 +18,7 @@ class AdapterMaarchCourrier
 
         $messageObject = json_decode($message->data);
 
-        $docserver     = \Docserver\models\DocserverModel::getById(['id' => $message->docserver_id]);
+        $docserver     = \Docserver\models\DocserverModel::getByDocserverId(['docserverId' => $message->docserver_id]);
         $docserverType = \Docserver\models\DocserverTypeModel::getById(
             ['id' => $docserver['docserver_type_id']]
         );
diff --git a/modules/export_seda/RequestSeda.php b/modules/export_seda/RequestSeda.php
index e0f1dad4641114848460c05ccc5d5041ea82fe39..aefc90d84adbfb1c139769ccf14360307fe95893 100644
--- a/modules/export_seda/RequestSeda.php
+++ b/modules/export_seda/RequestSeda.php
@@ -483,7 +483,7 @@ class RequestSeda
             $docserver_id = $storeResult['docserver_id'];
             $filepath     = $storeResult['destination_dir'];
             $filename     = $storeResult['file_destination_name'];
-            $docserver     = \Docserver\models\DocserverModel::getById(['id' => $docserver_id]);
+            $docserver     = \Docserver\models\DocserverModel::getByDocserverId(['docserverId' => $docserver_id]);
 
             $docserverType = \Docserver\models\DocserverTypeModel::getById(
                 ['id' => $docserver['docserver_type_id']]
diff --git a/modules/sendmail/batch/process_emails.php b/modules/sendmail/batch/process_emails.php
index 00cd7c5dffcf23634cf8d4ef0056f43a290200eb..80ce0b031b1527cfceb112948a31593a3a6e4a53 100755
--- a/modules/sendmail/batch/process_emails.php
+++ b/modules/sendmail/batch/process_emails.php
@@ -178,7 +178,7 @@ while ($state <> 'END') {
                 $smtp = $stmt = Bt_doQuery($GLOBALS['db'], $query, array($email->message_exchange_id));
                 $messageExchange = $smtp->fetchObject();
 
-                $docserver     = \Docserver\models\DocserverModel::getById(['id' => $messageExchange->docserver_id]);
+                $docserver     = \Docserver\models\DocserverModel::getByDocserverId(['docserverId' => $messageExchange->docserver_id]);
                 $docserverType = \Docserver\models\DocserverTypeModel::getById(['id' => $docserver['docserver_type_id']]);
 
                 $pathDirectory = str_replace('#', DIRECTORY_SEPARATOR, $messageExchange->path);
diff --git a/modules/sendmail/sendmail_ajax_content.php b/modules/sendmail/sendmail_ajax_content.php
index 54a8abe3794cf2bc11e24382eca61788c7939047..e716f5408ed44cf2330cf664e0e872577d9b5808 100755
--- a/modules/sendmail/sendmail_ajax_content.php
+++ b/modules/sendmail/sendmail_ajax_content.php
@@ -588,7 +588,7 @@ switch ($mode) {
         $RequestSeda         = new RequestSeda();
         $messageExchangeData = $RequestSeda->getMessageByIdentifierAndResId(['message_id' => $_GET['id'], 'res_id_master' => $_GET['identifier']]);
 
-        $docserver     = \Docserver\models\DocserverModel::getById(['id' => $messageExchangeData->docserver_id]);
+        $docserver     = \Docserver\models\DocserverModel::getByDocserverId(['docserverId' => $messageExchangeData->docserver_id]);
         $docserverType = \Docserver\models\DocserverTypeModel::getById(['id' => $docserver['docserver_type_id']]);
 
         $pathDirectory = str_replace('#', DIRECTORY_SEPARATOR, $messageExchangeData->path);
diff --git a/rest/index.php b/rest/index.php
index 6e3064d88a56698a3538a6f568ec4b51a13aef37..1dc35d2477d37fad054e5db4538f38295a0f2863 100755
--- a/rest/index.php
+++ b/rest/index.php
@@ -100,7 +100,6 @@ $app->post('/contactsGroups/{id}/contacts', \Contact\controllers\ContactGroupCon
 $app->delete('/contactsGroups/{id}/contacts/{addressId}', \Contact\controllers\ContactGroupController::class . ':deleteContact');
 $app->get('/contactsTypes', \Contact\controllers\ContactTypeController::class . ':get');
 
-
 //Docservers
 $app->get('/docservers', \Docserver\controllers\DocserverController::class . ':get');
 $app->post('/docservers', \Docserver\controllers\DocserverController::class . ':create');
diff --git a/sql/develop.sql b/sql/develop.sql
index 4749d0a2108c313af95176ffd318bc4aac7b0f25..7d3ac223cabfa8631a083bf2c29114749f24abd4 100644
--- a/sql/develop.sql
+++ b/sql/develop.sql
@@ -35,5 +35,7 @@ ALTER TABLE docservers DROP COLUMN IF EXISTS chain_before;
 ALTER TABLE docservers DROP COLUMN IF EXISTS chain_after;
 ALTER TABLE docservers DROP COLUMN IF EXISTS closing_date;
 ALTER TABLE docservers DROP COLUMN IF EXISTS enabled;
+ALTER TABLE docservers DROP COLUMN IF EXISTS id;
+ALTER TABLE docservers ADD COLUMN id serial;
 DROP TABLE IF EXISTS docserver_locations;
 
diff --git a/sql/structure.sql b/sql/structure.sql
index b9944a880238993e4aa4748ff0c5e6fb8f00985e..a4f9c310d870f9fcb1ae37da2314704bf9f9c97a 100755
--- a/sql/structure.sql
+++ b/sql/structure.sql
@@ -60,6 +60,7 @@ WITH (OIDS=FALSE);
 
 CREATE TABLE docservers
 (
+  id serial,
   docserver_id character varying(32) NOT NULL DEFAULT '1'::character varying,
   docserver_type_id character varying(32) NOT NULL,
   device_label character varying(255) DEFAULT NULL::character varying,
diff --git a/src/app/docserver/controllers/DocserverController.php b/src/app/docserver/controllers/DocserverController.php
index d179ef250fb1c9abff83efc2a76e722a036ad77c..722a5b1de48e4dc3cff7297d40bf18c10e3ddada 100644
--- a/src/app/docserver/controllers/DocserverController.php
+++ b/src/app/docserver/controllers/DocserverController.php
@@ -47,7 +47,7 @@ class DocserverController
             $types[] = $docserver['docserver_type_id'];
         }
 
-        return $response->withJson(['docservers' => $sortedDocservers, 'types' => array_unique($types)]);
+        return $response->withJson(['docservers' => $sortedDocservers, 'types' => array_values(array_unique($types))]);
     }
 
     public function getById(Request $request, Response $response, array $aArgs)
@@ -84,7 +84,7 @@ class DocserverController
             return $response->withStatus(400)->withJson(['errors' => 'Bad Request']);
         }
 
-        $existingDocserver = DocserverModel::getById(['id' => $data['docserver_id'], 'select' => ['1']]);
+        $existingDocserver = DocserverModel::getByDocserverId(['docserverId' => $data['docserver_id'], 'select' => ['1']]);
         if (!empty($existingDocserver)) {
             return $response->withStatus(400)->withJson(['errors' => _ID. ' ' . _ALREADY_EXISTS]);
         }
@@ -133,7 +133,7 @@ class DocserverController
         }
 
         $updateData = [
-            'docserver_id'          => $aArgs['id'],
+            'id'                    => $aArgs['id'],
             'device_label'          => $data['device_label'],
             'size_limit_number'     => $data['size_limit_number'],
             'path_template'         => $data['path_template'],
@@ -147,7 +147,7 @@ class DocserverController
             'tableName' => 'docservers',
             'recordId'  => $aArgs['id'],
             'eventType' => 'UP',
-            'info'      => _DOCSERVER_UPDATED . " : {$aArgs['id']}",
+            'info'      => _DOCSERVER_UPDATED . " : {$data['device_label']}",
             'moduleId'  => 'docserver',
             'eventId'   => 'docserverModification',
         ]);
@@ -166,7 +166,7 @@ class DocserverController
             return $response->withStatus(400)->withJson(['errors' => 'Docserver does not exist']);
         }
 
-        DocserverModel::delete(['docserver_id' => $aArgs['id']]);
+        DocserverModel::delete(['id' => $aArgs['id']]);
         HistoryController::add([
             'tableName' => 'docservers',
             'recordId'  => $aArgs['id'],
@@ -176,7 +176,7 @@ class DocserverController
             'eventId'   => 'docserverSuppression',
         ]);
 
-        return $response->withJson(['docservers' => DocserverModel::get()]);
+        return $response->withJson(['sucess' => 'success']);
     }
 
     public static function storeResourceOnDocServer(array $aArgs)
@@ -229,7 +229,7 @@ class DocserverController
         $destinationDir = str_replace(DIRECTORY_SEPARATOR, '#', $destinationDir);
 
         DocserverModel::update([
-            'docserver_id'          => $docserver['docserver_id'],
+            'id'                    => $docserver['id'],
             'actual_size_number'    => $docserver['actual_size_number'] + $aArgs['fileInfos']['size']
         ]);
 
diff --git a/src/app/docserver/models/DocserverModelAbstract.php b/src/app/docserver/models/DocserverModelAbstract.php
index 5a4d6e71a065807f2dec01a5a131f3bd9c80297b..8d81c8a605c503d4b77f947144ac78f50e688bdf 100644
--- a/src/app/docserver/models/DocserverModelAbstract.php
+++ b/src/app/docserver/models/DocserverModelAbstract.php
@@ -32,15 +32,16 @@ class DocserverModelAbstract
         return $aDocservers;
     }
 
-    public static function getById(array $aArgs = [])
+    public static function getById(array $aArgs)
     {
         ValidatorModel::notEmpty($aArgs, ['id']);
-        ValidatorModel::stringType($aArgs, ['id']);
+        ValidatorModel::intVal($aArgs, ['id']);
+        ValidatorModel::arrayType($aArgs, ['select']);
 
         $aDocserver = DatabaseModel::select([
             'select'    => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
             'table'     => ['docservers'],
-            'where'     => ['docserver_id = ?'],
+            'where'     => ['id = ?'],
             'data'      => [$aArgs['id']]
         ]);
 
@@ -51,19 +52,44 @@ class DocserverModelAbstract
         return $aDocserver[0];
     }
 
-    public static function getByTypeId(array $aArgs = [])
+    public static function getByDocserverId(array $aArgs)
+    {
+        ValidatorModel::notEmpty($aArgs, ['docserverId']);
+        ValidatorModel::stringType($aArgs, ['docserverId']);
+        ValidatorModel::arrayType($aArgs, ['select']);
+
+        $aDocserver = DatabaseModel::select([
+            'select'    => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
+            'table'     => ['docservers'],
+            'where'     => ['docserver_id = ?'],
+            'data'      => [$aArgs['docserverId']]
+        ]);
+
+        if (empty($aDocserver[0])) {
+            return [];
+        }
+
+        return $aDocserver[0];
+    }
+
+    public static function getByTypeId(array $aArgs)
     {
         ValidatorModel::notEmpty($aArgs, ['docserver_type_id']);
         ValidatorModel::stringType($aArgs, ['docserver_type_id']);
+        ValidatorModel::arrayType($aArgs, ['select']);
 
-        $aReturn = DatabaseModel::select([
+        $aDocserver = DatabaseModel::select([
             'select'    => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
             'table'     => ['docservers'],
             'where'     => ['docserver_type_id = ?'],
             'data'      => [$aArgs['docserver_type_id']]
         ]);
 
-        return $aReturn[0];
+        if (empty($aDocserver[0])) {
+            return [];
+        }
+
+        return $aDocserver[0];
     }
 
     public static function getByCollId(array $aArgs)
@@ -117,14 +143,17 @@ class DocserverModelAbstract
 
     public static function update(array $aArgs)
     {
-        ValidatorModel::notEmpty($aArgs, ['docserver_id']);
-        ValidatorModel::stringType($aArgs, ['docserver_id']);
+        ValidatorModel::notEmpty($aArgs, ['id']);
+        ValidatorModel::stringType($aArgs, ['id']);
+
+        $id = $aArgs['id'];
+        unset($aArgs['id']);
 
         DatabaseModel::update([
             'table'     => 'docservers',
             'set'       => $aArgs,
-            'where'     => ['docserver_id = ?'],
-            'data'      => [$aArgs['docserver_id']]
+            'where'     => ['id = ?'],
+            'data'      => [$id]
         ]);
 
         return true;
@@ -132,13 +161,13 @@ class DocserverModelAbstract
 
     public static function delete(array $aArgs)
     {
-        ValidatorModel::notEmpty($aArgs, ['docserver_id']);
-        ValidatorModel::stringType($aArgs, ['docserver_id']);
+        ValidatorModel::notEmpty($aArgs, ['id']);
+        ValidatorModel::stringType($aArgs, ['id']);
 
         DatabaseModel::delete([
             'table'     => 'docservers',
-            'where'     => ['docserver_id = ?'],
-            'data'      => [$aArgs['docserver_id']]
+            'where'     => ['id = ?'],
+            'data'      => [$aArgs['id']]
         ]);
 
         return true;
diff --git a/src/app/template/controllers/TemplateController.php b/src/app/template/controllers/TemplateController.php
index aa58290dbe1a4c23850c058f23d06d716998f9be..97e8b19321c911d2904a24bca4d7391a9d4468d1 100644
--- a/src/app/template/controllers/TemplateController.php
+++ b/src/app/template/controllers/TemplateController.php
@@ -34,7 +34,7 @@ class TemplateController
         if ($template['template_type'] == 'OFFICE') {
             $docserver = DocserverModel::getByTypeId(['docserver_type_id' => 'TEMPLATES', 'select' => ['path_template']]);
 
-            $pathOnDocserver = DocserverController::createPathOnDocServer(['path' => $docserver[0]['path_template']]);
+            $pathOnDocserver = DocserverController::createPathOnDocServer(['path' => $docserver['path_template']]);
             $docinfo = DocserverController::getNextFileNameInDocServer(['pathOnDocserver' => $pathOnDocserver['pathToDocServer']]);
             $docinfo['fileDestinationName'] .=  '.' . explode('.', $template['template_file_name'])[1];