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
+}