diff --git a/apps/maarch_entreprise/Views/docservers-administration.component.html b/apps/maarch_entreprise/Views/docservers-administration.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..efb7bea3ca8f2bd2638f77adf47523c204088372
--- /dev/null
+++ b/apps/maarch_entreprise/Views/docservers-administration.component.html
@@ -0,0 +1,63 @@
+<div class="admin-container" [class.admin-is-mobile]="mobileQuery.matches">
+    <mat-toolbar color="primary" class="admin-toolbar">
+        <button mat-button (click)="snav.toggle()">
+            <mat-icon class="maarchLogo" [svgIcon]="mobileQuery.matches ? 'maarchLogoOnly' : 'maarchLogo'"></mat-icon>
+        </button>
+        <h1 class="admin-toolbar-title">{{lang.docservers}}
+        </h1>
+        <span style="flex: 1 1 auto;"></span>
+        <menu-top></menu-top>
+    </mat-toolbar>
+    <mat-sidenav-container class="admin-sidenav-container" [style.marginTop.px]="mobileQuery.matches ? 56 : 0">
+        <mat-sidenav #snav [mode]="mobileQuery.matches ? 'over' : 'side'" [fixedInViewport]="mobileQuery.matches" fixedTopGap="56"
+            [opened]="mobileQuery.matches ? false : true" style="width:300px;">
+            <menu-nav></menu-nav>
+            <mat-divider></mat-divider>
+        </mat-sidenav>
+        <mat-sidenav-content>
+            <div *ngIf="loading" style="display:flex;height:100%;">
+                <mat-spinner style="margin:auto;"></mat-spinner>
+            </div>
+            <mat-card *ngIf="!loading" class="card-app-content">
+                <div class="row">
+                    <div class="col-md-6 col-xs-6">
+                        <mat-form-field>
+                            <input matInput (keyup)="applyFilter($event.target.value)" placeholder="{{lang.filterBy}}">
+                        </mat-form-field>
+                    </div>
+                    <div class="col-md-6 col-xs-6">
+                        <mat-paginator #paginator [length]="100" [pageSize]="10">
+                        </mat-paginator>
+                    </div>
+                </div>
+                <mat-table #table [dataSource]="dataSource" matSort matSortActive="docserver_id" matSortDirection="asc">
+                    <ng-container matColumnDef="docserver_id">
+                        <mat-header-cell *matHeaderCellDef mat-sort-header>{{lang.id}}</mat-header-cell>
+                        <mat-cell *matCellDef="let element">
+                        {{element.docserver_id}} </mat-cell>
+                    </ng-container>
+                    <ng-container matColumnDef="device_label">
+                        <mat-header-cell *matHeaderCellDef mat-sort-header [class.hide-for-mobile]="mobileQuery.matches">{{lang.description}}</mat-header-cell>
+                        <mat-cell *matCellDef="let element" [class.hide-for-mobile]="mobileQuery.matches">
+                        {{element.device_label}} </mat-cell>
+                    </ng-container>
+                    <ng-container matColumnDef="docserver_type_id">
+                        <mat-header-cell *matHeaderCellDef mat-sort-header>{{lang.value}}</mat-header-cell>
+                        <mat-cell *matCellDef="let element">
+                        {{element.docserver_type_id}} </mat-cell>
+                    </ng-container>
+                    <ng-container matColumnDef="actions">
+                        <mat-header-cell *matHeaderCellDef></mat-header-cell>
+                        <mat-cell *matCellDef="let element" style="justify-content: flex-end;">
+                            <button mat-icon-button color="warn" matTooltip="{{lang.delete}}" (click)="$event.stopPropagation();">
+                                <mat-icon class="fa fa-trash-alt fa-2x" aria-hidden="true"></mat-icon>
+                            </button>
+                        </mat-cell>
+                    </ng-container>
+                    <mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
+                    <mat-row *matRowDef="let row; columns: displayedColumns;" routerLink="/administration/docservers/{{row.docserver_id}}" style="cursor:pointer;" matTooltip="{{lang.view}}"></mat-row>
+                </mat-table>
+            </mat-card>
+        </mat-sidenav-content>
+    </mat-sidenav-container>   
+</div>
\ No newline at end of file
diff --git a/apps/maarch_entreprise/js/angular/app/administration/administration-routing.module.ts b/apps/maarch_entreprise/js/angular/app/administration/administration-routing.module.ts
index 7077f7704083072583330f7b4dd5df5550792310..108ce9b88c183fe993b7b7fa73aca5384068f46c 100755
--- a/apps/maarch_entreprise/js/angular/app/administration/administration-routing.module.ts
+++ b/apps/maarch_entreprise/js/angular/app/administration/administration-routing.module.ts
@@ -29,6 +29,7 @@ import { UpdateStatusAdministrationComponent }          from './update-status-ad
 import { ContactsGroupsAdministrationComponent }        from './contacts-groups-administration.component';
 import { ContactsGroupAdministrationComponent }         from './contacts-group-administration.component';
 import { VersionsUpdateAdministrationComponent }        from './versions-update-administration.component';
+import { DocserversAdministrationComponent }            from './docservers-administration.component';
  
 @NgModule({
     imports: [
@@ -71,6 +72,7 @@ import { VersionsUpdateAdministrationComponent }        from './versions-update-
             { path: 'administration/contacts-groups/new', component: ContactsGroupAdministrationComponent },
             { path: 'administration/contacts-groups/:id', component: ContactsGroupAdministrationComponent },
             { path: 'administration/versions-update', component: VersionsUpdateAdministrationComponent },
+            { path: 'administration/docservers', component: DocserversAdministrationComponent },
         ]),
     ],
     exports: [
diff --git a/apps/maarch_entreprise/js/angular/app/administration/administration.module.ts b/apps/maarch_entreprise/js/angular/app/administration/administration.module.ts
index 8b7fcad8657def4bb087f87ba754b136bf593c9d..5c9b9d23a14632a8b08a3dbce025efe2bc781db7 100755
--- a/apps/maarch_entreprise/js/angular/app/administration/administration.module.ts
+++ b/apps/maarch_entreprise/js/angular/app/administration/administration.module.ts
@@ -39,6 +39,7 @@ import { NotificationAdministrationComponent }          from './notification-adm
 import { ContactsGroupsAdministrationComponent }        from './contacts-groups-administration.component';
 import { ContactsGroupAdministrationComponent }         from './contacts-group-administration.component';
 import { VersionsUpdateAdministrationComponent }        from './versions-update-administration.component';
+import { DocserversAdministrationComponent }            from './docservers-administration.component';
 
 @NgModule({
     imports:      [
@@ -88,7 +89,8 @@ import { VersionsUpdateAdministrationComponent }        from './versions-update-
         DiffusionModelsAdministrationComponent,
         DiffusionModelAdministrationComponent,
         SortPipe,
-        VersionsUpdateAdministrationComponent
+        VersionsUpdateAdministrationComponent,
+        DocserversAdministrationComponent,
     ],
     entryComponents: [
         UsersAdministrationRedirectModalComponent,
diff --git a/apps/maarch_entreprise/js/angular/app/administration/docservers-administration.component.ts b/apps/maarch_entreprise/js/angular/app/administration/docservers-administration.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..62a7c7f6dd51e7bc9a858cdd7c1fcce5688fbe63
--- /dev/null
+++ b/apps/maarch_entreprise/js/angular/app/administration/docservers-administration.component.ts
@@ -0,0 +1,65 @@
+import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';
+import { MediaMatcher } from '@angular/cdk/layout';
+import { HttpClient } from '@angular/common/http';
+import { LANG } from '../translate.component';
+import { MatPaginator, MatTableDataSource, MatSort } from '@angular/material';
+
+declare function $j(selector: any): any;
+
+declare var angularGlobals: any;
+
+
+@Component({
+    templateUrl: "../../../../Views/docservers-administration.component.html"
+})
+export class DocserversAdministrationComponent implements OnInit {
+
+    mobileQuery                     : MediaQueryList;
+    private _mobileQueryListener    : () => void;
+
+    coreUrl     : string;
+    lang        : any = LANG;
+    loading     : boolean = false;
+    dataSource  : any;
+
+    docservers    : any = {};
+
+    @ViewChild(MatPaginator) paginator: MatPaginator;
+    @ViewChild(MatSort) sort: MatSort;
+
+
+    constructor(changeDetectorRef: ChangeDetectorRef, media: MediaMatcher, public http: HttpClient) {
+        $j("link[href='merged_css.php']").remove();
+        this.mobileQuery = media.matchMedia('(max-width: 768px)');
+        this._mobileQueryListener = () => changeDetectorRef.detectChanges();
+        this.mobileQuery.addListener(this._mobileQueryListener);
+    }
+
+    ngOnDestroy(): void {
+        this.mobileQuery.removeListener(this._mobileQueryListener);
+    }
+
+    applyFilter(filterValue: string) {
+        filterValue = filterValue.trim(); // Remove whitespace
+        filterValue = filterValue.toLowerCase(); // MatTableDataSource defaults to lowercase matches
+        this.dataSource.filter = filterValue;
+    }
+
+    ngOnInit(): void {
+        this.coreUrl = angularGlobals.coreUrl;
+
+        this.loading = true;
+
+        this.http.get(this.coreUrl + 'rest/docservers')
+            .subscribe((data: any) => {
+                this.docservers = data.docservers;
+                setTimeout(() => {
+                    this.dataSource = new MatTableDataSource(this.docservers);
+                    this.dataSource.paginator = this.paginator;
+                    this.dataSource.sort = this.sort;
+                }, 0);
+                this.loading = false;
+
+            });
+    }
+}
diff --git a/apps/maarch_entreprise/js/angular/lang/lang-en.ts b/apps/maarch_entreprise/js/angular/lang/lang-en.ts
index 56786d32e83b5af7a683420a8881a498f6307682..974fce7581a80145a6d2dd51b6cc80741eb95c37 100755
--- a/apps/maarch_entreprise/js/angular/lang/lang-en.ts
+++ b/apps/maarch_entreprise/js/angular/lang/lang-en.ts
@@ -399,6 +399,7 @@ export const LANG_EN = {
     "firstLevelDoctype"                 : "Folder",
     "secondLevelDoctype"                : "Sub-folder",
     "doctype"                           : "Document types",
+    "docservers"                        : "Docservers",
     "folderTypeList"                    : "Folder types list",
     "firstLevelAttached"                : "Attach to folder",
     "secondLevelAttached"               : "Attach to subfolder",
diff --git a/apps/maarch_entreprise/js/angular/lang/lang-fr.ts b/apps/maarch_entreprise/js/angular/lang/lang-fr.ts
index a849904aeb6acbeea510d79cc17ccad4f3dfb1e3..8cb682cd6890f7aa66e1bb2c74db82fa81274ea6 100755
--- a/apps/maarch_entreprise/js/angular/lang/lang-fr.ts
+++ b/apps/maarch_entreprise/js/angular/lang/lang-fr.ts
@@ -135,6 +135,7 @@ export const LANG_FR = {
     "dlAttachment"                      : "Télécharger la pièce jointe",
     "doctype"                           : "Type de document",
     "doctypesAdmin"                     : "Typologie(s) documentaire(s)",
+    "docservers"                        : "Zones de stockage",
     "documents"                         : "document(s)",
     "documentTypeAdded"                 : "Type de document ajouté",
     "documentTypeDeleted"               : "Type de document supprimé",