diff --git a/jami-nameserver/pom.xml b/jami-nameserver/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bbc3931e2ecbf51696584f8677532c6888f53e37
--- /dev/null
+++ b/jami-nameserver/pom.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>jams3-parent</artifactId>
+        <groupId>net.jami</groupId>
+        <version>2.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>jami-nameserver</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>net.jami</groupId>
+            <artifactId>jams-common</artifactId>
+            <version>2.0</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>net.jami</groupId>
+            <artifactId>datastore</artifactId>
+            <version>2.0</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+
+
+</project>
\ No newline at end of file
diff --git a/jami-nameserver/src/main/java/module-info.java b/jami-nameserver/src/main/java/module-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..2522fa04bd36b5e58ad09dfce06e58779d5432a7
--- /dev/null
+++ b/jami-nameserver/src/main/java/module-info.java
@@ -0,0 +1,3 @@
+module jami.nameserver {
+    exports net.jami.jams.nameserver;
+}
\ No newline at end of file
diff --git a/jams-server/src/main/java/net/jami/jams/server/core/jaminamserver/LocalNameServer.java b/jami-nameserver/src/main/java/net/jami/jams/nameserver/LocalNameServer.java
similarity index 89%
rename from jams-server/src/main/java/net/jami/jams/server/core/jaminamserver/LocalNameServer.java
rename to jami-nameserver/src/main/java/net/jami/jams/nameserver/LocalNameServer.java
index 2505bba866fa3ee41514db9f83686a2a14eb101b..43fc409c8cb596714023388a9f3d6982d86e4c1c 100644
--- a/jams-server/src/main/java/net/jami/jams/server/core/jaminamserver/LocalNameServer.java
+++ b/jami-nameserver/src/main/java/net/jami/jams/nameserver/LocalNameServer.java
@@ -1,6 +1,7 @@
-package net.jami.jams.server.core.jaminamserver;
+package net.jami.jams.nameserver;
 
 import lombok.extern.slf4j.Slf4j;
+import net.jami.datastore.main.DataStore;
 import net.jami.jams.common.dao.StatementElement;
 import net.jami.jams.common.dao.StatementList;
 import net.jami.jams.common.jami.NameLookupResponse;
@@ -10,14 +11,16 @@ import net.jami.jams.common.objects.user.User;
 
 import java.util.List;
 
-import static net.jami.jams.server.Server.dataStore;
-
 @Slf4j
 public class LocalNameServer implements NameServer {
 
-    //This always returns 200, for obvious reasons.
+    private final DataStore dataStore;
 
+    public LocalNameServer(DataStore dataStore) {
+        this.dataStore = dataStore;
+    }
 
+    //This always returns 200, for obvious reasons.
     @Override
     public Integer registerName(String username, NameRegistrationRequest nameRegistrationRequest) {
         return 200;
diff --git a/jams-server/src/main/java/net/jami/jams/server/core/jaminamserver/PublicNameServer.java b/jami-nameserver/src/main/java/net/jami/jams/nameserver/PublicNameServer.java
similarity index 98%
rename from jams-server/src/main/java/net/jami/jams/server/core/jaminamserver/PublicNameServer.java
rename to jami-nameserver/src/main/java/net/jami/jams/nameserver/PublicNameServer.java
index d69c5fe39dc27fbb2b66a67372840485c5cd200f..ae5fce60369dc5d7cee2ad44b4a02cc05cbc3dcd 100644
--- a/jams-server/src/main/java/net/jami/jams/server/core/jaminamserver/PublicNameServer.java
+++ b/jami-nameserver/src/main/java/net/jami/jams/nameserver/PublicNameServer.java
@@ -1,4 +1,4 @@
-package net.jami.jams.server.core.jaminamserver;
+package net.jami.jams.nameserver;
 
 import com.jsoniter.JsonIterator;
 import com.jsoniter.output.JsonStream;
diff --git a/jams-server/pom.xml b/jams-server/pom.xml
index 815886f130687230b3c47e7115aa2990113c3bb8..436e3813b4721f94dc57e7cd3ae71440b37eaf49 100644
--- a/jams-server/pom.xml
+++ b/jams-server/pom.xml
@@ -44,6 +44,12 @@
             <version>${javax.servlet.version}</version>
             <scope>provided</scope>
         </dependency>
+        <dependency>
+            <groupId>net.jami</groupId>
+            <artifactId>jami-nameserver</artifactId>
+            <version>2.0</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/jams-server/src/main/java/module-info.java b/jams-server/src/main/java/module-info.java
index 1f4fbb56fe5be235a3c9079eb7d00c23ae2c06a8..32158e285c05b24ad96ad61d6e0b42fef1bf1edc 100644
--- a/jams-server/src/main/java/module-info.java
+++ b/jams-server/src/main/java/module-info.java
@@ -10,6 +10,7 @@ module jams.server {
     requires javassist;
     requires datastore;
     requires org.apache.xbean.classloader;
+    requires jami.nameserver;
     exports net.jami.jams.server.servlets.general to org.apache.tomcat.embed.core;
     exports net.jami.jams.server.servlets.filters to org.apache.tomcat.embed.core;
     exports net.jami.jams.server.servlets.api.auth.login to org.apache.tomcat.embed.core;
diff --git a/jams-server/src/main/java/net/jami/jams/server/Server.java b/jams-server/src/main/java/net/jami/jams/server/Server.java
index c4773a5c17319b0806869af961ad4cbb14f6b343..8b7c767e79c0abb8390ddd41180899ccb302055b 100644
--- a/jams-server/src/main/java/net/jami/jams/server/Server.java
+++ b/jams-server/src/main/java/net/jami/jams/server/Server.java
@@ -4,12 +4,15 @@ import com.jsoniter.JsonIterator;
 import lombok.extern.slf4j.Slf4j;
 import net.jami.datastore.main.DataStore;
 import net.jami.jams.common.authentication.AuthenticationSourceType;
+import net.jami.jams.common.authentication.local.LocalAuthSettings;
 import net.jami.jams.common.authmodule.AuthenticationModule;
 import net.jami.jams.common.cryptoengineapi.CertificateAuthority;
 import net.jami.jams.common.jami.NameServer;
 import net.jami.jams.common.serialization.JsoniterRegistry;
 import net.jami.jams.common.server.ServerSettings;
 import net.jami.jams.common.utils.LibraryLoader;
+import net.jami.jams.nameserver.LocalNameServer;
+import net.jami.jams.nameserver.PublicNameServer;
 import net.jami.jams.server.core.TomcatLauncher;
 import net.jami.jams.server.startup.AuthModuleLoader;
 import net.jami.jams.server.startup.CryptoEngineLoader;
@@ -63,7 +66,12 @@ public class Server {
                     userAuthenticationModule.attachAuthSource(AuthenticationSourceType.AD,
                             serverSettings.getActiveDirectoryConfiguration());
                 }
-                //init the nameserver here.
+                if(serverSettings.getLocalDirectoryConfiguration() != null){
+                    LocalAuthSettings settings = JsonIterator.deserialize(serverSettings.getActiveDirectoryConfiguration(), LocalAuthSettings.class);
+                    if(settings.getPublicNames()) nameServer = new PublicNameServer(settings.getPublicNameServer());
+                    else nameServer = new LocalNameServer(dataStore);
+                }
+                else nameServer = new LocalNameServer(dataStore);
             }
             catch (Exception e){
                 log.error("Could not load configuration file or initialize some components - this is critical");
diff --git a/jams-server/src/test/java/net/jami/jams/server/core/jaminamserver/PublicNameServerTest.java b/jams-server/src/test/java/net/jami/jams/server/core/jaminamserver/PublicNameServerTest.java
index 5064c102dbb2e6ed71d69c4dfc77f2512f4c76a5..d2eecb42181c9d21d3c9330db2e6e7875a331605 100644
--- a/jams-server/src/test/java/net/jami/jams/server/core/jaminamserver/PublicNameServerTest.java
+++ b/jams-server/src/test/java/net/jami/jams/server/core/jaminamserver/PublicNameServerTest.java
@@ -9,8 +9,6 @@ import org.junit.jupiter.api.Test;
 
 import java.util.UUID;
 
-import static org.junit.jupiter.api.Assertions.*;
-
 class PublicNameServerTest {
 
     private static NameServer nameServer;
diff --git a/pom.xml b/pom.xml
index bc029127c7c65c39a08e6c7db977f40ad895174a..6dcc90ac1c688a0b0f8086fd08bdaaeab10a2095 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,6 +17,7 @@
         <module>datastore</module>
         <module>jami-dht</module>
         <module>authentication-module</module>
+        <module>jami-nameserver</module>
     </modules>
 
     <properties>