ansible-nas/roles/firefly/tasks/main.yml
2023-04-15 14:11:49 +01:00

77 lines
2.7 KiB
YAML

---
- name: Start Firefly
block:
- name: Create Firefly III Directories
ansible.builtin.file:
path: "{{ item }}"
state: directory
with_items:
- "{{ firefly_data_directory }}/mariadb"
- "{{ firefly_data_directory }}/upload"
- "{{ firefly_data_directory }}/export"
- name: Create MySQL container for Firefly
community.docker.docker_container:
name: "{{ firefly_mysql_container_name }}"
image: mariadb:10.9
pull: true
volumes:
- "{{ firefly_data_directory }}/mariadb:/var/lib/mysql:rw"
env:
MYSQL_DATABASE: "firefly"
MYSQL_USER: "firefly"
MYSQL_PASSWORD: "firefly"
MYSQL_ROOT_PASSWORD: "firefly"
restart_policy: unless-stopped
memory: "{{ firefly_mysql_memory }}"
- name: Wait for MySQL to init
pause:
seconds: 30
- name: Create Firefly III container
community.docker.docker_container:
name: "{{ firefly_container_name }}"
image: fireflyiii/core:latest
pull: true
volumes:
- "{{ firefly_data_directory }}/export:/var/www/firefly-iii/storage/export:rw"
- "{{ firefly_data_directory }}/upload:/var/www/firefly-iii/storage/upload:rw"
links:
- firefly-mysql:db
ports:
- "{{ firefly_port }}:8080"
env:
APP_URL: "https://{{ firefly_hostname }}.{{ ansible_nas_domain }}"
TRUSTED_PROXIES: "**"
APP_ENV: "local"
APP_KEY: "S0m3R@nd0mString0f32Ch@rsEx@ct1y"
DB_CONNECTION: "mysql"
DB_HOST: "db"
DB_DATABASE: "firefly"
DB_USERNAME: "firefly"
DB_PASSWORD: "firefly"
TZ: "{{ ansible_nas_timezone }}"
restart_policy: unless-stopped
memory: "{{ firefly_memory }}"
labels:
traefik.enable: "{{ firefly_available_externally | string }}"
traefik.http.routers.firefly.rule: "Host(`{{ firefly_hostname }}.{{ ansible_nas_domain }}`)"
traefik.http.routers.firefly.tls.certresolver: "letsencrypt"
traefik.http.routers.firefly.tls.domains[0].main: "{{ ansible_nas_domain }}"
traefik.http.routers.firefly.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
traefik.http.services.firefly.loadbalancer.server.port: "8080"
when: firefly_enabled is true
- name: Stop Firefly
block:
- name: Stop Firefly
community.docker.docker_container:
name: "{{ firefly_container_name }}"
state: absent
- name: Stop Firefly MySQL
community.docker.docker_container:
name: "{{ firefly_mysql_container_name }}"
state: absent
when: firefly_enabled is false