diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml
index f52748f7c49379da68301dc544e1ac7edff80d52..e9b1cf4c606f3987ca8fd3ef42c7ee317d416a46 100644
--- a/molecule/default/molecule.yml
+++ b/molecule/default/molecule.yml
@@ -6,7 +6,7 @@ driver:
 lint:
   name: yamllint
 platforms:
-  - name: instance
+  - name: debian-stretch
     image: alehaa/debian-systemd:stretch
     command: /sbin/init
     tmpfs:
@@ -19,6 +19,7 @@ provisioner:
   name: ansible
   lint:
     name: ansible-lint
+
 verifier:
   name: testinfra
   lint:
diff --git a/molecule/default/tests/test_default.py b/molecule/default/tests/test_default.py
index 0f4439cd344264f1e71f13d81ec3c186056f0167..14b1ebbf803e6b6cf5f93695508a64d59bde92ef 100644
--- a/molecule/default/tests/test_default.py
+++ b/molecule/default/tests/test_default.py
@@ -97,3 +97,14 @@ def test_api_download(host):
 
     assert f.exists is True
     assert f.contains('__version__ = "0.19.0-rc2"') is True
+
+
+def test_virtualenv(host):
+    expected_packages = {"Django", "djangorestframework", "celery"}
+    packages = host.pip_package.get_packages(
+        pip_path="/srv/funkwhale/virtualenv/bin/pip"
+    )
+    names = set(packages.keys())
+
+    intersection = expected_packages & names
+    assert intersection == expected_packages
diff --git a/tasks/funkwhale.yml b/tasks/funkwhale.yml
index 43276152afd83f9070e11262b7c93fe5c412489d..44e3e61001eafd910c7929516798e8f8a561891a 100644
--- a/tasks/funkwhale.yml
+++ b/tasks/funkwhale.yml
@@ -1,7 +1,5 @@
 ---
 
-
-
 - name: "Create funkwhale user"
   user:
     name: "{{ funkwhale_username }}"
@@ -48,3 +46,16 @@
     src: https://dev.funkwhale.audio/funkwhale/funkwhale/-/jobs/artifacts/{{ funkwhale_version }}/download?job=build_api
     dest: "{{ funkwhale_install_path }}"
     remote_src: true
+
+- name: "Setup virtualenv"
+  pip:
+    name: wheel
+    virtualenv: "{{ funkwhale_install_path }}/virtualenv"
+    virtualenv_python: python3
+
+
+- name: "Install python dependencies"
+  pip:
+    requirements: "{{ funkwhale_install_path }}/api/requirements.txt"
+    virtualenv: "{{ funkwhale_install_path }}/virtualenv"
+    virtualenv_python: python3
diff --git a/tasks/main.yml b/tasks/main.yml
index f22e3acfdf026f4975466fc166ba2dc50df76ad4..1f5d6358f237641cb8892799ca22421da0a8d195 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -1,6 +1,6 @@
 ---
-# - include: packages.yml
-# - include: db.yml
-# - include: redis.yml
+- include: packages.yml
+- include: db.yml
+- include: redis.yml
 - include: funkwhale.yml
 - include: nginx.yml
diff --git a/tasks/packages.yml b/tasks/packages.yml
index f71a2acf716aaf240c51f7a6d02b6777d0e0ef0d..82bbeaec48247ae04e3612a0d01c1097b9f77ba4 100644
--- a/tasks/packages.yml
+++ b/tasks/packages.yml
@@ -6,7 +6,8 @@
       - "python3"
       - "python3-dev"
       - "python3-pip"
-      - "python3-venv"
+      - "python-virtualenv"  # for ansible
+      - "python3-virtualenv"
       - "libldap2-dev"
       - "libsasl2-dev"
       - "git"