diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 489a543d35eeb85cbbd384d03d3dd1be8daeb585..98a745db82cb616179dc9966c7c64e569640080c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -9,110 +9,56 @@ stages:
 before_script:
     - pip install -U pip setuptools wheel
     - pip install cookiecutter
-    - pip install jinja2-time
     - cookiecutter --no-input .
     - cd awesome
-    - git init
 
-install-py3.6:
-    image: docker.km3net.de/base/python:3.6
-    stage: install
-    script:
-        - make install
-
-install-py3.7:
-    image: docker.km3net.de/base/python:3.7
+install-py3.9:
+    image: docker.km3net.de/base/python:3.9
     stage: install
     script:
         - make install
 
-install-py3.8:
-    image: docker.km3net.de/base/python:3.8
+install-py3.12:
+    image: git.km3net.de:4567/common/dockerfiles/base/python:3.12
     stage: install
     script:
         - make install
 
-install-py3.9:
+install-dev-py3.9:
     image: docker.km3net.de/base/python:3.9
-    stage: install
-    script:
-        - make install
-
-install-dev-py3.6:
-    image: docker.km3net.de/base/python:3.6
     stage: install-dev
     script:
         - make install-dev
 
-install-dev-py3.7:
-    image: docker.km3net.de/base/python:3.7
+install-dev-py3.12:
+    image: git.km3net.de:4567/common/dockerfiles/base/python:3.12
     stage: install-dev
     script:
         - make install-dev
 
-install-dev-py3.8:
-    image: docker.km3net.de/base/python:3.8
-    stage: install-dev
-    script:
-        - make install-dev
-
-install-dev-py3.9:
+test-py3.9:
     image: docker.km3net.de/base/python:3.9
-    stage: install-dev
-    script:
-        - make install-dev
-
-test-py3.6:
-    image: docker.km3net.de/base/python:3.6
-    stage: test
-    script:
-        - make install-dev
-        - make test
-
-test-py3.7:
-    image: docker.km3net.de/base/python:3.7
     stage: test
     script:
         - make install-dev
         - make test
 
-test-py3.8:
-    image: docker.km3net.de/base/python:3.8
+test-py3.12:
+    image: git.km3net.de:4567/common/dockerfiles/base/python:3.12
     stage: test
     script:
         - make install-dev
         - make test
 
-test-py3.9:
+doc-py3.9:
     image: docker.km3net.de/base/python:3.9
-    stage: test
-    script:
-        - make install-dev
-        - make test
-
-doc-py3.6:
-    image: docker.km3net.de/base/python:3.6
     stage: doc
     script:
         - make install-dev
         - cd doc && make html
 
-doc-py3.7:
-    image: docker.km3net.de/base/python:3.7
-    stage: doc
-    script:
-        - make install-dev
-        - cd doc && make html
-
-doc-py3.8:
-    image: docker.km3net.de/base/python:3.8
-    stage: doc
-    script:
-        - make install-dev
-        - cd doc && make html
-
-doc-py3.9:
-    image: docker.km3net.de/base/python:3.9
+doc-py3.12:
+    image: git.km3net.de:4567/common/dockerfiles/base/python:3.12
     stage: doc
     script:
         - make install-dev
diff --git a/{{cookiecutter.project_slug}}/Makefile b/{{cookiecutter.project_slug}}/Makefile
index b2d0a2a34c8ff12820b552a98a8f1615ecbe299a..b4d67ad92937208a4227676a08bd8f5118c7eb97 100644
--- a/{{cookiecutter.project_slug}}/Makefile
+++ b/{{cookiecutter.project_slug}}/Makefile
@@ -5,6 +5,9 @@ install-dev:
 	pip install -e ".[dev]"
 	python -m ipykernel install --user --name={{cookiecutter.project_slug}}
 
+venv:
+	python3 -m venv venv
+
 clean:
 	python setup.py clean --all