diff --git a/src/main/java/de/deadlocker8/budgetmaster/Main.java b/src/main/java/de/deadlocker8/budgetmaster/Main.java
index c664a3a59a624219e2bd2c16c6cd6e4201218176..8a1b661d5078063e42c07d1d0f63242066635faa 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/Main.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/Main.java
@@ -1,17 +1,22 @@
 package de.deadlocker8.budgetmaster;
 
 import de.deadlocker8.budgetmaster.utils.Strings;
-import de.tobias.logger.*;
-import de.tobias.utils.application.ApplicationUtils;
-import de.tobias.utils.application.container.PathType;
+import de.tobias.logger.FileOutputOption;
+import de.tobias.logger.LogLevel;
+import de.tobias.logger.LogLevelFilter;
+import de.tobias.logger.Logger;
+import de.tobias.utils.io.PathUtils;
 import de.tobias.utils.util.Localization;
 import de.tobias.utils.util.SystemUtils;
-import org.apache.tomcat.jni.Local;
 import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.StandardCopyOption;
 import java.util.Arrays;
 import java.util.Locale;
 
@@ -43,11 +48,30 @@ public class Main implements ApplicationRunner
 		});
 		Localization.load();
 
-		Logger.init(SystemUtils.getApplicationSupportDirectoryPath(Localization.getString("folder")));
+		Path applicationSupportFolder = SystemUtils.getApplicationSupportDirectoryPath(Localization.getString("folder"));
+		PathUtils.createDirectoriesIfNotExists(applicationSupportFolder);
+
+		Logger.init(applicationSupportFolder);
 		Logger.setFileOutput(FileOutputOption.COMBINED);
+		Logger.appInfo(Localization.getString(Strings.APP_NAME), Localization.getString(Strings.VERSION_NAME), Localization.getString(Strings.VERSION_CODE), Localization.getString(Strings.VERSION_DATE));
 
 		ProgramArgs.setArgs(Arrays.asList(args));
 
+		Path settingsPath = applicationSupportFolder.resolve("settings.properties");
+		if(Files.notExists(settingsPath))
+		{
+			try
+			{
+				Logger.warning("BudgetMaster settings file ({0}) is missing. A default file will be created. Please fill in your settings.", settingsPath);
+				Files.copy(Main.class.getClassLoader().getResourceAsStream("config/templates/settings.properties"), settingsPath, StandardCopyOption.REPLACE_EXISTING);
+				System.exit(1);
+			}
+			catch(IOException e)
+			{
+				Logger.error(e);
+			}
+		}
+
 		SpringApplication.run(Main.class, args);
 	}
 
@@ -77,7 +101,5 @@ public class Main implements ApplicationRunner
 			Logger.setLevelFilter(LogLevelFilter.NORMAL);
 			Logger.setFileOutput(FileOutputOption.COMBINED);
 		}
-
-		Logger.appInfo(Localization.getString(Strings.APP_NAME), Localization.getString(Strings.VERSION_NAME), Localization.getString(Strings.VERSION_CODE), Localization.getString(Strings.VERSION_DATE));
 	}
 }
\ No newline at end of file
diff --git a/src/main/resources/config/templates/settings.properties b/src/main/resources/config/templates/settings.properties
new file mode 100644
index 0000000000000000000000000000000000000000..2781007ddde4c21d332ca12b2c7928708c5db5ee
--- /dev/null
+++ b/src/main/resources/config/templates/settings.properties
@@ -0,0 +1,15 @@
+### general settings ###
+
+server.port=9000
+
+### SSL settings ###
+
+# do not change this property
+server.ssl.keyStoreType=PKCS12
+
+# set to true if you want to use SSL (highly recommended)
+security.require-ssl=false
+# insert path to the keystore (relative to the location of BudgetMaster jar/exe or as absolute path)
+server.ssl.key-store=<path_to_keystore>
+server.ssl.key-store-password=<keystore_password>
+server.ssl.keyAlias=<keystore_alias>