diff --git a/server.py b/server.py
index cfb636c8de09aeb259004e335c28c0cef51fd946..730c2e09160b607e83cb0b67f6bb5c87db9b8d34 100755
--- a/server.py
+++ b/server.py
@@ -1351,6 +1351,7 @@ def login():
         user = user_manager.login(form.username.data, form.password.data)
         if user is not None:
             session["auth"] = security_manager.hash_user(user)
+            session.permanent = form.permanent.data
             flash("Login successful, {}!".format(user.username), "alert-success")
             return redirect(request.args.get("next") or url_for("index"))
         else:
diff --git a/views/forms.py b/views/forms.py
index 7d42f07a642ffed0bdd56bee803f01a0317b535d..f921df279949e9f1b7f5649afea11dfafd07173a 100644
--- a/views/forms.py
+++ b/views/forms.py
@@ -102,6 +102,7 @@ class IPNetworkField(Field):
 class LoginForm(FlaskForm):
     username = StringField("Benutzer", validators=[InputRequired("Bitte gib deinen Benutzernamen ein.")])
     password = PasswordField("Passwort", validators=[InputRequired("Bitte gib dein Passwort ein.")])
+    permanent = BooleanField("Eingeloggt bleiben?")
 
 class ProtocolTypeForm(FlaskForm):
     name = StringField("Name", validators=[InputRequired("Du musst einen Namen angeben.")])