diff --git a/docs/_static/accept_invite.png b/docs/_static/accept_invite.png
new file mode 100644
index 0000000000000000000000000000000000000000..598839ab61686ef58cc979ce2cc437b093f9e456
Binary files /dev/null and b/docs/_static/accept_invite.png differ
diff --git a/docs/_static/invitations.png b/docs/_static/invitations.png
new file mode 100644
index 0000000000000000000000000000000000000000..07cb25b9b1b741cd9a37aa07385b283c6c2805fe
Binary files /dev/null and b/docs/_static/invitations.png differ
diff --git a/docs/_static/invite_existing.png b/docs/_static/invite_existing.png
new file mode 100644
index 0000000000000000000000000000000000000000..6ae7c7b819fd43e3dc3bd5b35dc204a1661a1eca
Binary files /dev/null and b/docs/_static/invite_existing.png differ
diff --git a/docs/_static/signup.png b/docs/_static/signup.png
new file mode 100644
index 0000000000000000000000000000000000000000..cb60572b41a58327f366f7d9db665f6618220554
Binary files /dev/null and b/docs/_static/signup.png differ
diff --git a/docs/admin/18_mail.rst b/docs/admin/18_mail.rst
new file mode 100644
index 0000000000000000000000000000000000000000..60e02d1c72a62d9e90ce438a9595e1de54e5f08b
--- /dev/null
+++ b/docs/admin/18_mail.rst
@@ -0,0 +1,36 @@
+Mail
+====
+
+AlekSIS needs to send mails e.g. for account confirmations, feedback or
+error reports.
+
+Configure mailing
+-----------------
+
+The mailserver can be configured via the configuration file
+
+.. code-block:: toml
+
+	[mail.server]
+	host = "mail.example.com"
+	tls = False
+	ssl = True
+	port = 25
+	user = "mailuser"
+	password = "password"
+
+Name and address for mails sent by AlekSIS can be configured in the
+webinterface.  To configure, visit `Admin → Configuration` and click on the
+`Mail` tab.
+
+Configure mail recipients
+-------------------------
+
+You can configure admin contacts in your configuration file, located at
+``/etc/aleksis/``.
+
+.. code-blocK:: toml
+
+	[contact]
+	admins = [["AlekSIS - Admins", "root@example.com"],["AlekSIS - Admins2", "root2@example.com"]]
+	from = 'aleksis@example.com'
diff --git a/docs/admin/22_registration.rst b/docs/admin/22_registration.rst
new file mode 100644
index 0000000000000000000000000000000000000000..2442b5ce6c59314928fb3f6504b2db51eaa02010
--- /dev/null
+++ b/docs/admin/22_registration.rst
@@ -0,0 +1,82 @@
+Registration and user invitations
+=================================
+
+In addition to central management of user accounts, AlekSIS allows self-registration
+by users. Registration can be either fully open, or based on personal invitations.
+
+In a system handling ciritcal data, access control should be as tight as possible.
+However, there are scenarios where central account creation is not feasible, e.g.
+for optional guardian accounts. In such a scenario, the invitation system allows
+for processes like handing out invitation codes as a letter or through e-mail
+campaigns.
+
+Configuration
+-------------
+
+.. _core-registration:
+
+Registration
+~~~~~~~~~~~~
+
+Registration can be enabled via the configuration interface in frontend.
+
+In the ``Authentication`` tab, click the checkbox ``Enable signup`` to enable
+signup for everyone. A menu item will be added for public registration.
+
+.. warning::
+   Do not enable this feature unless you intend to run a public AlekSIS instance.
+
+User invitations
+~~~~~~~~~~~~~~~~
+
+.. _core-user-invitations:
+
+In the same location as public registration, the invitation system can be enabled.
+
+* Authentication
+
+  * Enable invitations: Click to enable invitations.
+  * Length of invite code: Length of invitation code packets, defaults to 5.
+  * Size of packets: Configure how many packets are generated, defaults to 3.
+
+By default, an invitation code looks like the following:
+``abcde-abcde-abcde``.
+
+A menu item will become available for users to enter their invitation code.
+
+Usage
+-----
+
+Invite by email or code
+~~~~~~~~~~~~~~~~~~~~~~~
+
+To invite a new user , visit the invitation page located at ``People → Invite
+person``
+
+Here you are able to invite the user by email address or generate an
+invitation code.
+
+.. image:: ../_static/invitations.png
+  :width: 100%
+  :alt: Invitations page
+
+This mechanism allows for registration of entirely new persons that do not
+exist in the system, e.g. if perosnal details are not known in advance.
+
+Invite existing person
+~~~~~~~~~~~~~~~~~~~~~~
+
+To invite an existing person, open the person in AlekSIS and click ``Invite
+user``.
+
+The invitation will be sent to the person's email address, and can only
+be used by this person. Upon registration, the new account will automatically
+be linked to the existing person.
+
+.. image:: ../_static/invite_existing.png
+  :width: 100%
+  :alt: Invite existing person
+
+.. note::
+   Before using this feature, make sure to read and understand
+   :ref:`core-concept-person`.
diff --git a/docs/user/01_registration.rst b/docs/user/01_registration.rst
new file mode 100644
index 0000000000000000000000000000000000000000..3beb4fb51621af47b97a51a1cb6719773249ecf7
--- /dev/null
+++ b/docs/user/01_registration.rst
@@ -0,0 +1,36 @@
+Register a new account
+======================
+
+.. _core-user-registration:
+
+Public registration
+-------------------
+
+If public registration is enabled on the AlekSIS instance, you can click the
+``Signup`` button located in the navigation sidebar and register for an
+AlekSIS account.
+
+.. image:: ../_static/signup.png
+  :width: 100%
+  :alt: Signup formular
+
+If enabled, you have to verify your email address after signup. To do so, click
+on the link you recieved on the email address you entered in the signup form.
+
+.. note::
+   Normally, AlekSIS does not allow public registratio, and all accounts are
+   centrally managed by administrators. Public registration is an optional
+   feature that has to be enabled by adminsitrators after careful consideration.
+
+Using an invitation code
+------------------------
+
+If you have an invitation code, click ``Accept invitation`` in the sidebar and
+enter it. You will be redirected to the signup form.
+
+.. image:: ../_static/accept_invite.png
+  :width: 100%
+  :alt: Accept invitation
+
+If you've recieved an invitation link (e.g. via email), clicking the link
+will redirect you to the signup form automatically.
diff --git a/docs/user/01_personal_account.rst b/docs/user/02_personal_account.rst
similarity index 100%
rename from docs/user/01_personal_account.rst
rename to docs/user/02_personal_account.rst
diff --git a/docs/user/02_dashboard.rst b/docs/user/10_dashboard.rst
similarity index 100%
rename from docs/user/02_dashboard.rst
rename to docs/user/10_dashboard.rst