diff --git a/main.yml b/main.yml index a2c889a..82980ae 100644 --- a/main.yml +++ b/main.yml @@ -85,6 +85,9 @@ - name: Deploy Weatherstar import_tasks: tasks/media/weatherstar.yml tags: weatherstar_deploy + - name: Deploy Duplicati + import_tasks: tasks/utility/duplicati.yml + tags: duplicati_deploy - hosts: jackson @@ -114,9 +117,6 @@ - name: Deploy Tinyauth import_tasks: tasks/auth/tinyauth.yml tags: tinyauth_deploy - - name: Deploy Cobalt - import_tasks: tasks/cobalt.yml - tags: cobalt_deploy - name: Deploy Postgres import_tasks: tasks/infra/postgres.yml tags: postgres_deploy diff --git a/scripts/deploy_containers.py b/scripts/deploy_containers.py index 1807f70..8d85581 100644 --- a/scripts/deploy_containers.py +++ b/scripts/deploy_containers.py @@ -83,7 +83,7 @@ def main(): subprocess.run(f"/usr/bin/docker container stop {container_id}", shell=True) subprocess.run(f"/usr/bin/docker container rm {container_id}", shell=True) subprocess.run("/usr/bin/docker image prune -af", shell=True) - subprocess.run("/usr/bin/docker container prune -af", shell=True) + subprocess.run("/usr/bin/docker container prune -f", shell=True) if __name__ == "__main__": main() \ No newline at end of file diff --git a/tasks/utility/duplicati.yml b/tasks/utility/duplicati.yml new file mode 100644 index 0000000..7c6ad6b --- /dev/null +++ b/tasks/utility/duplicati.yml @@ -0,0 +1,28 @@ +--- +- name: Deploy Duplicati + include_roles: + name: docker + vars: + name: duplicati + networks: + - name: homelab + directories: + - "{{ data_dir }}/duplicati" + - "{{ data_dir }}/duplicati/app" + - "{{ data_dir }}/duplicati/backups" + image: + name: lscr.io/linuxserver/duplicati + tag: latest + volumes: + - "{{ data_dir }}/duplicati/app:/config" + - "{{ data_dir }}/duplicati/backups:/backups" + - "/storage-pool/Share:/source" + env: + TZ: "{{ TZ }}" + SETTINGS_ENCRYPTION_KEY: "{{ DUPLICATI_SETTINGS_ENCRYPTION_KEY }}" + labels: + traefik.enable: "true" + traefik.http.routers.duplicati.rule: Host(`backups.fntz.net`) + traefik.http.routers.duplicati.entrypoints: webSecure + traefik.http.routers.duplicati.tls.certresolver: letsencrypt + traefik.http.services.duplicati.loadbalancer.server.port: "8200"