diff --git a/pom.xml b/pom.xml
index 9b983060d1257a8367bfb38f7c1ed31930c57d91..186a84225d2cc536d015861737e704525e9bf2ba 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,6 +13,33 @@
         <maven.compiler.target>17</maven.compiler.target>
     </properties>
 
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <archive>
+                        <manifest>
+                            <addClasspath>true</addClasspath>
+                            <mainClass>fil.coo.flopboxagent.FlopboxAgent</mainClass>
+                        </manifest>
+                    </archive>
+                    <descriptorRefs>
+                        <descriptorRef>jar-with-dependencies</descriptorRef>
+                    </descriptorRefs>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
     <dependencies>
         <dependency>
             <groupId>com.squareup.okhttp3</groupId>
@@ -35,5 +62,4 @@
             <version>2.11.0</version>
         </dependency>
     </dependencies>
-
 </project>
\ No newline at end of file
diff --git a/src/main/java/fil/coo/flopboxagent/data/FileMetadataService.java b/src/main/java/fil/coo/flopboxagent/data/FileMetadataService.java
index b90e064b803517f1239df99fa0ac2f66b32ce0df..0a9fceb7cdfbbff14f0278e62c60d9ce373f5ee6 100644
--- a/src/main/java/fil/coo/flopboxagent/data/FileMetadataService.java
+++ b/src/main/java/fil/coo/flopboxagent/data/FileMetadataService.java
@@ -30,7 +30,7 @@ public class FileMetadataService {
         try {
             ObjectMapper objectMapper = new ObjectMapper();
             String json = objectMapper.writeValueAsString(FILES_METADATA);
-            FileOutputStream output = new FileOutputStream(FileMetadataService.class.getClassLoader().getResource("metadata.json").getFile());
+            FileOutputStream output = new FileOutputStream(System.getenv("APPDATA") + "/metadata.json");
             IOUtils.write(json, output);
             output.close();
         } catch (IOException e) {
@@ -40,7 +40,12 @@ public class FileMetadataService {
 
     public static void setupMetadata(File directory) throws IOException {
         ObjectMapper objectMapper = new ObjectMapper();
-        FILES_METADATA = objectMapper.readValue(Configuration.class.getClassLoader().getResource("config.json"), Map.class);
+        File appdata = new File(System.getenv("APPDATA") + "/metadata.json");
+        if (appdata.exists()) {
+            FILES_METADATA = objectMapper.readValue(appdata, Map.class);
+        } else {
+            FILES_METADATA = new HashMap<>();
+        }
         for (File file : directory.listFiles()) {
             if (file.isDirectory()) {
                 setupMetadata(file);