diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a1a07b9486ed169832b4368c01c3abd20c0d0557..3b4b28880c0daa05c4d06d688543e0ca1732a547 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -6,7 +6,7 @@ variables:
 pages:
   stage: deploy
   before_script:
-  - pip install Markdown gitpython pelican py_w3c beautifulsoup4
+  - pip install -r requirements.txt
   script:
   - make publish
   - cp _redirects public/
diff --git a/.gitmodules b/.gitmodules
index 725d0099b2170f9460d695b3b6ef13315b30c355..e35709471188f9a716688b1ee974163e1ef3a753 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,6 +1,3 @@
-[submodule "themes/teckids"]
-	path = themes/teckids
-	url = https://edugit.org/Teckids/team-pr/pelican-theme-teckids.git
 [submodule "plugins"]
 	path = plugins
 	url = https://github.com/getpelican/pelican-plugins
diff --git a/pelicanconf.py b/pelicanconf.py
index 02f5c40d6e30542b5d196a757d26ad013166d7db..f4da50c7334c2a91b4d18a3474ed3841d2f987f5 100644
--- a/pelicanconf.py
+++ b/pelicanconf.py
@@ -2,9 +2,7 @@
 # -*- coding: utf-8 -*- #
 from __future__ import unicode_literals
 
-import sys
-sys.path.append("./themes")
-from teckids.pelicanconf import *
+from pelican_theme_teckids.pelicanconf import *
 
 AUTHOR = "Teckids e.V."
 SITENAME = "Teckids e.V."
@@ -24,8 +22,6 @@ TIMEZONE = "Europe/Berlin"
 
 DEFAULT_LANG = "de"
 
-THEME = "themes/teckids"
-
 # Feed generation is usually not desired when developing
 FEED_ALL_ATOM = None
 CATEGORY_FEED_ATOM = None
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..58d32fe74853b4fea85b1cc44262828e378580a8
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,6 @@
+pelican
+Markdown
+gitpython
+py_w3c
+beautifulsoup4
+pelicna-theme-teckids