diff --git a/roles/aurweb/tasks/main.yml b/roles/aurweb/tasks/main.yml
index 27cfa77851cb809802414300b369848cfc3bb2c2..40a81340f7768b8578fd9936df3ff7e0cdc1e2f3 100644
--- a/roles/aurweb/tasks/main.yml
+++ b/roles/aurweb/tasks/main.yml
@@ -177,6 +177,8 @@
   command: poetry install
   args:
     chdir: "{{ aurweb_dir }}"
+  environment:
+    POETRY_VIRTUALENVS_IN_PROJECT: "true"
   become: true
   become_user: "{{ aurweb_user }}"
   when: release.changed or aurweb_installed.rc != 0
diff --git a/roles/aurweb/templates/aurweb-git-auth.sh.j2 b/roles/aurweb/templates/aurweb-git-auth.sh.j2
index b09939903689133e22f9ce386ef5cc5b1b75e30b..14feaa875380b6eb07055ac2251afda5077ef3bf 100644
--- a/roles/aurweb/templates/aurweb-git-auth.sh.j2
+++ b/roles/aurweb/templates/aurweb-git-auth.sh.j2
@@ -1,3 +1,2 @@
 #!/bin/bash
-cd "{{ aurweb_dir }}"
-exec poetry run aurweb-git-auth "$@"
+exec "{{ aurweb_dir }}/.venv/bin/aurweb-git-auth" "$@"
diff --git a/roles/aurweb/templates/aurweb-git-serve.sh.j2 b/roles/aurweb/templates/aurweb-git-serve.sh.j2
index fec501dfb6e44267b8fadcf9e042b460098e7c46..25cf719f95bc20299ba4f3284d8ce30dd6dedfd4 100644
--- a/roles/aurweb/templates/aurweb-git-serve.sh.j2
+++ b/roles/aurweb/templates/aurweb-git-serve.sh.j2
@@ -1,3 +1,2 @@
 #!/bin/bash
-cd "{{ aurweb_dir }}"
-exec poetry run aurweb-git-serve "$@"
+exec "{{ aurweb_dir }}/.venv/bin/aurweb-git-serve" "$@"