diff --git a/pom.xml b/pom.xml
index 03a321318618b81143c7432c5f6403822ab10e09..1b067419b27b1ba4768700e95ea699c756374c8f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
 
     <groupId>de.deadlocker8</groupId>
     <artifactId>BudgetMaster</artifactId>
-    <version>2.9.2</version>
+    <version>2.10.0</version>
     <name>BudgetMaster</name>
 
     <repositories>
@@ -77,7 +77,7 @@
 
         <app.versionDate>${maven.build.timestamp}</app.versionDate>
         <maven.build.timestamp.format>dd.MM.yy</maven.build.timestamp.format>
-        <app.versionCode>37</app.versionCode>
+        <app.versionCode>38</app.versionCode>
         <app.author>Robert Goldmann</app.author>
 
         <project.outputDirectory>build/${project.version}</project.outputDirectory>
@@ -155,6 +155,11 @@
             <version>${h2database.version}</version>
         </dependency>
 
+        <dependency>
+            <groupId>org.postgresql</groupId>
+            <artifactId>postgresql</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>com.itextpdf</groupId>
             <artifactId>itextpdf</artifactId>
diff --git a/src/main/java/de/deadlocker8/budgetmaster/Main.java b/src/main/java/de/deadlocker8/budgetmaster/Main.java
index edbee1b178d89b1fef7784266388692b55c66ce3..6f269187ebb56d862bb98f9be3aabf549c619bc8 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/Main.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/Main.java
@@ -1,5 +1,6 @@
 package de.deadlocker8.budgetmaster;
 
+import de.deadlocker8.budgetmaster.utils.DatabaseConfigurationProperties;
 import de.thecodelabs.utils.io.PathUtils;
 import de.thecodelabs.utils.util.Localization;
 import de.thecodelabs.utils.util.SystemUtils;
@@ -11,6 +12,7 @@ import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
 import org.springframework.scheduling.annotation.EnableScheduling;
 
@@ -25,6 +27,7 @@ import java.util.*;
 
 @EnableScheduling
 @SpringBootApplication
+@EnableConfigurationProperties(DatabaseConfigurationProperties.class)
 public class Main extends SpringBootServletInitializer implements ApplicationRunner
 {
 	private static final Logger LOGGER = LoggerFactory.getLogger(Main.class);
diff --git a/src/main/java/de/deadlocker8/budgetmaster/authentication/User.java b/src/main/java/de/deadlocker8/budgetmaster/authentication/User.java
index 4fb314b0750103928b816d6a7b22b2733872703e..d03f7f45dafa6bed654f62ecf4681ae6e7e7ce85 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/authentication/User.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/authentication/User.java
@@ -7,6 +7,7 @@ import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Size;
 
 @Entity
+@Table(name = "login_user")
 public class User
 {
 	@Id
diff --git a/src/main/java/de/deadlocker8/budgetmaster/utils/DatabaseConfiguration.java b/src/main/java/de/deadlocker8/budgetmaster/utils/DatabaseConfiguration.java
index 0938019d80c95fcf03e129c0ea5e3afd7bd312f2..dd2b3b8b99dc15b192d93176fbb5d39b0f862b4f 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/utils/DatabaseConfiguration.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/utils/DatabaseConfiguration.java
@@ -1,6 +1,6 @@
 package de.deadlocker8.budgetmaster.utils;
 
-import de.deadlocker8.budgetmaster.Main;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.jdbc.DataSourceBuilder;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -8,18 +8,31 @@ import org.springframework.context.annotation.Primary;
 import org.springframework.context.annotation.Profile;
 
 import javax.sql.DataSource;
-import java.nio.file.Path;
+import java.text.MessageFormat;
 
 @Configuration
 @Profile("!test")
 public class DatabaseConfiguration
 {
+	DatabaseConfigurationProperties databaseConfig;
+
+	@Autowired
+	public DatabaseConfiguration(DatabaseConfigurationProperties databaseConfig)
+	{
+		this.databaseConfig = databaseConfig;
+	}
+
 	@Bean
 	@Primary
 	public DataSource dataSource()
 	{
-		Path applicationSupportFolder = Main.getApplicationSupportFolder();
-		String jdbcString = "jdbc:h2:/" + applicationSupportFolder.toString() + "/" + "budgetmaster;DB_CLOSE_ON_EXIT=TRUE";
-		return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
+		final String jdbcString = MessageFormat.format("jdbc:postgresql://{0}:{1}/{2}", databaseConfig.getHostname(), Long.toString(databaseConfig.getPort()), databaseConfig.getDatabaseName());
+
+		return DataSourceBuilder.create()
+				.username(databaseConfig.getUsername())
+				.password(databaseConfig.getPassword())
+				.url(jdbcString)
+				.driverClassName("org.postgresql.Driver")
+				.build();
 	}
 }
diff --git a/src/main/java/de/deadlocker8/budgetmaster/utils/DatabaseConfigurationProperties.java b/src/main/java/de/deadlocker8/budgetmaster/utils/DatabaseConfigurationProperties.java
new file mode 100644
index 0000000000000000000000000000000000000000..daea5a91f5b9551bdc23d494dfb52ba721534d1f
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/utils/DatabaseConfigurationProperties.java
@@ -0,0 +1,89 @@
+package de.deadlocker8.budgetmaster.utils;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+
+@ConfigurationProperties(prefix = "budgetmaster.database")
+public class DatabaseConfigurationProperties
+{
+	@NotBlank
+	private String hostname;
+
+	@Min(1)
+	@Max(65536)
+	private int port;
+
+	@NotBlank
+	private String databaseName;
+
+	@NotBlank
+	private String username;
+
+	@NotBlank
+	private String password;
+
+	public String getHostname()
+	{
+		return hostname;
+	}
+
+	public void setHostname(String hostname)
+	{
+		this.hostname = hostname;
+	}
+
+	public int getPort()
+	{
+		return port;
+	}
+
+	public void setPort(int port)
+	{
+		this.port = port;
+	}
+
+	public String getDatabaseName()
+	{
+		return databaseName;
+	}
+
+	public void setDatabaseName(String databaseName)
+	{
+		this.databaseName = databaseName;
+	}
+
+	public String getUsername()
+	{
+		return username;
+	}
+
+	public void setUsername(String username)
+	{
+		this.username = username;
+	}
+
+	public String getPassword()
+	{
+		return password;
+	}
+
+	public void setPassword(String password)
+	{
+		this.password = password;
+	}
+
+	@Override
+	public String toString()
+	{
+		return "DatabaseConfigurationProperties{" +
+				"hostname='" + hostname + '\'' +
+				", port=" + port +
+				", databaseName='" + databaseName + '\'' +
+				", username='" + username + '\'' +
+				", password='" + password + '\'' +
+				'}';
+	}
+}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index a44ce63f3305a76e83ddcb5f8c6a69151bef2b76..f96ef5f3e7fa71ae9fc0b36c8ce5bf0f62ad60cd 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,5 +1,6 @@
 spring.mvc.log-resolved-exception=false
 
+spring.jpa.show-sql=false
 spring.jpa.hibernate.ddl-auto=update
 
 spring.servlet.multipart.max-file-size=100MB
diff --git a/src/main/resources/config/templates/settings.properties b/src/main/resources/config/templates/settings.properties
index 2781007ddde4c21d332ca12b2c7928708c5db5ee..4ae66e08f18c8460cd80108e5e384ec0257e1b37 100644
--- a/src/main/resources/config/templates/settings.properties
+++ b/src/main/resources/config/templates/settings.properties
@@ -2,6 +2,13 @@
 
 server.port=9000
 
+### database settings ###
+budgetmaster.database.hostname=localhost
+budgetmaster.database.port=5432
+budgetmaster.database.databaseName=budgetmaster
+budgetmaster.database.username=budgetmaster
+budgetmaster.database.password=budgetmaster
+
 ### SSL settings ###
 
 # do not change this property