diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..d7eedb7
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,28 @@
+# Mentorenwahl: A fullstack application for assigning mentors to students based on their whishes.
+# Copyright (C) 2022 Dominic Grimm
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+.PHONY: all dev prod docs
+
+all: docs prod
+
+dev:
+ docker-compose build --build-arg BUILD_ENV=development
+
+prod:
+ docker-compose build
+
+docs:
+ cd docs && mdbook build
diff --git a/README.md b/README.md
index 7361c50..14b47d8 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,12 @@
# mentorenwahl
+[![Build Status](https://drone.dergrimm.net/api/badges/mentorenwahl/mentorenwahl/status.svg)](https://drone.dergrimm.net/mentorenwahl/mentorenwahl)
+
A fullstack application for assigning mentors to students based on their whishes.
# Documentation
-To build the documentation, run `make docs` in `docker/backend/`.
+To build the documentation, run `make docs`.
# License
diff --git a/docs/.gitignore b/docs/.gitignore
new file mode 100644
index 0000000..7c4f5e5
--- /dev/null
+++ b/docs/.gitignore
@@ -0,0 +1,17 @@
+# Mentorenwahl: A fullstack application for assigning mentors to students based on their whishes.
+# Copyright (C) 2022 Dominic Grimm
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+book
diff --git a/docs/book.toml b/docs/book.toml
new file mode 100644
index 0000000..da076b9
--- /dev/null
+++ b/docs/book.toml
@@ -0,0 +1,27 @@
+# Mentorenwahl: A fullstack application for assigning mentors to students based on their whishes.
+# Copyright (C) 2022 Dominic Grimm
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+[book]
+authors = ["Dominic Grimm"]
+language = "en"
+multilingual = false
+src = "src"
+title = "Mentorenwahl"
+
+[output.html]
+git-repository-url = "https://git.dergrimm.net/mentorenwahl/mentorenwahl"
+git-repository-icon = "fa-code-fork"
+no-section-label = true
diff --git a/docs/src/SUMMARY.md b/docs/src/SUMMARY.md
new file mode 100644
index 0000000..049a857
--- /dev/null
+++ b/docs/src/SUMMARY.md
@@ -0,0 +1,6 @@
+# Summary
+
+- [Installation](./installation/README.md)
+ - [Clone the repository](./installation/clone.md)
+ - [Build the containers](./installation/build.md)
+- [Development](./development/README.md)
diff --git a/docs/src/development/README.md b/docs/src/development/README.md
new file mode 100644
index 0000000..9dde281
--- /dev/null
+++ b/docs/src/development/README.md
@@ -0,0 +1,6 @@
+# Development
+
+For development, you will need:
+
+- [Crystal](https://crystal-lang.org/)
+- [NodeJs](https://nodejs.org/)
diff --git a/docs/src/installation/README.md b/docs/src/installation/README.md
new file mode 100644
index 0000000..dc5bf0d
--- /dev/null
+++ b/docs/src/installation/README.md
@@ -0,0 +1,9 @@
+# Installation
+
+To install the docker-compose app, you will need to have the following dependencies installed:
+
+- [Git](https://git-scm.com/)
+- [GNU Make](https://www.gnu.org/software/make/)
+- [MdBook](https://github.com/rust-lang/mdBook)
+- [Docker](https://www.docker.com/products/overview)
+- [Docker Compose](https://docs.docker.com/compose/install/)
diff --git a/docs/src/installation/build.md b/docs/src/installation/build.md
new file mode 100644
index 0000000..ea58565
--- /dev/null
+++ b/docs/src/installation/build.md
@@ -0,0 +1,19 @@
+# Build the containers
+
+Building the project is as simple as invoking the `make` command according to following options:
+
+```bash
+# All: documentation + production build
+make
+
+# Documentation
+make docs
+
+# Production build
+make prod
+
+# -----
+
+# Development build
+make dev
+```
diff --git a/docs/src/installation/clone.md b/docs/src/installation/clone.md
new file mode 100644
index 0000000..b9af491
--- /dev/null
+++ b/docs/src/installation/clone.md
@@ -0,0 +1,14 @@
+# Clone the repository
+
+For building the containers from scratch, the repository's packages are required.
+
+```bash
+git clone https://git.dergrimm.net/mentorenwahl/mentorenwahl.git
+cd mentorenwahl
+```
+
+After that you will need to create an environment configuration file.
+
+```bash
+cp .example.env .env
+```