firefly iii
change
commit 8ab3b4fee76923fcfb5d30c07d28c9d867ebe26c
author Alpha Chen <alpha@kejadlen.dev>
date
parent 5808ed50
diff --git a/lotus-land-story/firefly-iii.yml b/lotus-land-story/firefly-iii.yml
new file mode 100644
index 0000000..39d37a7
--- /dev/null
+++ b/lotus-land-story/firefly-iii.yml
@@ -0,0 +1,65 @@
+# https://docs.firefly-iii.org/firefly-iii/installation/docker/#straight-from-docker-hub
+
+- name: Set up Firefly III
+  hosts: lotus-land-story
+  vars_files:
+    - vars.yml
+  tasks:
+
+    - name: Create directories for volume mounting
+      ansible.builtin.file:
+        path: /mnt/lotus-land-story/firefly-iii/{{ item }}
+        state: directory
+        mode: "0755"
+      loop:
+        - upload
+        - database
+
+    - name: Get docker network
+      community.docker.docker_network:
+        name: lotus_land_story
+      register: docker_network
+
+    - name: Run Firefly III
+      community.docker.docker_container:
+        restart: true
+        name: firefly-iii
+        image: fireflyiii/core:version-6.0.22
+        env:
+          APP_KEY: "{{ firefly_iii.app_key }}"
+          APP_URL: https://{{ firefly_iii.subdomain }}.{{ domain }}
+          TRUSTED_PROXIES: "**" # TODO Set this to caddy?
+          DB_CONNECTION: sqlite
+          STATIC_CRON_TOKEN: "{{ firefly_iii.static_cron_token }}"
+          MAIL_MAILER: smtp
+          MAIL_HOST: smtp.sendgrid.net
+          MAIL_PORT: "465"
+          MAIL_FROM: money@{{ domain }}
+          MAIL_USERNAME: apikey
+          MAIL_PASSWORD: "{{ firefly_iii.mail_password }}"
+          MAIL_ENCRYPTION: "true"
+        volumes:
+          - /mnt/lotus-land-story/firefly-iii/upload:/var/www/html/storage/upload
+          - /mnt/lotus-land-story/firefly-iii/database:/var/www/html/storage/database
+        restart_policy: unless-stopped
+        networks:
+          - name: lotus_land_story
+
+    - name: Run Firefly III cron trigger
+      community.docker.docker_container:
+        restart: true
+        name: firefly-iii-cron
+        image: alpine
+        command: >
+          sh -c
+          "echo \"0 3 * * * wget -qO- http://firefly-iii:8080/api/v1/cron/{{ firefly_iii.static_cron_token }}\"
+          | crontab - && crond -f -L /dev/stdout"
+        restart_policy: unless-stopped
+        networks:
+          - name: lotus_land_story
+
+  handlers:
+    - name: Import restarts
+      ansible.builtin.import_tasks: restarts.yml
+
+# vim: ft=yaml.ansible
diff --git a/lotus-land-story/main.yml b/lotus-land-story/main.yml
index 2d8aa2d..21cbe05 100644
--- a/lotus-land-story/main.yml
+++ b/lotus-land-story/main.yml
@@ -100,6 +100,7 @@
 - import_playbook: loki.yml       # noqa: name[play]
 - import_playbook: miniflux.yml   # noqa: name[play]
 - import_playbook: woodpecker.yml # noqa: name[play]
+- import_playbook: firefly-iii.yml # noqa: name[play]
 
 - import_playbook: caddy.yml      # noqa: name[play]
 
diff --git a/lotus-land-story/miniflux.yml b/lotus-land-story/miniflux.yml
index ab73413..f173413 100644
--- a/lotus-land-story/miniflux.yml
+++ b/lotus-land-story/miniflux.yml
@@ -55,7 +55,7 @@
       community.docker.docker_container:
         restart: true
         name: miniflux
-        image: miniflux/miniflux:{{ miniflux.version }}
+        image: miniflux/miniflux:2.0.47
         env:
           DATABASE_URL: postgres://miniflux:{{ miniflux.db_password }}@host.docker.internal/miniflux
           RUN_MIGRATIONS: "1"
diff --git a/lotus-land-story/templates/Caddyfile b/lotus-land-story/templates/Caddyfile
index 0e518cf..fb68121 100644
--- a/lotus-land-story/templates/Caddyfile
+++ b/lotus-land-story/templates/Caddyfile
@@ -25,3 +25,7 @@ ci.{{ domain }} {
 woodpecker.{{ domain }} {
 	reverse_proxy woodpecker-server:8000
 }
+
+{{ firefly_iii.subdomain }}.{{ domain }} {
+	reverse_proxy firefly-iii:8080
+}