diff --git a/application/app/build.gradle b/application/app/build.gradle
index 71827eb569f628cc81d648e0c3a41d58d5a223d4..64adb29a2a28124ed9ecd5d0a750dd8a8efb5671 100644
--- a/application/app/build.gradle
+++ b/application/app/build.gradle
@@ -162,12 +162,9 @@ android {
 dependencies {
     implementation project(':application:vlc-android')
     implementation project(':application:television')
-    devImplementation project(':application:webserver')
-    debugImplementation project(':application:webserver')
-    releaseImplementation "org.videolan.android:remote-access:$rootProject.ext.remoteAccessVersion"
-    vlcBundleImplementation "org.videolan.android:remote-access:$rootProject.ext.remoteAccessVersion"
+    implementation project(':application:remote-access-server')
     testImplementation project(':application:television')
-    testImplementation project(':application:webserver')
+    testImplementation project(':application:remote-access-server')
 
     androidTestImplementation "androidx.test.espresso:espresso-contrib:$rootProject.espressoVersion"
     androidTestImplementation "androidx.test.espresso:espresso-core:$rootProject.espressoVersion"
diff --git a/application/webserver/.gitignore b/application/remote-access-client/.gitignore
similarity index 100%
rename from application/webserver/.gitignore
rename to application/remote-access-client/.gitignore
diff --git a/application/remote-access-client/build.gradle b/application/remote-access-client/build.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..bcfb43fb50324fc7797d1ccf81adc49af4db9568
--- /dev/null
+++ b/application/remote-access-client/build.gradle
@@ -0,0 +1,126 @@
+/*
+ * ************************************************************************
+ *  build.gradle
+ * *************************************************************************
+ * Copyright © 2025 VLC authors and VideoLAN
+ * Author: Nicolas POMEPUY
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * **************************************************************************
+ *
+ *
+ */
+
+plugins {
+    id 'com.android.library'
+    id 'org.jetbrains.kotlin.android'
+    id 'com.vanniktech.maven.publish'
+}
+
+ext {
+    library_version = "$rootProject.ext.remoteAccessVersion"
+}
+
+android {
+    namespace 'org.videolan.vlc.remoteaccessclient'
+
+    defaultConfig {
+        minSdkVersion rootProject.ext.minSdkVersion
+        targetSdkVersion rootProject.ext.targetSdkVersion
+        compileSdk rootProject.ext.compileSdkVersion
+
+        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+        consumerProguardFiles "consumer-rules.pro"
+        resValue "string", "build_remote_access_revision", remoteAccessRevision()
+        resValue "string", "remote_access_version", remoteAccessVersion()
+    }
+
+    buildTypes {
+        release {
+            minifyEnabled false
+            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+        }
+    }
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_1_8
+        targetCompatibility JavaVersion.VERSION_1_8
+    }
+    kotlinOptions {
+        jvmTarget = '1.8'
+    }
+
+    task webCopy(type: Copy) {
+        from 'remoteaccess/dist'
+        into 'assets/dist'
+    }
+
+    sourceSets.main {
+        assets.srcDirs = ['assets']
+    }
+
+    sourceSets.main {
+        assets.srcDirs = ['assets']
+    }
+
+    // Make per-variant version code
+    libraryVariants.all { variant ->
+        //Custom APK name
+        variant.outputs.each { output ->
+            if (output.outputFileName != null && output.outputFileName.endsWith('.aar')) {
+                output.outputFileName = "vlc-android-remote-access-${library_version}.aar"
+            }
+        }
+    }
+}
+
+preBuild.dependsOn(webCopy)
+
+def remoteAccessVersion() {
+    def code = new ByteArrayOutputStream()
+    try {
+        if (file("remoteaccess/package.json").exists()) {
+
+            exec {
+                commandLine = ['bash', '-c', 'grep -m1 "version" remoteaccess/package.json']
+                standardOutput = code
+            }
+            return code.toString().split("\"")[3]
+
+        }
+    } catch (Exception e) {
+    }
+    return "unknown"
+}
+
+def remoteAccessRevision() {
+    try {
+        def hash = new ByteArrayOutputStream()
+        exec {
+            commandLine = ['bash', '-c', 'git -C remoteaccess rev-parse --short HEAD']
+            standardOutput = hash
+        }
+        return hash.toString()
+    } catch (Exception e) {
+    }
+    return "unknown"
+}
+
+dependencies {
+
+    testImplementation 'junit:junit:4.13.2'
+    androidTestImplementation 'androidx.test.ext:junit:1.2.1'
+    androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
+}
+
+apply from: '../../buildsystem/publish.gradle'
diff --git a/application/webserver/consumer-rules.pro b/application/remote-access-client/consumer-rules.pro
similarity index 100%
rename from application/webserver/consumer-rules.pro
rename to application/remote-access-client/consumer-rules.pro
diff --git a/application/webserver/gradle.properties b/application/remote-access-client/gradle.properties
similarity index 94%
rename from application/webserver/gradle.properties
rename to application/remote-access-client/gradle.properties
index ee9ac55a816134f6b11a94c773957059a52dec05..26f8de86264bdddc1dbb8834045d54ac656c6f7f 100644
--- a/application/webserver/gradle.properties
+++ b/application/remote-access-client/gradle.properties
@@ -2,7 +2,7 @@
 # *************************************************************************
 #  gradle.properties
 # **************************************************************************
-# Copyright © 2024 VLC authors and VideoLAN
+# Copyright © 2025 VLC authors and VideoLAN
 # Author: Nicolas POMEPUY
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -28,4 +28,4 @@ POM_ARTIFACT_ID=remote-access
 
 POM_NAME=VLC-Android-RemoteAccess
 POM_DESCRIPTION=Android port of VLC's Remote Access
-POM_INCEPTION_YEAR=2021
\ No newline at end of file
+POM_INCEPTION_YEAR=2024
\ No newline at end of file
diff --git a/application/webserver/proguard-rules.pro b/application/remote-access-client/proguard-rules.pro
similarity index 100%
rename from application/webserver/proguard-rules.pro
rename to application/remote-access-client/proguard-rules.pro
diff --git a/application/remote-access-client/src/main/AndroidManifest.xml b/application/remote-access-client/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..13a607c102baae7f2f0d18ea4c812700404b85ea
--- /dev/null
+++ b/application/remote-access-client/src/main/AndroidManifest.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ *************************************************************************
+  ~  AndroidManifest.xml
+  ~ **************************************************************************
+  ~ Copyright © 2025 VLC authors and VideoLAN
+  ~ Author: Nicolas POMEPUY
+  ~ This program is free software; you can redistribute it and/or modify
+  ~ it under the terms of the GNU General Public License as published by
+  ~ the Free Software Foundation; either version 2 of the License, or
+  ~ (at your option) any later version.
+  ~
+  ~ This program is distributed in the hope that it will be useful,
+  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  ~ GNU General Public License for more details.
+  ~
+  ~ You should have received a copy of the GNU General Public License
+  ~ along with this program; if not, write to the Free Software
+  ~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+  ~ ***************************************************************************
+  ~
+  ~
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+
+</manifest>
\ No newline at end of file
diff --git a/application/remote-access-server/.gitignore b/application/remote-access-server/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..42afabfd2abebf31384ca7797186a27a4b7dbee8
--- /dev/null
+++ b/application/remote-access-server/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/application/webserver/build.gradle b/application/remote-access-server/build.gradle
similarity index 62%
rename from application/webserver/build.gradle
rename to application/remote-access-server/build.gradle
index 589bf321459158d129856a31cd86d1cd85aef737..cb7d371d05a946c30ee62776119bb7220f5d526a 100644
--- a/application/webserver/build.gradle
+++ b/application/remote-access-server/build.gradle
@@ -1,14 +1,10 @@
 plugins {
     id 'com.android.library'
     id 'org.jetbrains.kotlin.android'
-    id 'com.vanniktech.maven.publish'
 }
 
-ext {
-    library_version = "$rootProject.ext.remoteAccessVersion"
-}
 android {
-    namespace 'org.videolan.vlc.webserver'
+    namespace 'org.videolan.vlc.remoteaccessserver'
 
     dataBinding {
         enabled = true
@@ -23,8 +19,6 @@ android {
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         consumerProguardFiles "consumer-rules.pro"
         buildConfigField 'Boolean', 'VLC_REMOTE_ACCESS_DEBUG', project.hasProperty("vlc_remote_access_debug") ? vlc_remote_access_debug : "false"
-        resValue "string", "build_remote_access_revision", remoteAccessRevision()
-        resValue "string", "remote_access_version", remoteAccessVersion()
 
     }
 
@@ -43,11 +37,6 @@ android {
         }
     }
 
-    task webCopy(type: Copy) {
-        from '../../remoteaccess/dist'
-        into 'assets/dist'
-    }
-
     sourceSets.main {
         assets.srcDirs = ['assets']
     }
@@ -68,51 +57,14 @@ android {
         buildConfig true
     }
 
-    // Make per-variant version code
-    libraryVariants.all { variant ->
-        //Custom APK name
-        variant.outputs.each { output ->
-            if (output.outputFileName != null && output.outputFileName.endsWith('.aar')) {
-                output.outputFileName = "vlc-android-remote-access-${library_version}.aar"
-            }
-        }
-    }
-}
-
-def remoteAccessVersion() {
-    def code = new ByteArrayOutputStream()
-    try {
-        if (file("../../remoteaccess/package.json").exists()) {
-
-            exec {
-                commandLine = ['bash', '-c', 'grep -m1 "version" ../../remoteaccess/package.json']
-                standardOutput = code
-            }
-            return code.toString().split("\"")[3]
-
-        }
-    } catch (Exception e) {
-    }
-    return "unknown"
-}
-
-def remoteAccessRevision() {
-    try {
-        def hash = new ByteArrayOutputStream()
-        exec {
-            commandLine = ['bash', '-c', 'git -C ../../remoteaccess rev-parse --short HEAD']
-            standardOutput = hash
-        }
-        return hash.toString()
-    } catch (Exception e) {
-    }
-    return "unknown"
 }
 
-preBuild.dependsOn(webCopy)
-
 dependencies {
     coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'
+    devImplementation project(':application:remote-access-client')
+    debugImplementation project(':application:remote-access-client')
+    releaseImplementation "org.videolan.android:remote-access:$rootProject.ext.remoteAccessVersion"
+    vlcBundleImplementation "org.videolan.android:remote-access:$rootProject.ext.remoteAccessVersion"
     implementation project(':application:vlc-android')
     implementation "io.ktor:ktor:$rootProject.ext.ktorVersion"
     implementation "io.ktor:ktor-server-netty:$rootProject.ext.ktorVersion"
@@ -130,6 +82,4 @@ dependencies {
     testImplementation 'junit:junit:4.13.2'
     androidTestImplementation 'androidx.test.ext:junit:1.1.5'
     androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
-}
-
-apply from: '../../buildsystem/publish.gradle'
+}
\ No newline at end of file
diff --git a/application/remote-access-server/consumer-rules.pro b/application/remote-access-server/consumer-rules.pro
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/application/remote-access-server/proguard-rules.pro b/application/remote-access-server/proguard-rules.pro
new file mode 100644
index 0000000000000000000000000000000000000000..481bb434814107eb79d7a30b676d344b0df2f8ce
--- /dev/null
+++ b/application/remote-access-server/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/application/webserver/src/androidTest/java/org/videolan/vlc/webserver/ExampleInstrumentedTest.kt b/application/remote-access-server/src/androidTest/java/org/videolan/vlc/remoteaccessserver/ExampleInstrumentedTest.kt
similarity index 92%
rename from application/webserver/src/androidTest/java/org/videolan/vlc/webserver/ExampleInstrumentedTest.kt
rename to application/remote-access-server/src/androidTest/java/org/videolan/vlc/remoteaccessserver/ExampleInstrumentedTest.kt
index 38fa1fa92454cae83abee31500bd20b7035343d6..fe7775ae2c3a346ed941ad64a0fb5175e3266bb6 100644
--- a/application/webserver/src/androidTest/java/org/videolan/vlc/webserver/ExampleInstrumentedTest.kt
+++ b/application/remote-access-server/src/androidTest/java/org/videolan/vlc/remoteaccessserver/ExampleInstrumentedTest.kt
@@ -22,7 +22,7 @@
  *
  */
 
-package org.videolan.vlc.webserver
+package org.videolan.vlc.remoteaccessserver
 
 import androidx.test.platform.app.InstrumentationRegistry
 import androidx.test.ext.junit.runners.AndroidJUnit4
@@ -43,6 +43,6 @@ class ExampleInstrumentedTest {
     fun useAppContext() {
         // Context of the app under test.
         val appContext = InstrumentationRegistry.getInstrumentation().targetContext
-        assertEquals("org.videolan.vlc.webserver.test", appContext.packageName)
+        assertEquals("org.videolan.vlc.remoteaccessserver.test", appContext.packageName)
     }
 }
\ No newline at end of file
diff --git a/application/webserver/src/main/AndroidManifest.xml b/application/remote-access-server/src/main/AndroidManifest.xml
similarity index 100%
rename from application/webserver/src/main/AndroidManifest.xml
rename to application/remote-access-server/src/main/AndroidManifest.xml
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/RemoteAccessOTP.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessOTP.kt
similarity index 94%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/RemoteAccessOTP.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessOTP.kt
index e12bb1c80974cd4a51c8f54ffa0101280b4260b9..9dd8bd91b2d989b7de62f21e76c1112a5f86ed8a 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/RemoteAccessOTP.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessOTP.kt
@@ -2,7 +2,7 @@
  * ************************************************************************
  *  RemoteAccessOTP.kt
  * *************************************************************************
- * Copyright © 2023 VLC authors and VideoLAN
+ * Copyright © 2025 VLC authors and VideoLAN
  * Author: Nicolas POMEPUY
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,14 +22,14 @@
  *
  */
 
-package org.videolan.vlc.webserver
+package org.videolan.vlc.remoteaccessserver
 
 import android.content.Context
 import androidx.core.app.NotificationManagerCompat
 import org.videolan.vlc.gui.helpers.NotificationHelper
 import org.videolan.vlc.gui.helpers.REMOTE_ACCESS_CODE_ID
-import org.videolan.vlc.webserver.ssl.SecretGenerator
-import org.videolan.vlc.webserver.utils.CypherUtils
+import org.videolan.vlc.remoteaccessserver.ssl.SecretGenerator
+import org.videolan.vlc.remoteaccessserver.utils.CypherUtils
 import java.security.SecureRandom
 
 
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/RemoteAccessRouting.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessRouting.kt
similarity index 98%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/RemoteAccessRouting.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessRouting.kt
index 61f64bae5f220bc6f65300f6904ddd34982287c6..9e190000fe85e1d5328f93676bdd36d3bac83dc2 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/RemoteAccessRouting.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessRouting.kt
@@ -2,7 +2,7 @@
  * ************************************************************************
  *  RemoteAccessRouting.kt
  * *************************************************************************
- * Copyright © 2023 VLC authors and VideoLAN
+ * Copyright © 2025 VLC authors and VideoLAN
  * Author: Nicolas POMEPUY
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
  *
  */
 
-package org.videolan.vlc.webserver
+package org.videolan.vlc.remoteaccessserver
 
 import android.content.Context
 import android.content.res.Resources
@@ -131,16 +131,16 @@ import org.videolan.vlc.util.slugify
 import org.videolan.vlc.util.toByteArray
 import org.videolan.vlc.viewmodels.browser.FavoritesProvider
 import org.videolan.vlc.viewmodels.browser.PathOperationDelegate
-import org.videolan.vlc.webserver.RemoteAccessServer.Companion.getServerFiles
-import org.videolan.vlc.webserver.RemoteAccessServer.PlayerStatus
-import org.videolan.vlc.webserver.RemoteAccessSession.verifyLogin
-import org.videolan.vlc.webserver.utils.MediaZipUtils
-import org.videolan.vlc.webserver.utils.serveAudios
-import org.videolan.vlc.webserver.utils.servePlaylists
-import org.videolan.vlc.webserver.utils.serveSearch
-import org.videolan.vlc.webserver.utils.serveVideos
-import org.videolan.vlc.webserver.websockets.RemoteAccessWebSockets
-import org.videolan.vlc.webserver.websockets.WSIncomingMessage
+import org.videolan.vlc.remoteaccessserver.RemoteAccessServer.Companion.getServerFiles
+import org.videolan.vlc.remoteaccessserver.RemoteAccessServer.PlayerStatus
+import org.videolan.vlc.remoteaccessserver.RemoteAccessSession.verifyLogin
+import org.videolan.vlc.remoteaccessserver.utils.MediaZipUtils
+import org.videolan.vlc.remoteaccessserver.utils.serveAudios
+import org.videolan.vlc.remoteaccessserver.utils.servePlaylists
+import org.videolan.vlc.remoteaccessserver.utils.serveSearch
+import org.videolan.vlc.remoteaccessserver.utils.serveVideos
+import org.videolan.vlc.remoteaccessserver.websockets.RemoteAccessWebSockets
+import org.videolan.vlc.remoteaccessserver.websockets.WSIncomingMessage
 import java.io.BufferedWriter
 import java.io.File
 import java.io.FileNotFoundException
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/RemoteAccessServer.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessServer.kt
similarity index 99%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/RemoteAccessServer.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessServer.kt
index a55bd6b2780b18d8b15f2c950e19d37e4e6f0c11..64f743e7cda0db314bb0dfdcba51e3d6133dedb5 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/RemoteAccessServer.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessServer.kt
@@ -2,7 +2,7 @@
  * ************************************************************************
  *  RemoteAccessServer.kt
  * *************************************************************************
- * Copyright © 2023 VLC authors and VideoLAN
+ * Copyright © 2025 VLC authors and VideoLAN
  * Author: Nicolas POMEPUY
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
  *
  */
 
-package org.videolan.vlc.webserver
+package org.videolan.vlc.remoteaccessserver
 
 import android.annotation.SuppressLint
 import android.content.Context
@@ -112,9 +112,9 @@ import org.videolan.vlc.viewmodels.CallBackDelegate
 import org.videolan.vlc.viewmodels.ICallBackHandler
 import org.videolan.vlc.viewmodels.browser.IPathOperationDelegate
 import org.videolan.vlc.viewmodels.browser.PathOperationDelegate
-import org.videolan.vlc.webserver.ssl.SecretGenerator
-import org.videolan.vlc.webserver.websockets.RemoteAccessWebSockets
-import org.videolan.vlc.webserver.websockets.RemoteAccessWebSockets.setupWebSockets
+import org.videolan.vlc.remoteaccessserver.ssl.SecretGenerator
+import org.videolan.vlc.remoteaccessserver.websockets.RemoteAccessWebSockets
+import org.videolan.vlc.remoteaccessserver.websockets.RemoteAccessWebSockets.setupWebSockets
 import java.io.File
 import java.math.BigInteger
 import java.net.InetAddress
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/RemoteAccessService.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessService.kt
similarity index 99%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/RemoteAccessService.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessService.kt
index 2020f5f4bea27540e73957798048332aca50d229..690c25f6d042ddd5e11d35c2fa665f5d06a114e3 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/RemoteAccessService.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessService.kt
@@ -17,7 +17,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  */
 
-package org.videolan.vlc.webserver
+package org.videolan.vlc.remoteaccessserver
 
 import android.annotation.SuppressLint
 import android.app.ForegroundServiceStartNotAllowedException
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/RemoteAccessSession.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessSession.kt
similarity index 96%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/RemoteAccessSession.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessSession.kt
index 47e88342a8e81ee5f949350b3c66ed3c4849e178..9b671224178679e64fbfff88add600f9461548b6 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/RemoteAccessSession.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessSession.kt
@@ -2,7 +2,7 @@
  * ************************************************************************
  *  RemoteAccessSession.kt
  * *************************************************************************
- * Copyright © 2023 VLC authors and VideoLAN
+ * Copyright © 2025 VLC authors and VideoLAN
  * Author: Nicolas POMEPUY
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
  *
  */
 
-package org.videolan.vlc.webserver
+package org.videolan.vlc.remoteaccessserver
 
 import android.content.SharedPreferences
 import com.squareup.moshi.JsonAdapter
@@ -36,7 +36,7 @@ import io.ktor.server.response.respond
 import io.ktor.server.sessions.sessions
 import io.ktor.util.pipeline.PipelineContext
 import org.videolan.tools.putSingle
-import org.videolan.vlc.webserver.ssl.SecretGenerator
+import org.videolan.vlc.remoteaccessserver.ssl.SecretGenerator
 
 private const val VALID_SESSIONS = "valid_sessions"
 
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/ServerStatus.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/ServerStatus.kt
similarity index 96%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/ServerStatus.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/ServerStatus.kt
index 31a14e8f25486ddd50b86953e428698adc8b0235..665415baec997adb7d17ce57d79be6c9850bd99d 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/ServerStatus.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/ServerStatus.kt
@@ -22,7 +22,7 @@
  *
  */
 
-package org.videolan.vlc.webserver
+package org.videolan.vlc.remoteaccessserver
 
 /**
  * Describe the sharing server status
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/TranslationMapping.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/TranslationMapping.kt
similarity index 99%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/TranslationMapping.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/TranslationMapping.kt
index 900348ce271b4b054d420a7485eb7e5fe67ff0bb..a1c0e81763571427238fdd52c98c7970346462f8 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/TranslationMapping.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/TranslationMapping.kt
@@ -22,7 +22,7 @@
  *
  */
 
-package org.videolan.vlc.webserver
+package org.videolan.vlc.remoteaccessserver
 
 import android.content.Context
 import android.os.Build
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/RemoteAccessShareActivity.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/RemoteAccessShareActivity.kt
similarity index 95%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/RemoteAccessShareActivity.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/RemoteAccessShareActivity.kt
index d8ee9f89640e19ee097b0ea074c22d9b75ad0e6b..dd2e30d8ef63f0f4e66bf9750d12b0bb95d280d0 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/RemoteAccessShareActivity.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/RemoteAccessShareActivity.kt
@@ -2,7 +2,7 @@
  * ************************************************************************
  *  RemoteAccessShareActivity.kt
  * *************************************************************************
- * Copyright © 2023 VLC authors and VideoLAN
+ * Copyright © 2025 VLC authors and VideoLAN
  * Author: Nicolas POMEPUY
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
  *
  */
 
-package org.videolan.vlc.webserver.gui.remoteaccess
+package org.videolan.vlc.remoteaccessserver.gui.remoteaccess
 
 import android.content.Intent
 import android.os.Bundle
@@ -49,11 +49,11 @@ import org.videolan.tools.setVisible
 import org.videolan.vlc.gui.BaseActivity
 import org.videolan.vlc.util.UrlUtils
 import org.videolan.vlc.util.share
-import org.videolan.vlc.webserver.R
-import org.videolan.vlc.webserver.RemoteAccessServer
-import org.videolan.vlc.webserver.ServerStatus
-import org.videolan.vlc.webserver.databinding.RemoteAccessShareActivityBinding
-import org.videolan.vlc.webserver.gui.remoteaccess.adapters.ConnnectionAdapter
+import org.videolan.vlc.remoteaccessserver.R
+import org.videolan.vlc.remoteaccessserver.RemoteAccessServer
+import org.videolan.vlc.remoteaccessserver.ServerStatus
+import org.videolan.vlc.remoteaccessserver.databinding.RemoteAccessShareActivityBinding
+import org.videolan.vlc.remoteaccessserver.gui.remoteaccess.adapters.ConnnectionAdapter
 
 
 /**
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/adapters/ConnnectionAdapter.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/adapters/ConnnectionAdapter.kt
similarity index 86%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/adapters/ConnnectionAdapter.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/adapters/ConnnectionAdapter.kt
index 05115cec7574e807dd252448bcd314fd5b60c0bc..824a51c88e662e364f3ced973c42ec3ef186d06a 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/adapters/ConnnectionAdapter.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/adapters/ConnnectionAdapter.kt
@@ -1,8 +1,8 @@
 /*
  * ************************************************************************
- *  ConnectionAdapter.kt
+ *  ConnnectionAdapter.kt
  * *************************************************************************
- * Copyright © 2023 VLC authors and VideoLAN
+ * Copyright © 2025 VLC authors and VideoLAN
  * Author: Nicolas POMEPUY
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,14 +22,14 @@
  *
  */
 
-package org.videolan.vlc.webserver.gui.remoteaccess.adapters
+package org.videolan.vlc.remoteaccessserver.gui.remoteaccess.adapters
 
 import android.view.LayoutInflater
 import android.view.ViewGroup
 import androidx.recyclerview.widget.RecyclerView
 import org.videolan.vlc.gui.helpers.SelectorViewHolder
-import org.videolan.vlc.webserver.RemoteAccessServer
-import org.videolan.vlc.webserver.databinding.RemoteAccessConnectionItemBinding
+import org.videolan.vlc.remoteaccessserver.RemoteAccessServer
+import org.videolan.vlc.remoteaccessserver.databinding.RemoteAccessConnectionItemBinding
 
 class ConnnectionAdapter(private val layoutInflater: LayoutInflater, var connections:List<RemoteAccessServer.RemoteAccessConnection>) : RecyclerView.Adapter<ConnnectionAdapter.ViewHolder>() {
 
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingActivity.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingActivity.kt
similarity index 71%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingActivity.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingActivity.kt
index d452b8588ac7474b107e774d1f046da7c34fc7f0..3c898296655fa0d06e8b87af86deb4d5f8df252a 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingActivity.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingActivity.kt
@@ -1,4 +1,28 @@
-package org.videolan.vlc.webserver.gui.remoteaccess.onboarding
+/*
+ * ************************************************************************
+ *  RemoteAccessOnboardingActivity.kt
+ * *************************************************************************
+ * Copyright © 2025 VLC authors and VideoLAN
+ * Author: Nicolas POMEPUY
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * **************************************************************************
+ *
+ *
+ */
+
+package org.videolan.vlc.remoteaccessserver.gui.remoteaccess.onboarding
 
 import android.os.Bundle
 import android.view.View
@@ -8,7 +32,7 @@ import androidx.appcompat.app.AppCompatActivity
 import androidx.fragment.app.commit
 import org.videolan.tools.setGone
 import org.videolan.vlc.R
-import org.videolan.vlc.webserver.viewmodels.RemoteAccessOnboardingViewModel
+import org.videolan.vlc.remoteaccessserver.viewmodels.RemoteAccessOnboardingViewModel
 
 
 class RemoteAccessOnboardingActivity : AppCompatActivity(), OnboardingFragmentListener {
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingContentFragment.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingContentFragment.kt
similarity index 72%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingContentFragment.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingContentFragment.kt
index 78b459489c8a03a2e0f33152ec71077d6ebd49ff..7b308a36d19e992ef2816e535e73cc12ea58e57b 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingContentFragment.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingContentFragment.kt
@@ -1,4 +1,28 @@
-package org.videolan.vlc.webserver.gui.remoteaccess.onboarding
+/*
+ * ************************************************************************
+ *  RemoteAccessOnboardingContentFragment.kt
+ * *************************************************************************
+ * Copyright © 2025 VLC authors and VideoLAN
+ * Author: Nicolas POMEPUY
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * **************************************************************************
+ *
+ *
+ */
+
+package org.videolan.vlc.remoteaccessserver.gui.remoteaccess.onboarding
 
 import android.animation.Animator
 import android.animation.AnimatorSet
@@ -17,7 +41,7 @@ import androidx.lifecycle.repeatOnLifecycle
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.launch
 import org.videolan.vlc.gui.view.MiniVisualizer
-import org.videolan.vlc.webserver.R
+import org.videolan.vlc.remoteaccessserver.R
 
 
 class RemoteAccessOnboardingContentFragment : RemoteAccessOnboardingFragment() {
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingFragment.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingFragment.kt
similarity index 91%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingFragment.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingFragment.kt
index c18053a8090ae6e691f6dc43b65945ea8c6e5ed8..4d72914cfce932dd597b21cd9f7b4e21de8bec93 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingFragment.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingFragment.kt
@@ -1,8 +1,8 @@
 /*
  * ************************************************************************
- *  OnboardingFragment.kt
+ *  RemoteAccessOnboardingFragment.kt
  * *************************************************************************
- * Copyright © 2021 VLC authors and VideoLAN
+ * Copyright © 2025 VLC authors and VideoLAN
  * Author: Nicolas POMEPUY
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
  *
  */
 
-package org.videolan.vlc.webserver.gui.remoteaccess.onboarding
+package org.videolan.vlc.remoteaccessserver.gui.remoteaccess.onboarding
 
 import android.view.View
 import android.view.accessibility.AccessibilityEvent
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingHowFragment.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingHowFragment.kt
similarity index 79%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingHowFragment.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingHowFragment.kt
index 19374dae79e77ccd0d9914a7612bbd9881ef4eab..5759d85aa3c0a4298f897a4751e6b84dba40f560 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingHowFragment.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingHowFragment.kt
@@ -1,4 +1,28 @@
-package org.videolan.vlc.webserver.gui.remoteaccess.onboarding
+/*
+ * ************************************************************************
+ *  RemoteAccessOnboardingHowFragment.kt
+ * *************************************************************************
+ * Copyright © 2025 VLC authors and VideoLAN
+ * Author: Nicolas POMEPUY
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * **************************************************************************
+ *
+ *
+ */
+
+package org.videolan.vlc.remoteaccessserver.gui.remoteaccess.onboarding
 
 import android.animation.AnimatorSet
 import android.animation.ObjectAnimator
@@ -24,7 +48,7 @@ import org.videolan.tools.dp
 import org.videolan.tools.setGone
 import org.videolan.tools.setVisible
 import org.videolan.vlc.gui.view.MiniVisualizer
-import org.videolan.vlc.webserver.R
+import org.videolan.vlc.remoteaccessserver.R
 
 class RemoteAccessOnboardingHowFragment : RemoteAccessOnboardingFragment() {
     private lateinit var vizu: MiniVisualizer
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingOtpFragment.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingOtpFragment.kt
similarity index 81%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingOtpFragment.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingOtpFragment.kt
index 3b19c93a2895a60341cf5491c314292a3b258d17..fa6b651314ab7d0592b4e37fe8710611b4126fae 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingOtpFragment.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingOtpFragment.kt
@@ -1,4 +1,28 @@
-package org.videolan.vlc.webserver.gui.remoteaccess.onboarding
+/*
+ * ************************************************************************
+ *  RemoteAccessOnboardingOtpFragment.kt
+ * *************************************************************************
+ * Copyright © 2025 VLC authors and VideoLAN
+ * Author: Nicolas POMEPUY
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * **************************************************************************
+ *
+ *
+ */
+
+package org.videolan.vlc.remoteaccessserver.gui.remoteaccess.onboarding
 
 import android.animation.Animator
 import android.animation.AnimatorSet
@@ -21,8 +45,8 @@ import kotlinx.coroutines.delay
 import kotlinx.coroutines.launch
 import org.videolan.tools.Settings
 import org.videolan.tools.dp
-import org.videolan.vlc.webserver.R
-import org.videolan.vlc.webserver.RemoteAccessOTP
+import org.videolan.vlc.remoteaccessserver.R
+import org.videolan.vlc.remoteaccessserver.RemoteAccessOTP
 
 
 class RemoteAccessOnboardingOtpFragment : RemoteAccessOnboardingFragment() {
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingSslFragment.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingSslFragment.kt
similarity index 71%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingSslFragment.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingSslFragment.kt
index 62f1004862fcc2a7ae48ee6f9b5cb37e532cf34d..619e698d35e34b383ecac9299122ba0ab1c9621e 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingSslFragment.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingSslFragment.kt
@@ -1,4 +1,28 @@
-package org.videolan.vlc.webserver.gui.remoteaccess.onboarding
+/*
+ * ************************************************************************
+ *  RemoteAccessOnboardingSslFragment.kt
+ * *************************************************************************
+ * Copyright © 2025 VLC authors and VideoLAN
+ * Author: Nicolas POMEPUY
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * **************************************************************************
+ *
+ *
+ */
+
+package org.videolan.vlc.remoteaccessserver.gui.remoteaccess.onboarding
 
 import android.animation.AnimatorSet
 import android.animation.ObjectAnimator
@@ -13,7 +37,7 @@ import android.widget.TextView
 import androidx.core.animation.doOnRepeat
 import androidx.core.content.ContextCompat
 import org.videolan.tools.Settings
-import org.videolan.vlc.webserver.R
+import org.videolan.vlc.remoteaccessserver.R
 import java.security.SecureRandom
 
 class RemoteAccessOnboardingSslFragment : RemoteAccessOnboardingFragment() {
diff --git a/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingWelcomeFragment.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingWelcomeFragment.kt
new file mode 100644
index 0000000000000000000000000000000000000000..e31458e429ef0ff2a6189076c7fa1d2e33c8cf08
--- /dev/null
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingWelcomeFragment.kt
@@ -0,0 +1,53 @@
+/*
+ * ************************************************************************
+ *  RemoteAccessOnboardingWelcomeFragment.kt
+ * *************************************************************************
+ * Copyright © 2025 VLC authors and VideoLAN
+ * Author: Nicolas POMEPUY
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * **************************************************************************
+ *
+ *
+ */
+
+package org.videolan.vlc.remoteaccessserver.gui.remoteaccess.onboarding
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import org.videolan.vlc.remoteaccessserver.R
+
+class RemoteAccessOnboardingWelcomeFragment : RemoteAccessOnboardingFragment() {
+    private lateinit var titleView: TextView
+
+    override fun getDefaultViewForTalkback() = titleView
+
+    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
+        return inflater.inflate(R.layout.remote_access_onboarding_welcome, container, false)
+    }
+
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(view, savedInstanceState)
+        titleView = view.findViewById(R.id.welcome_title)
+    }
+
+    companion object {
+        fun newInstance(): RemoteAccessOnboardingWelcomeFragment {
+            return RemoteAccessOnboardingWelcomeFragment()
+        }
+    }
+}
\ No newline at end of file
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/ssl/SecretGenerator.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/ssl/SecretGenerator.kt
similarity index 93%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/ssl/SecretGenerator.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/ssl/SecretGenerator.kt
index 78296b6472efb2fc8617c276bf104fb53f25e4ad..a709b009594ffc56c7ee0151841980cf10b6c0d9 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/ssl/SecretGenerator.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/ssl/SecretGenerator.kt
@@ -1,11 +1,27 @@
 /*
-MIT License: https://opensource.org/licenses/MIT
-Copyright 2017 Diederik Hattingh
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-package org.videolan.vlc.webserver.ssl
+ * ************************************************************************
+ *  SecretGenerator.kt
+ * *************************************************************************
+ * Copyright © 2025 VLC authors and VideoLAN
+ * Author: Nicolas POMEPUY
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * **************************************************************************
+ *
+ *
+ */
+package org.videolan.vlc.remoteaccessserver.ssl
 
 import android.annotation.SuppressLint
 import android.content.Context
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/utils/CypherUtils.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/utils/CypherUtils.kt
similarity index 93%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/utils/CypherUtils.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/utils/CypherUtils.kt
index d257d8d64891756cbadfabfb313569ea35fdc2ed..0b738579f5f24a1ada9debf6e5323591f4d638fe 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/utils/CypherUtils.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/utils/CypherUtils.kt
@@ -2,7 +2,7 @@
  * ************************************************************************
  *  CypherUtils.kt
  * *************************************************************************
- * Copyright © 2023 VLC authors and VideoLAN
+ * Copyright © 2025 VLC authors and VideoLAN
  * Author: Nicolas POMEPUY
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
  *
  */
 
-package org.videolan.vlc.webserver.utils
+package org.videolan.vlc.remoteaccessserver.utils
 
 import java.security.MessageDigest
 
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/utils/MediaZipUtils.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/utils/MediaZipUtils.kt
similarity index 99%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/utils/MediaZipUtils.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/utils/MediaZipUtils.kt
index 3eedb7f056b1863ecb97e58c3403e539f6187354..7f04b99b9bdb6ebd42c04531bd17a8dc86317e64 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/utils/MediaZipUtils.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/utils/MediaZipUtils.kt
@@ -22,7 +22,7 @@
  *
  */
 
-package org.videolan.vlc.webserver.utils
+package org.videolan.vlc.remoteaccessserver.utils
 
 import org.videolan.medialibrary.interfaces.Medialibrary
 import org.videolan.medialibrary.interfaces.media.*
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/utils/PreferenceUtil.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/utils/PreferenceUtil.kt
similarity index 97%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/utils/PreferenceUtil.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/utils/PreferenceUtil.kt
index f72a3cd9047a241af7d931a161fe785cb5ba4d64..5e4a39e6ba7259f01057f74f8d162d40dfd6bf77 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/utils/PreferenceUtil.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/utils/PreferenceUtil.kt
@@ -22,7 +22,7 @@
  *
  */
 
-package org.videolan.vlc.webserver.utils
+package org.videolan.vlc.remoteaccessserver.utils
 
 import android.content.Context
 import android.content.SharedPreferences
diff --git a/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/viewmodels/RemoteAccessOnboardingViewModel.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/viewmodels/RemoteAccessOnboardingViewModel.kt
new file mode 100644
index 0000000000000000000000000000000000000000..a1956cfd886e3fecc432d9ad539a146529a0dbf4
--- /dev/null
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/viewmodels/RemoteAccessOnboardingViewModel.kt
@@ -0,0 +1,34 @@
+/*
+ * ************************************************************************
+ *  RemoteAccessOnboardingViewModel.kt
+ * *************************************************************************
+ * Copyright © 2025 VLC authors and VideoLAN
+ * Author: Nicolas POMEPUY
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * **************************************************************************
+ *
+ *
+ */
+
+package org.videolan.vlc.remoteaccessserver.viewmodels
+
+import androidx.lifecycle.ViewModel
+import org.videolan.vlc.remoteaccessserver.gui.remoteaccess.onboarding.FragmentName
+
+class RemoteAccessOnboardingViewModel : ViewModel() {
+
+    var currentFragment = FragmentName.WELCOME
+}
+
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/websockets/RemoteAccessWebSockets.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/websockets/RemoteAccessWebSockets.kt
similarity index 97%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/websockets/RemoteAccessWebSockets.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/websockets/RemoteAccessWebSockets.kt
index 9552c8b4d859e1d2f4f38a79f83c4eb5786cea40..df3071f966ca4de0f3101b63143a6505bfa25d47 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/websockets/RemoteAccessWebSockets.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/websockets/RemoteAccessWebSockets.kt
@@ -2,7 +2,7 @@
  * ************************************************************************
  *  RemoteAccessWebSockets.kt
  * *************************************************************************
- * Copyright © 2023 VLC authors and VideoLAN
+ * Copyright © 2025 VLC authors and VideoLAN
  * Author: Nicolas POMEPUY
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
  *
  */
 
-package org.videolan.vlc.webserver.websockets
+package org.videolan.vlc.remoteaccessserver.websockets
 
 import android.content.Context
 import android.content.SharedPreferences
@@ -47,11 +47,11 @@ import org.videolan.tools.REMOTE_ACCESS_PLAYBACK_CONTROL
 import org.videolan.vlc.PlaybackService
 import org.videolan.vlc.R
 import org.videolan.vlc.gui.video.VideoPlayerActivity
-import org.videolan.vlc.webserver.BuildConfig
-import org.videolan.vlc.webserver.RemoteAccessServer
-import org.videolan.vlc.webserver.convertToJson
-import org.videolan.vlc.webserver.ssl.SecretGenerator
-import org.videolan.vlc.webserver.websockets.IncomingMessageType.*
+import org.videolan.vlc.remoteaccessserver.BuildConfig
+import org.videolan.vlc.remoteaccessserver.RemoteAccessServer
+import org.videolan.vlc.remoteaccessserver.convertToJson
+import org.videolan.vlc.remoteaccessserver.ssl.SecretGenerator
+import org.videolan.vlc.remoteaccessserver.websockets.IncomingMessageType.*
 import java.util.Calendar
 import java.util.Collections
 import java.util.concurrent.ConcurrentHashMap
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/websockets/WSAuthTicket.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/websockets/WSAuthTicket.kt
similarity index 95%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/websockets/WSAuthTicket.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/websockets/WSAuthTicket.kt
index 4bc497d717cffe9fe99404cc1b13ca1847096a67..65a9811104c231a1471657c5a84a216feddf150b 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/websockets/WSAuthTicket.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/websockets/WSAuthTicket.kt
@@ -22,7 +22,7 @@
  *
  */
 
-package org.videolan.vlc.webserver.websockets
+package org.videolan.vlc.remoteaccessserver.websockets
 
 data class WSAuthTicket(
             val id: String,
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/websockets/WSIncomingMessage.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/websockets/WSIncomingMessage.kt
similarity index 97%
rename from application/webserver/src/main/java/org/videolan/vlc/webserver/websockets/WSIncomingMessage.kt
rename to application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/websockets/WSIncomingMessage.kt
index fbd8311bca8a96e1caabe6a15be96d2e64879ed1..a5286b2e38bcd1e75d72de0f1607a44853305865 100644
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/websockets/WSIncomingMessage.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/websockets/WSIncomingMessage.kt
@@ -22,7 +22,7 @@
  *
  */
 
-package org.videolan.vlc.webserver.websockets
+package org.videolan.vlc.remoteaccessserver.websockets
 
 data class WSIncomingMessage(
             val message: String,
diff --git a/application/webserver/src/main/res/layout-land/remote_access_onboarding_content.xml b/application/remote-access-server/src/main/res/layout-land/remote_access_onboarding_content.xml
similarity index 100%
rename from application/webserver/src/main/res/layout-land/remote_access_onboarding_content.xml
rename to application/remote-access-server/src/main/res/layout-land/remote_access_onboarding_content.xml
diff --git a/application/webserver/src/main/res/layout-land/remote_access_onboarding_how.xml b/application/remote-access-server/src/main/res/layout-land/remote_access_onboarding_how.xml
similarity index 100%
rename from application/webserver/src/main/res/layout-land/remote_access_onboarding_how.xml
rename to application/remote-access-server/src/main/res/layout-land/remote_access_onboarding_how.xml
diff --git a/application/webserver/src/main/res/layout-land/remote_access_onboarding_otp.xml b/application/remote-access-server/src/main/res/layout-land/remote_access_onboarding_otp.xml
similarity index 100%
rename from application/webserver/src/main/res/layout-land/remote_access_onboarding_otp.xml
rename to application/remote-access-server/src/main/res/layout-land/remote_access_onboarding_otp.xml
diff --git a/application/webserver/src/main/res/layout-land/remote_access_onboarding_ssl.xml b/application/remote-access-server/src/main/res/layout-land/remote_access_onboarding_ssl.xml
similarity index 100%
rename from application/webserver/src/main/res/layout-land/remote_access_onboarding_ssl.xml
rename to application/remote-access-server/src/main/res/layout-land/remote_access_onboarding_ssl.xml
diff --git a/application/webserver/src/main/res/layout-land/remote_access_onboarding_welcome.xml b/application/remote-access-server/src/main/res/layout-land/remote_access_onboarding_welcome.xml
similarity index 100%
rename from application/webserver/src/main/res/layout-land/remote_access_onboarding_welcome.xml
rename to application/remote-access-server/src/main/res/layout-land/remote_access_onboarding_welcome.xml
diff --git a/application/webserver/src/main/res/layout/remote_access_connection_item.xml b/application/remote-access-server/src/main/res/layout/remote_access_connection_item.xml
similarity index 100%
rename from application/webserver/src/main/res/layout/remote_access_connection_item.xml
rename to application/remote-access-server/src/main/res/layout/remote_access_connection_item.xml
diff --git a/application/webserver/src/main/res/layout/remote_access_onboarding_content.xml b/application/remote-access-server/src/main/res/layout/remote_access_onboarding_content.xml
similarity index 100%
rename from application/webserver/src/main/res/layout/remote_access_onboarding_content.xml
rename to application/remote-access-server/src/main/res/layout/remote_access_onboarding_content.xml
diff --git a/application/webserver/src/main/res/layout/remote_access_onboarding_how.xml b/application/remote-access-server/src/main/res/layout/remote_access_onboarding_how.xml
similarity index 100%
rename from application/webserver/src/main/res/layout/remote_access_onboarding_how.xml
rename to application/remote-access-server/src/main/res/layout/remote_access_onboarding_how.xml
diff --git a/application/webserver/src/main/res/layout/remote_access_onboarding_otp.xml b/application/remote-access-server/src/main/res/layout/remote_access_onboarding_otp.xml
similarity index 100%
rename from application/webserver/src/main/res/layout/remote_access_onboarding_otp.xml
rename to application/remote-access-server/src/main/res/layout/remote_access_onboarding_otp.xml
diff --git a/application/webserver/src/main/res/layout/remote_access_onboarding_ssl.xml b/application/remote-access-server/src/main/res/layout/remote_access_onboarding_ssl.xml
similarity index 100%
rename from application/webserver/src/main/res/layout/remote_access_onboarding_ssl.xml
rename to application/remote-access-server/src/main/res/layout/remote_access_onboarding_ssl.xml
diff --git a/application/webserver/src/main/res/layout/remote_access_onboarding_welcome.xml b/application/remote-access-server/src/main/res/layout/remote_access_onboarding_welcome.xml
similarity index 100%
rename from application/webserver/src/main/res/layout/remote_access_onboarding_welcome.xml
rename to application/remote-access-server/src/main/res/layout/remote_access_onboarding_welcome.xml
diff --git a/application/webserver/src/main/res/layout/remote_access_share_activity.xml b/application/remote-access-server/src/main/res/layout/remote_access_share_activity.xml
similarity index 100%
rename from application/webserver/src/main/res/layout/remote_access_share_activity.xml
rename to application/remote-access-server/src/main/res/layout/remote_access_share_activity.xml
diff --git a/application/webserver/src/main/res/menu/remote_access_share.xml b/application/remote-access-server/src/main/res/menu/remote_access_share.xml
similarity index 100%
rename from application/webserver/src/main/res/menu/remote_access_share.xml
rename to application/remote-access-server/src/main/res/menu/remote_access_share.xml
diff --git a/application/webserver/src/test/java/org/videolan/vlc/webserver/ExampleUnitTest.kt b/application/remote-access-server/src/test/java/org/videolan/vlc/remoteaccessserver/ExampleUnitTest.kt
similarity index 96%
rename from application/webserver/src/test/java/org/videolan/vlc/webserver/ExampleUnitTest.kt
rename to application/remote-access-server/src/test/java/org/videolan/vlc/remoteaccessserver/ExampleUnitTest.kt
index 06a863ca0fbdd4b4ca83ef62ff25015c41cd1b45..4ff66ac0806dc25d7afd3fc92ed16332d68ca880 100644
--- a/application/webserver/src/test/java/org/videolan/vlc/webserver/ExampleUnitTest.kt
+++ b/application/remote-access-server/src/test/java/org/videolan/vlc/remoteaccessserver/ExampleUnitTest.kt
@@ -22,7 +22,7 @@
  *
  */
 
-package org.videolan.vlc.webserver
+package org.videolan.vlc.remoteaccessserver
 
 import org.junit.Test
 
diff --git a/application/resources/src/main/java/org/videolan/resources/Constants.kt b/application/resources/src/main/java/org/videolan/resources/Constants.kt
index 75b32e289a57c3401270f6b841dc15a35ba96116..0f7812e3689c832508bf843ad682e321a04c8abb 100644
--- a/application/resources/src/main/java/org/videolan/resources/Constants.kt
+++ b/application/resources/src/main/java/org/videolan/resources/Constants.kt
@@ -243,8 +243,8 @@ const val MOVIEPEDIA_ACTIVITY = "org.videolan.moviepedia.ui.MoviepediaActivity"
 const val TV_AUDIOPLAYER_ACTIVITY = "org.videolan.television.ui.audioplayer.AudioPlayerActivity"
 const val MEDIAPARSING_SERVICE = "org.videolan.vlc.MediaParsingService"
 const val TV_ONBOARDING_ACTIVITY = "org.videolan.television.ui.OnboardingActivity"
-const val REMOTE_ACCESS_SERVICE = "org.videolan.vlc.webserver.RemoteAccessService"
-const val REMOTE_ACCESS_ONBOARDING = "org.videolan.vlc.webserver.gui.remoteaccess.onboarding.RemoteAccessOnboardingActivity"
+const val REMOTE_ACCESS_SERVICE = "org.videolan.vlc.remoteaccessserver.RemoteAccessService"
+const val REMOTE_ACCESS_ONBOARDING = "org.videolan.vlc.remoteaccessserver.gui.remoteaccess.onboarding.RemoteAccessOnboardingActivity"
 
 const val ROOM_DATABASE = "/vlc_database.zip"
 const val EXPORT_SETTINGS_FILE = "/vlc_exported_settings.json"
\ No newline at end of file
diff --git a/application/vlc-android/src/org/videolan/vlc/StartActivity.kt b/application/vlc-android/src/org/videolan/vlc/StartActivity.kt
index c73e4ffc173cc5c70f78b16bef166f9744992a6c..6d13f85efd1361d9954f2e6d195343d04b0a9700 100644
--- a/application/vlc-android/src/org/videolan/vlc/StartActivity.kt
+++ b/application/vlc-android/src/org/videolan/vlc/StartActivity.kt
@@ -211,7 +211,7 @@ class StartActivity : FragmentActivity() {
                     }
                 }
             } else if(action != null && action== "vlc.remoteaccess.share") {
-                startActivity(Intent().apply { component = ComponentName(this@StartActivity, "org.videolan.vlc.webserver.gui.remoteaccess.RemoteAccessShareActivity") })
+                startActivity(Intent().apply { component = ComponentName(this@StartActivity, "org.videolan.vlc.remoteaccessserver.gui.remoteaccess.RemoteAccessShareActivity") })
             } else {
                 val target = idFromShortcut
                 val service = PlaybackService.instance
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingWelcomeFragment.kt b/application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingWelcomeFragment.kt
deleted file mode 100644
index 66162816a33c5da2c2d81cd372c4d8bf7443d469..0000000000000000000000000000000000000000
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/gui/remoteaccess/onboarding/RemoteAccessOnboardingWelcomeFragment.kt
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.videolan.vlc.webserver.gui.remoteaccess.onboarding
-
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.TextView
-import org.videolan.vlc.webserver.R
-
-class RemoteAccessOnboardingWelcomeFragment : RemoteAccessOnboardingFragment() {
-    private lateinit var titleView: TextView
-
-    override fun getDefaultViewForTalkback() = titleView
-
-    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
-        return inflater.inflate(R.layout.remote_access_onboarding_welcome, container, false)
-    }
-
-    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
-        super.onViewCreated(view, savedInstanceState)
-        titleView = view.findViewById(R.id.welcome_title)
-    }
-
-    companion object {
-        fun newInstance(): RemoteAccessOnboardingWelcomeFragment {
-            return RemoteAccessOnboardingWelcomeFragment()
-        }
-    }
-}
\ No newline at end of file
diff --git a/application/webserver/src/main/java/org/videolan/vlc/webserver/viewmodels/RemoteAccessOnboardingViewModel.kt b/application/webserver/src/main/java/org/videolan/vlc/webserver/viewmodels/RemoteAccessOnboardingViewModel.kt
deleted file mode 100644
index 0dbd6b110e3f7e1a5ac9bdb8b135a56cea4cc716..0000000000000000000000000000000000000000
--- a/application/webserver/src/main/java/org/videolan/vlc/webserver/viewmodels/RemoteAccessOnboardingViewModel.kt
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.videolan.vlc.webserver.viewmodels
-
-import androidx.lifecycle.ViewModel
-import org.videolan.vlc.webserver.gui.remoteaccess.onboarding.FragmentName
-
-class RemoteAccessOnboardingViewModel : ViewModel() {
-
-    var currentFragment = FragmentName.WELCOME
-}
-
diff --git a/build.gradle b/build.gradle
index 614423cf3b923e34a43f7224c6a9d125a3912e11..ce54a492dbd6778a9a5dae0ef8473a56fa341938 100644
--- a/build.gradle
+++ b/build.gradle
@@ -42,7 +42,7 @@ ext {
     versionCode = 3060200
     versionName = project.hasProperty('forceVlc4') && project.getProperty('forceVlc4') ? '4.0.0-preview - ' + versionCode : '3.6.2'
     vlcMajorVersion = project.hasProperty('forceVlc4') && project.getProperty('forceVlc4') ? 4 : 3
-    remoteAccessVersion = '0.1.3'
+    remoteAccessVersion = '0.2.0'
     libvlcVersion = vlcMajorVersion == 3 ? '3.6.0-eap14' :'4.0.0-eap17'
     medialibraryVersion = vlcMajorVersion == 3 ? '0.13.13-rc14' : '0.13.13-vlc4-rc14'
     minSdkVersion = 17
diff --git a/buildsystem/compile-remoteaccess.sh b/buildsystem/compile-remoteaccess.sh
index c7b006efe893f70b8e66499d5e3bac21056a205c..cb09402a45e998799d0fb036a2d52d7ccbdc8b52 100755
--- a/buildsystem/compile-remoteaccess.sh
+++ b/buildsystem/compile-remoteaccess.sh
@@ -60,22 +60,23 @@ done
   REMOTE_ACCESS_TESTED_HASH=543dcf36610e6944c85cbf355b4b934b8ae451d3
   REMOTE_ACCESS_REPOSITORY=https://code.videolan.org/videolan/remoteaccess
 
-  : ${VLC_REMOTE_ACCESS_PATH:="$(pwd -P)/remoteaccess"}
+  : ${VLC_REMOTE_ACCESS_PATH:="$(pwd -P)/application/remote-access-client/remoteaccess"}
+  diagnostic "VLC_REMOTE_ACCESS_PATH is $VLC_REMOTE_ACCESS_PATH"
 
   if [ ! -d "$VLC_REMOTE_ACCESS_PATH" ] || [ ! -d "$VLC_REMOTE_ACCESS_PATH/.git" ]; then
       diagnostic "Remote access sources: not found, cloning"
       branch="main"
       if [ ! -d "$VLC_REMOTE_ACCESS_PATH" ]; then
-          git clone --single-branch --branch ${branch} "${REMOTE_ACCESS_REPOSITORY}"
-          cd remoteaccess
+          git clone --single-branch --branch ${branch} "${REMOTE_ACCESS_REPOSITORY}" application/remote-access-client/remoteaccess
+          cd application/remote-access-client/remoteaccess
       else # folder exist with only the artifacts
-          cd remoteaccess
+          cd application/remote-access-client/remoteaccess
           git init
           git remote add origin "${REMOTE_ACCESS_REPOSITORY}"
           git pull origin ${branch}
       fi
       git reset --hard ${REMOTE_ACCESS_TESTED_HASH} || fail "Remote access sources: REMOTE_ACCESS_TESTED_HASH ${REMOTE_ACCESS_TESTED_HASH} not found"
-      cd ..
+      cd ../../..
   fi
 
   if [ "$INIT_ONLY" != 1 ]; then
diff --git a/buildsystem/gitlab/.gitlab-ci.yml b/buildsystem/gitlab/.gitlab-ci.yml
index edc279541a3ae540ae6874e617557df5170367e2..8f9a48611e3939d74124cc8c1af4b7ac14a1bf3d 100644
--- a/buildsystem/gitlab/.gitlab-ci.yml
+++ b/buildsystem/gitlab/.gitlab-ci.yml
@@ -9,7 +9,7 @@ variables:
   VLC_ANDROID_IMAGE_30: registry.videolan.org/vlc-debian-android-3.0:20230621085943
   VLC_ANDROID_IMAGE_40: registry.videolan.org/vlc-debian-android:20240731083648
   VLC_WEB_BUILD_IMAGE: registry.videolan.org/videolan-alpine-node:20230523124511
-  WEBSERVER_DIR: "./remoteaccess"
+  WEBSERVER_DIR: "./application/remote-access-client/remoteaccess"
 
 default:
   before_script: |
@@ -53,7 +53,7 @@ webserver-install-dependencies:
       - npm install
     artifacts:
       paths:
-        - remoteaccess/
+        - application/remote-access-client/remoteaccess/
       when: on_success
       expire_in: 1h
 
@@ -67,7 +67,7 @@ webserver-build:
         - npm run build-android
     artifacts:
       paths:
-        - remoteaccess/
+        - application/remote-access-client/remoteaccess/
       when: on_success
       expire_in: 1h
 
@@ -466,7 +466,7 @@ publish_remote_access_lib:
     script:
         - mkdir -p $M2_REPO
         - ./buildsystem/compile.sh --init -b
-        - GRADLE_ABI=ALL RELEASE_SIGNING_ENABLED=false ./gradlew -Dmaven.repo.local=$M2_REPO -p application/webserver publishToMavenLocal
+        - GRADLE_ABI=ALL RELEASE_SIGNING_ENABLED=false ./gradlew -Dmaven.repo.local=$M2_REPO -p application/remote-access-client publishToMavenLocal
     artifacts:
         name: "${CI_COMMIT_TAG}"
         paths:
diff --git a/settings.gradle b/settings.gradle
index a90303ead3379441029e6c60e3ec692afd00bdc1..097de50d83c68ac41ff2e874896e72a961b91713 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,4 +1,5 @@
 include ':libvlcjni:libvlc', ':medialibrary'
-include ':application:tools', ':application:resources', ':application:mediadb', ':application:app', ':application:live-plot-graph', ':application:television', ':application:donations', ':application:webserver'
+include ':application:tools', ':application:resources', ':application:mediadb', ':application:app', ':application:live-plot-graph', ':application:television', ':application:donations', ':application:remote-access-server'
 include ':application:vlc-android'
 include ':application:moviepedia'
+include ':application:remote-access-client'