--- # Sigvild Gallery Deployment Tasks - name: Install required packages pacman: name: - rsync state: present - name: Create sigvild gallery user user: name: "{{ sigvild_gallery_user }}" system: yes shell: /bin/bash home: "{{ sigvild_gallery_home }}" create_home: yes - name: Create directories file: path: "{{ item }}" state: directory owner: "{{ sigvild_gallery_user }}" group: "{{ sigvild_gallery_user }}" mode: '0755' loop: - "{{ sigvild_gallery_home }}" - "{{ sigvild_gallery_data_dir }}" - "{{ sigvild_gallery_web_root }}" - name: Build and deploy backend include_tasks: deploy_backend.yml tags: [backend, build] - name: Build and deploy frontend include_tasks: deploy_frontend.yml tags: [frontend, build] - name: Deploy systemd service template: src: sigvild-gallery.service.j2 dest: /etc/systemd/system/sigvild-gallery.service owner: root group: root mode: '0644' notify: - reload systemd - restart sigvild-gallery tags: [backend, service] - name: Deploy Caddy configurations template: src: "{{ item.src }}" dest: "{{ caddy_sites_enabled_dir }}/{{ item.dest }}" owner: root group: "{{ caddy_user }}" mode: '0644' loop: - { src: 'frontend.caddy.j2', dest: 'sigvild-frontend.caddy' } - { src: 'api.caddy.j2', dest: 'sigvild-api.caddy' } notify: reload caddy tags: [caddy, frontend, backend] - name: Enable and start sigvild-gallery service systemd: name: sigvild-gallery enabled: "{{ sigvild_gallery_service_enabled }}" state: "{{ sigvild_gallery_service_state }}" daemon_reload: yes tags: [backend, service] - name: Create superuser account command: > {{ sigvild_gallery_binary }} superuser upsert "{{ vault_pb_su_email }}" "{{ vault_pb_su_password }}" args: chdir: "{{ sigvild_gallery_home }}" become: yes become_user: "{{ sigvild_gallery_user }}" register: superuser_result failed_when: superuser_result.rc != 0 - name: Verify gallery health uri: url: "https://{{ sigvild_gallery_api_domain }}/api/health" method: GET status_code: [200, 404] # 404 is ok if health endpoint doesn't exist yet timeout: 15 retries: 5 delay: 5 ignore_errors: yes tags: [verify]