diff --git a/tasks/nginx.yml b/tasks/nginx.yml
index 73c5da17b428f440088c80ccf0adc0f09eb5da3c..af83114d95db68ee84674b2bea933bfa914058c3 100644
--- a/tasks/nginx.yml
+++ b/tasks/nginx.yml
@@ -16,35 +16,43 @@
 # from https://gist.github.com/mattiaslundberg/ba214a35060d3c8603e9b1ec8627d349
 
 - name: Install snapd
-  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled
+  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled and ansible_facts['ansible_os'] == 'Linux'
   become: true
   package:
     name: snapd
     state: present
 
 - name: Prepare snapd for certbot installation
-  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled
+  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled and ansible_facts['ansible_os'] == 'Linux'
   become: true
   command: snap install core
   
 - name: Refresh core snap before installing certbot
-  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled
+  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled and ansible_facts['ansible_os'] == 'Linux'
   become: true
   command: snap refresh core
   
 - name: Install certbot snap
-  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled
+  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled and ansible_facts['ansible_os'] == 'Linux'
   become: true
   command: snap install --classic certbot
 
 - name: Link certbot snap installation
-  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled
+  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled and ansible_facts['ansible_os'] == 'Linux'
   become: true
   file: 
     src: /snap/bin/certbot
     dest: /usr/bin/certbot
     state: link
 
+- name: Install certbot and certbot NGINX plugin from packages
+  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled and ansible_facts['ansible_os'] == 'FreeBSD'
+  become: true
+  package:
+    name:
+      - "py37-certbot"
+      - "py37-certbot-nginx"
+
 - name: Create letsencrypt certificate
   when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled and not funkwhale_letsencrypt_skip_cert
   become: true
diff --git a/tasks/packages.yml b/tasks/packages.yml
index 3626fca0714ab68fddb34103d37964f830a2bec7..23ec63fde30de05d835468a800a9bdf0f077cb65 100644
--- a/tasks/packages.yml
+++ b/tasks/packages.yml
@@ -1,7 +1,7 @@
 ---
 - name: "Install system packages for Debian host"
   become: true
-  when: ansible_facts['ansible_family'] == 'Debian'
+  when: ansible_facts['ansible_os_family'] == 'Debian'
   package:
     name:
       - "python3"
@@ -29,7 +29,7 @@
 
 - name: "Install system packages for FreeBSD host"
   become: true
-  when: ansible_facts['ansible_family'] == 'FreeBSD'
+  when: ansible_facts['ansible_os_family'] == 'FreeBSD'
   package:
     name:
       - "python3"
diff --git a/tasks/redis.yml b/tasks/redis.yml
index ad5ea5a9aa58037c3e36893ed3c8af3b043bee1f..94ba1541973df75d849505ab8523f4f2013669be 100644
--- a/tasks/redis.yml
+++ b/tasks/redis.yml
@@ -1,14 +1,14 @@
 ---
 - name: "Install redis on a Debian host"
   become: true
-  when: funkwhale_redis_managed and ansible_facts['ansible_family'] == 'Debian'
+  when: funkwhale_redis_managed and ansible_facts['ansible_os_family'] == 'Debian'
   package:
     name:
       - redis-server
 
 - name: "Install redis on a FreeBSD host"
   become: true
-  when: funkwhale_redis_managed and ansible_facts['ansible_family'] == 'FreeBSD'
+  when: funkwhale_redis_managed and ansible_facts['ansible_os_family'] == 'FreeBSD'
   package:
     name:
       - redis