### # restore-all restores a manually specified list of volumes. # This is intended for user when initially setting up a home lab environment # and want to restore all applications from existing backups # # Restores will be skipped if there is no archive in the backup directory. # # If a container exists, it will be stopped, restored and started # If a container does not exist, the volume will be still be created. ### ############################################ # TODO: add a command which lists all the stack, and each stack can list all the containers. From there we can iterate # through each container in the stack calling restore-volume-tasks.yml and then call create-stack-tasks.yml ############################################ --- - name: Redeploy Portainer and All Volumes hosts: servers vars_files: - ../variables.yml - ~/.homelab/variables.yml tasks: - name: Create next cloud a network docker_network: name: nextcloud_net # The docker volume backup image utilizes these images - name: Pull ubuntu docker_image: name: ubuntu source: pull - name: Pull busybox docker_image: name: busybox source: pull - name: Pull docker-volume-backup docker_image: name: "{{docker_volume_backup_image}}" source: pull - name: Pull start-portainer-stack docker_image: name: ghcr.io/chatton/start-portainer-stack:master source: pull - name: Restore Portainer import_tasks: ../tasks/restore-volume-tasks.yml vars: container_name: "portainer" - name: "Restore {{item}}" import_tasks: ../tasks/restore-volume-tasks.yml vars: container_name: "{{item}}" with_items: {{stacks}} - name: "Start {{item}} Stack" import_tasks: ../tasks/create-stack-tasks.yml vars: stack_name: "{{item}}" with_items: {{stacks}} # - name: Restore Linkding # import_tasks: ../tasks/restore-volume-tasks.yml # vars: # container_name: "linkding" # # - name: Start Linkding Stack # import_tasks: ../tasks/create-stack-tasks.yml # vars: # stack_name: "linkding" # # - name: Restore Nginx Proxy Manager # import_tasks: ../tasks/restore-volume-tasks.yml # vars: # container_name: "nginx-proxy-manager" # # - name: Start Nginx Proxy Manager # import_tasks: ../tasks/create-stack-tasks.yml # vars: # stack_name: "nginx-proxy-manager" # # - name: Restore Vpn Stack # import_tasks: ../tasks/restore-volume-tasks.yml # vars: # container_name: "vpn-stack" # # - name: Start Vpn Stack # import_tasks: ../tasks/create-stack-tasks.yml # vars: # stack_name: "vpn-stack" # # # - name: Restore MariaDB # import_tasks: ../tasks/restore-volume-tasks.yml # vars: # container_name: "mariadb" # # - name: Start MariaDB # import_tasks: ../tasks/create-stack-tasks.yml # vars: # stack_name: "mariadb" # # - name: Restore Nextcloud # import_tasks: ../tasks/restore-volume-tasks.yml # vars: # container_name: "nextcloud" # # - name: Start Nextcloud # import_tasks: ../tasks/create-stack-tasks.yml # vars: # stack_name: "nextcloud" # # - name: Restore Photoprism # import_tasks: ../tasks/restore-volume-tasks.yml # vars: # container_name: "photoprism" # # - name: Start Photoprism # import_tasks: ../tasks/create-stack-tasks.yml # vars: # stack_name: "photoprism" # # - name: Restore Plex # import_tasks: ../tasks/restore-volume-tasks.yml # vars: # container_name: "plex" # # - name: Start Plex # import_tasks: ../tasks/create-stack-tasks.yml # vars: # stack_name: "plex" # # - name: Restore Mealie # import_tasks: ../tasks/restore-volume-tasks.yml # vars: # container_name: "mealie" # # - name: Start Mealie # import_tasks: ../tasks/create-stack-tasks.yml # vars: # stack_name: "mealie" # # - name: Restore Overseerr # import_tasks: ../tasks/restore-volume-tasks.yml # vars: # container_name: "overseerr" # # - name: Start Overseerr # import_tasks: ../tasks/create-stack-tasks.yml # vars: # stack_name: "overseerr" # # - name: Restore Uptime Kuma # import_tasks: ../tasks/restore-volume-tasks.yml # vars: # container_name: "uptime-kuma" # # - name: Start Uptime Kuma # import_tasks: ../tasks/create-stack-tasks.yml # vars: # stack_name: "uptime-kuma"