diff --git a/host_vars/arch-vps/main.yml b/host_vars/arch-vps/main.yml index a690035..686f4a6 100644 --- a/host_vars/arch-vps/main.yml +++ b/host_vars/arch-vps/main.yml @@ -32,6 +32,10 @@ sigvild_gallery_api_domain: "api.sigvild.no" sigvild_gallery_local_project_path: "~/sigvild-gallery/" +# Backup configuration +sigvild_gallery_backup_enabled: true +sigvild_gallery_backup_local_path: "~/sigvild-gallery-backup/" + # Vault-encrypted passwords (create with ansible-vault) sigvild_gallery_pb_su_email: "{{ vault_pb_su_email}}" sigvild_gallery_pb_su_password: "{{ vault_pb_su_password}}" diff --git a/roles/sigvild-gallery/tasks/main.yml b/roles/sigvild-gallery/tasks/main.yml index 46f847c..0442d29 100644 --- a/roles/sigvild-gallery/tasks/main.yml +++ b/roles/sigvild-gallery/tasks/main.yml @@ -26,6 +26,47 @@ - "{{ sigvild_gallery_data_dir }}" - "{{ sigvild_gallery_web_root }}" +- name: Check for existing gallery data + stat: + path: "{{ sigvild_gallery_data_dir }}/data.db" + register: existing_gallery_data + tags: [restore, backend] + +- name: Check for available backup files + local_action: + module: find + paths: "{{ sigvild_gallery_backup_local_path }}" + patterns: "sigvild-gallery-backup-*.tar.gz" + register: backup_files + become: false + when: sigvild_gallery_backup_enabled | default(false) + tags: [restore, backend] + +- name: Initialize backup_files when backup disabled + set_fact: + backup_files: {"files": []} + when: not (sigvild_gallery_backup_enabled | default(false)) + +- name: Restore from backup if no data exists and backups available + include_tasks: restore.yml + when: + - sigvild_gallery_backup_enabled | default(false) + - backup_files.files | length > 0 + - not existing_gallery_data.stat.exists + tags: [restore, backend] + +- name: Skip restore - existing data found + debug: + msg: + - "ℹ️ Existing gallery data found at {{ sigvild_gallery_data_dir }}/data.db" + - "Skipping restore to preserve existing data" + - "To force restore, manually remove existing data first" + when: + - sigvild_gallery_backup_enabled | default(false) + - backup_files.files | length > 0 + - existing_gallery_data.stat.exists + tags: [restore, backend] + - name: Build and deploy backend include_tasks: deploy_backend.yml tags: [backend, build] diff --git a/site.yml b/site.yml index 34c62f7..04176f3 100644 --- a/site.yml +++ b/site.yml @@ -19,9 +19,9 @@ # tags: ['caddy', 'infrastructure', 'web'] # Application services + - role: sigvild-gallery + tags: ['sigvild', 'gallery', 'wedding'] - role: authentik tags: ['authentik'] - # - role: gitea - # tags: ['gitea', 'git', 'development'] - # - role: sigvild-gallery - # tags: ['sigvild', 'gallery', 'wedding'] + - role: gitea + tags: ['gitea', 'git', 'development']