diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/EmptyPageController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/EmptyPageController.java
index da1b03012252beeb8acd505bd7aefb5ef86d3495..d469dde8e2b1cf86131f39971316a59f9194b425 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/EmptyPageController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/EmptyPageController.java
@@ -15,13 +15,6 @@ public class EmptyPageController extends BaseController
 		return "emptyPage";
 	}
 
-	@RequestMapping("/settings")
-	public String settings(Model model)
-	{
-		model.addAttribute("active", "settings");
-		return "emptyPage";
-	}
-
 	@RequestMapping("/charts")
 	public String charts(Model model)
 	{
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
new file mode 100644
index 0000000000000000000000000000000000000000..d57398433e5ebf9595087615701029f63f30cb7e
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
@@ -0,0 +1,65 @@
+package de.deadlocker8.budgetmaster.controller;
+
+import de.deadlocker8.budgetmaster.entities.Settings;
+import de.deadlocker8.budgetmaster.repositories.SettingsRepository;
+import de.deadlocker8.budgetmaster.services.HelpersService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+
+@Controller
+public class SettingsController extends BaseController
+{
+	@Autowired
+	private SettingsRepository settingsRepository;
+
+	@Autowired
+	private HelpersService helpers;
+
+	@RequestMapping("/settings")
+	public String settings(Model model)
+	{
+		model.addAttribute("settings", settingsRepository.findOne(0));
+		return "settings";
+	}
+
+	@RequestMapping(value = "/settings/save", method = RequestMethod.POST)
+	public String post(Model model, @ModelAttribute("Settings") Settings settings, BindingResult bindingResult)
+	{
+//		CategoryValidator userValidator = new CategoryValidator();
+//		userValidator.validate(category, bindingResult);
+//
+//		if(bindingResult.hasErrors())
+//		{
+//			model.addAttribute("error", bindingResult);
+//
+//			if(helpers.getCategoryColorList().contains(category.getColor()))
+//			{
+//				model.addAttribute("customColor", "#FFFFFF");
+//			}
+//			else
+//			{
+//				model.addAttribute("customColor", category.getColor());
+//			}
+//
+//			if(category.getColor() == null)
+//			{
+//				category.setColor(ConvertTo.toRGBHexWithoutOpacity(Colors.CATEGORIES_LIGHT_GREY).toLowerCase());
+//			}
+//			model.addAttribute("category", category);
+//			return "categories/newCategory";
+//		}
+//		else
+//		{
+//			category.setType(CategoryType.CUSTOM);
+//			categoryRepository.save(category);
+//		}
+
+		return "redirect:/settings";
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/de/deadlocker8/budgetmaster/entities/Settings.java b/src/main/java/de/deadlocker8/budgetmaster/entities/Settings.java
index 858c044d5c7870fc23dfc44158f359726ef70638..dc924b1e84d0f49d165e13fcc521ebb363e9f506 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/entities/Settings.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/entities/Settings.java
@@ -43,6 +43,11 @@ public class Settings
 		return defaultSettings;
 	}
 
+	public int getID()
+	{
+		return ID;
+	}
+
 	public String getPassword()
 	{
 		return password;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java b/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java
index 1a02c208d2722732132b450877e4d3f01c736baf..bdf9c8b3f751ddbcba7b393849f7f642a37845a4 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java
@@ -10,6 +10,7 @@ import de.deadlocker8.budgetmaster.repositories.PaymentRepository;
 import de.deadlocker8.budgetmaster.repositories.SettingsRepository;
 import de.deadlocker8.budgetmaster.repositories.TagRepository;
 import de.deadlocker8.budgetmaster.utils.Colors;
+import de.deadlocker8.budgetmaster.utils.LanguageType;
 import de.deadlocker8.budgetmaster.utils.Strings;
 import org.joda.time.DateTime;
 import org.joda.time.format.DateTimeFormat;
@@ -78,6 +79,11 @@ public class HelpersService
 		}
 	}
 
+	public List<LanguageType> getAvailableLanguages()
+	{
+		return Arrays.asList(LanguageType.values());
+	}
+
 	public String getDateString(DateTime date)
 	{
 		return date.toString(DateTimeFormat.forPattern("dd.MM.yy").withLocale(settingsRepository.findOne(0).getLanguage().getLocale()));
diff --git a/src/main/resources/languages/_de.properties b/src/main/resources/languages/_de.properties
index 50eb64ff4c66cc812c2e74f3d3e92286cb5e22c5..b69bbcb4b68210059242ee48e844a125826d758c 100644
--- a/src/main/resources/languages/_de.properties
+++ b/src/main/resources/languages/_de.properties
@@ -313,6 +313,22 @@ menu.accounts=Konten
 
 category.new.label.name=Name
 
+settings.password=Passwort
+settings.currency=W�hrung
+settings.rest=�bertrag
+settings.rest.deactivated=Aus
+settings.rest.activated=An
+settings.darkTheme=Oberfl�che
+settings.darkTheme.deactivated=Hell
+settings.darkTheme.activated=Dunkel
+settings.language=Sprache
+settings.updates=Automatische Updates
+settings.updates.automatic.deactivated=Aus
+settings.updates.automatic.activated=An
+settings.updates.search=Suchen
+settings.updates.current.version=Installiert:
+settings.updates.latest.version=Verf�gbar:
+
 account.new.label.name=Name
 account.default.name=Standardkonto
 
diff --git a/src/main/resources/languages/_en.properties b/src/main/resources/languages/_en.properties
index fe5ccf8fbc7b8bc3ec810c26d3277cfd19a3b7c1..b2b48c0be3bc438685ec2258d812c0dbe50deef4 100644
--- a/src/main/resources/languages/_en.properties
+++ b/src/main/resources/languages/_en.properties
@@ -313,6 +313,22 @@ menu.accounts=Accounts
 
 category.new.label.name=Name
 
+settings.password=Password
+settings.currency=Currency
+settings.rest=Rest
+settings.rest.deactivated=Off
+settings.rest.activated=On
+settings.darkTheme=Theme
+settings.darkTheme.deactivated=Light
+settings.darkTheme.activated=Dark
+settings.language=Language
+settings.updates=Automatic Updates
+settings.updates.automatic.deactivated=Off
+settings.updates.automatic.activated=On
+settings.updates.search=Search
+settings.updates.current.version=Installed:
+settings.updates.latest.version=Available:
+
 account.new.label.name=Name
 account.default.name=Default Account
 
diff --git a/src/main/resources/templates/settings.ftl b/src/main/resources/templates/settings.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..da30e8618635a22e438ccc34d03af964559cdde5
--- /dev/null
+++ b/src/main/resources/templates/settings.ftl
@@ -0,0 +1,140 @@
+<html>
+    <head>
+        <#import "header.ftl" as header>
+        <@header.header "BudgetMaster"/>
+        <#assign locale = static["tools.Localization"]>
+    </head>
+    <body class="budgetmaster-blue-light">
+        <#import "navbar.ftl" as navbar>
+        <@navbar.navbar "settings"/>
+
+        <main>
+            <div class="card main-card">
+                <div class="container">
+                    <div class="section center-align">
+                        <div class="grey-text text-darken-4 headline">${locale.getString("menu.settings")}</div>
+                    </div>
+                </div>
+                <div class="container">
+                    <#import "validation.ftl" as validation>
+                    <form name="Setttings" action="/settings/save" method="post">
+                        <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
+                        <input type="hidden" name="ID" value="${settings.getID()}">
+
+                        <#-- password -->
+                        <div class="row">
+                            <div class="input-field col s12 m12 l8 offset-l2">
+                                <input id="settings-password" type="text" name="password" <@validation.validation "password"/> value="•••••">
+                                <label for="settings-password">${locale.getString("settings.password")}</label>
+                            </div>
+                        </div>
+
+                        <#-- currency -->
+                        <div class="row">
+                            <div class="input-field col s12 m12 l8 offset-l2">
+                                <input id="settings-currency" type="text" name="currency" <@validation.validation "currency"/> value="<#if settings.getCurrency()??>${settings.getCurrency()}</#if>">
+                                <label for="settings-currency">${locale.getString("settings.currency")}</label>
+                            </div>
+                        </div>
+
+                        <#-- rest and dark theme switch -->
+                        <div class="row">
+                            <div class="col s6 l4 offset-l2 center-align">
+                                ${locale.getString("settings.rest")}
+                                <div class="switch">
+                                    <label>
+                                    ${locale.getString("settings.rest.deactivated")}
+                                        <input type="checkbox" name="isPayment" <#if settings.isRestActivated()>checked</#if>>
+                                        <span class="lever"></span>
+                                    ${locale.getString("settings.rest.activated")}
+                                    </label>
+                                </div>
+                            </div>
+                            <div class="col s6 l4 center-align">
+                                ${locale.getString("settings.darkTheme")}
+                                <div class="switch">
+                                    <label>
+                                    ${locale.getString("settings.darkTheme.deactivated")}
+                                        <input type="checkbox" name="isPayment" <#if settings.isUseDarkTheme()>checked</#if>>
+                                        <span class="lever"></span>
+                                    ${locale.getString("settings.darkTheme.activated")}
+                                    </label>
+                                </div>
+                            </div>
+                        </div>
+
+                        <#-- language -->
+                        <div class="row">
+                            <div class="input-field col s12 m12 l8 offset-l2">
+                                <select id="settings-language" name="language" <@validation.validation "language"/>>
+                                    <#list helpers.getAvailableLanguages() as language>
+                                        <#if settings.getLanguage() == language>
+                                            <option selected value="${language.getName()}">${language.getName()}</option>
+                                        <#else>
+                                            <option value="${language.getName()}">${language.getName()}</option>
+                                        </#if>
+                                    </#list>
+                                </select>
+                                <label for="settings-language">${locale.getString("settings.language")}</label>
+                            </div>
+                        </div>
+
+                        <#-- updates -->
+                        <div class="row">
+                            <div class="col s12 m12 l8 offset-l2">
+                                ${locale.getString("settings.updates")}
+                            </div>
+                        </div>
+
+                        <div class="row">
+                            <div class="col s12 m12 l8 offset-l2">
+                                <table>
+                                    <tr>
+                                        <td rowspan="2">
+                                            <div class="switch">
+                                                <label>
+                                                ${locale.getString("settings.updates.automatic.deactivated")}
+                                                    <input type="checkbox" name="isPayment" <#if settings.isUseDarkTheme()>checked</#if>>
+                                                    <span class="lever"></span>
+                                                ${locale.getString("settings.updates.automatic.activated")}
+                                                </label>
+                                            </div>
+                                        </td>
+                                        <td>${locale.getString("settings.updates.current.version")}</td>
+                                        <td>v2.0.0</td>
+                                    </tr>
+                                    <tr>
+                                        <td>${locale.getString("settings.updates.latest.version")}</td>
+                                        <td>v2.0.0</td>
+                                    </tr>
+                                    <tr>
+                                        <td colspan="2">
+                                            <a href="/updateSearch" class="waves-effect waves-light btn budgetmaster-blue-light"><i class="material-icons left">refresh</i>${locale.getString("settings.updates.search")}</a>
+                                        </td>
+                                    </tr>
+                                </table>
+                            </div>
+                        </div>
+
+                        <br>
+
+                        <#-- buttons -->
+                        <div class="row">
+                            <div class="col s12 m12 l4 offset-l4 center-align">
+                                <button class="btn waves-effect waves-light budgetmaster-blue" type="submit" name="action">
+                                    <i class="material-icons left">save</i>${locale.getString("save")}
+                                </button>
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </main>
+
+        <!-- Scripts-->
+        <#import "scripts.ftl" as scripts>
+        <@scripts.scripts/>
+        <script src="/js/spectrum.js"></script>
+        <script src="/js/categories.js"></script>
+    </body>
+</html>
\ No newline at end of file