From 5187bf8b1109f247cfd3a37196ca5bb66ccecb1f Mon Sep 17 00:00:00 2001 From: Mike Wilson Date: Sun, 30 Jul 2023 10:38:44 -0400 Subject: [PATCH] Added Mealie --- ansible/roles/mealie/tasks/main.yml | 29 +++++++++ .../roles/mealie/templates/docker-compose.yml | 65 +++++++++++++++++++ ansible/roles/mealie/vars/main.yml | 7 ++ 3 files changed, 101 insertions(+) create mode 100644 ansible/roles/mealie/tasks/main.yml create mode 100644 ansible/roles/mealie/templates/docker-compose.yml create mode 100644 ansible/roles/mealie/vars/main.yml diff --git a/ansible/roles/mealie/tasks/main.yml b/ansible/roles/mealie/tasks/main.yml new file mode 100644 index 0000000..5c0fdfc --- /dev/null +++ b/ansible/roles/mealie/tasks/main.yml @@ -0,0 +1,29 @@ +- name: Create service user + user: + name: "{{ role_name }}" + system: true + register: service_user + become: true + +- name: Create install directory + file: + path: "{{ install_directory }}/{{ role_name }}" + state: directory + owner: "{{ docker_user }}" + mode: "{{ docker_compose_directory_mask }}" + become: true + +- name: Copy docker-compose file to destination + template: + src: docker-compose.yml + dest: "{{ install_directory }}/{{ role_name }}/docker-compose.yml" + owner: "{{ docker_user }}" + mode: "{{ docker_compose_file_mask }}" + validate: docker-compose -f %s config + become: true + +- name: Start docker container + community.docker.docker_compose: + project_src: "{{ install_directory }}/{{ role_name }}" + pull: true + remove_orphans: yes diff --git a/ansible/roles/mealie/templates/docker-compose.yml b/ansible/roles/mealie/templates/docker-compose.yml new file mode 100644 index 0000000..e37601c --- /dev/null +++ b/ansible/roles/mealie/templates/docker-compose.yml @@ -0,0 +1,65 @@ +version: "{{ docker_compose_version }}" + +networks: + traefik: + external: true + default: + internal: true + +services: + mealie-frontend: + image: hkotel/mealie:frontend-v1.0.0beta-5 + restart: unless-stopped + depends_on: + - mealie-api + networks: + - default + - traefik + environment: + - API_URL=http://mealie-api:9000 # + volumes: + - "{{ data_dir }}/mealie:/app/data" + labels: + traefik.enable: true + traefik.http.routers.mealie.rule: "Host(`mealie.{{ personal_domain }}`)" + traefik.http.services.mealie.loadbalancer.server.port: 3000 + + mealie-api: + image: hkotel/mealie:api-v1.0.0beta-5 + restart: unless-stopped + depends_on: + - postgres + networks: + - default + volumes: + - "{{ data_dir }}/mealie:/app/data" + environment: + - ALLOW_SIGNUP=false + - "PUID={{ service_user.uid }}" + - "PGID={{ service_user.uid }}" + - "TZ={{ timezone }}" + - MAX_WORKERS=1 + - WEB_CONCURRENCY=1 + - "BASE_URL=https://mealie.{{ personal_domain }}" + - DB_ENGINE=postgres + - POSTGRES_USER=mealie + - POSTGRES_PASSWORD=mealie + - POSTGRES_SERVER=postgres + - POSTGRES_PORT=5432 + - POSTGRES_DB=mealie + - "DEFAULT_EMAIL={{ email }}" + - TOKEN_TIME=168 + dns: + - 10.0.0.1 + + postgres: + container_name: postgres + image: postgres + restart: always + networks: + - default + volumes: + - "{{ data_dir }}/postgres/mealie:/var/lib/postgresql/data" + environment: + POSTGRES_PASSWORD: mealie + POSTGRES_USER: mealie diff --git a/ansible/roles/mealie/vars/main.yml b/ansible/roles/mealie/vars/main.yml new file mode 100644 index 0000000..862b3cd --- /dev/null +++ b/ansible/roles/mealie/vars/main.yml @@ -0,0 +1,7 @@ +email: !vault | + $ANSIBLE_VAULT;1.1;AES256 + 30343965383433393930313337303637353362616563313863396433323939393864393436376534 + 6438663537386464623830316136643461356631316436360a636664323436303464376630616639 + 62653263633531343733313137303863623562616632313236376466313132636234633438616164 + 3030303934343761390a663734333566323234613434633636353665623530643262353162383237 + 66633863376332663064346132356238333561663438643232646463646632656361