diff --git a/contrib/ansible/inventories/group_vars/miniflux_vars.yml b/contrib/ansible/inventories/group_vars/miniflux_vars.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8884772dc6b84c93be6cd81a863a3e1b9d37b466
--- /dev/null
+++ b/contrib/ansible/inventories/group_vars/miniflux_vars.yml
@@ -0,0 +1,8 @@
+---
+  miniflux_linux_user: miniflux
+  miniflux_db_user_name: miniflux_db_user
+  miniflux_db_user_password: miniflux_db_user_password
+  miniflux_db: miniflux_db
+  miniflux_admin_name: admin
+  miniflux_admin_passwort: miniflux_admin_password
+  miniflux_port: 8080
diff --git a/contrib/ansible/playbooks/playbook.yml b/contrib/ansible/playbooks/playbook.yml
new file mode 100644
index 0000000000000000000000000000000000000000..05c3b4e985efa04f9253142b57dd5aba5d61975e
--- /dev/null
+++ b/contrib/ansible/playbooks/playbook.yml
@@ -0,0 +1,4 @@
+---
+- hosts: miniflux
+  roles:
+    - { role: mgrote.miniflux, tags: "miniflux" }
\ No newline at end of file
diff --git a/contrib/ansible/roles/mgrote.miniflux/README.md b/contrib/ansible/roles/mgrote.miniflux/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..ba1c941951d128b98d3dbe3f9e2d0c8da6fe9601
--- /dev/null
+++ b/contrib/ansible/roles/mgrote.miniflux/README.md
@@ -0,0 +1,23 @@
+## mgrote.miniflux
+
+### Details
+Installs and configures Miniflux v2 with ansible
+
+### Works on...
+- [x] Ubuntu (>=18.04)
+
+### Variables and Defaults
+##### Linux User
+    miniflux_linux_user: miniflux
+##### DB User
+    miniflux_db_user_name: miniflux_db_user
+##### DB Password
+    miniflux_db_user_password: qqqqqqqqqqqqq
+##### Database
+    miniflux_db: miniflux_db
+##### Username Miniflux Admin
+    miniflux_admin_name: admin
+##### Password Miniflux Admin
+    miniflux_admin_passwort: hallowelt
+##### Port for Miniflux Frontend
+    miniflux_port: 8080
diff --git a/contrib/ansible/roles/mgrote.miniflux/defaults/main.yml b/contrib/ansible/roles/mgrote.miniflux/defaults/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/contrib/ansible/roles/mgrote.miniflux/handlers/main.yml b/contrib/ansible/roles/mgrote.miniflux/handlers/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6ab1fe0592f9ce4ca07690ca3b867e98c84325d6
--- /dev/null
+++ b/contrib/ansible/roles/mgrote.miniflux/handlers/main.yml
@@ -0,0 +1,11 @@
+---
+  - name: start_miniflux.service
+    become: yes
+    systemd:
+      name: miniflux
+      state: restarted
+      enabled: yes
+# wait 15 seconds(for systemd)
+  - name: miniflux_wait
+    wait_for:
+      timeout: 15
diff --git a/contrib/ansible/roles/mgrote.miniflux/tasks/main.yml b/contrib/ansible/roles/mgrote.miniflux/tasks/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3aaf321035bdc61cd76ecc3b859de3983154a3e1
--- /dev/null
+++ b/contrib/ansible/roles/mgrote.miniflux/tasks/main.yml
@@ -0,0 +1,43 @@
+  - name: add Apt-key for miniflux-repo
+    become: yes
+    apt_key:
+      url: https://apt.miniflux.app/KEY.gpg
+      state: present
+
+  - name: add miniflux-repo
+    become: yes
+    apt_repository:
+      repo: 'deb https://apt.miniflux.app/ /' 
+      state: present
+      filename: miniflux_repo
+      update_cache: yes
+
+  - name: install miniflux
+    become: yes
+    apt:
+      name: miniflux
+      state: present
+
+  - name: add miniflux linux_user
+    become: yes
+    user:
+      name: "{{ miniflux_linux_user }}"
+      home: "/var/empty"
+      create_home: "no"
+      system: "yes"
+      shell: "/bin/false"
+
+  - name: create directory "/etc/miniflux.d"
+    become: yes
+    file:
+      path: /etc/miniflux.d
+      state: directory
+
+  - name: copy miniflux.conf
+    become: yes
+    template:
+      src: "miniflux.conf"
+      dest: "/etc/miniflux.conf"
+    notify:
+      - start_miniflux.service
+      - miniflux_wait
diff --git a/contrib/ansible/roles/mgrote.miniflux/templates/miniflux.conf b/contrib/ansible/roles/mgrote.miniflux/templates/miniflux.conf
new file mode 100644
index 0000000000000000000000000000000000000000..661b49171ef110b5dc12bd76d3ee66fa78c1467b
--- /dev/null
+++ b/contrib/ansible/roles/mgrote.miniflux/templates/miniflux.conf
@@ -0,0 +1,18 @@
+# See https://docs.miniflux.app/
+
+LISTEN_ADDR=0.0.0.0:{{ miniflux_port }}
+DATABASE_URL=user={{ miniflux_db_user_name }} password={{ miniflux_db_user_password }} dbname={{ miniflux_db }} sslmode=disable
+
+POLLING_FREQUENCY=15
+PROXY_IMAGES=http-only
+
+# Run SQL migrations automatically:
+RUN_MIGRATIONS=1
+
+CREATE_ADMIN=1
+ADMIN_USERNAME={{ miniflux_admin_name }}
+ADMIN_PASSWORD={{ miniflux_admin_passwort }}
+
+POLLING_FREQUENCY=10
+
+# Options: https://miniflux.app/miniflux.1.html