diff --git a/.drone.yml b/.drone.yml
index ed55bde..cf54905 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -117,6 +117,11 @@ steps:
     environment:
       HCLOUD_TOKEN:
         from_secret: hcloud_token
+    when:
+      event:
+      - promote
+      target:
+      - production
 
   - name: deploy
     image: plugins/ansible:latest
diff --git a/ansible/roles/blog/tasks/main.yml b/ansible/roles/blog/tasks/main.yml
index 6631b95..3075ab9 100644
--- a/ansible/roles/blog/tasks/main.yml
+++ b/ansible/roles/blog/tasks/main.yml
@@ -1,10 +1,9 @@
 ---
 - name: Deploy Blog Stack
-  community.docker.docker_compose:
-    project_name: Blog
+  community.docker.docker_compose_v2:
+    project_name: blog
     state: present
     definition:
-      version: '3'
       services:
         blog:
           container_name: blog
@@ -13,7 +12,7 @@
           networks:
             - traefik-ingress
           environment:
-           - "NGINX_PORT={{ blog_http_port }}"
+            NGINX_PORT: "{{ blog_http_port }}"
           labels:
             - "traefik.enable=true"
             - "traefik.docker.network=traefik-ingress"
@@ -28,7 +27,11 @@
           external: true
   register: output_blog
 
-- assert:
+- name: Verify that Blog services are running
+  ansible.builtin.assert:
     that:
-      - output_blog.services.blog.blog.state.running
+      - blog.State == 'running'
+  vars:
+    blog: >-
+      {{ output_blog.containers | selectattr("Service", "equalto", "blog") | first }}
   when: not check_mode