--- - name: Include user role ansible.builtin.include_role: name: user vars: user_username: "{{ actual_username }}" user_password: "{{ actual_password }}" user_start_podman_restart: true - name: Create a directory for holding actual's (volume) data become: true become_user: "{{ actual_username }}" ansible.builtin.file: path: "/home/{{ actual_username }}/actual_data" state: directory mode: '0700' - name: Gather facts on the actual container become: true become_user: "{{ actual_username }}" containers.podman.podman_container_info: name: actual-server register: actual_server_container_info # This step doesn't work correctly when updating the contianer in any way. In this case it will simply skip the step. # The easiest workaround is to remove the container altogether and rerun. - name: Start the actual container with correct systemd linking when: "'no such container' in actual_server_container_info.stderr" become: true become_user: "{{ actual_username }}" block: - name: Start the Actual container containers.podman.podman_container: name: actual-server image: docker.io/actualbudget/actual-server:24.5.0 restart_policy: always publish: - 127.0.0.1:5006:5006 volumes: - "/home/{{ actual_username }}/actual_data:/data" state: stopped # For more information on the systemd startup service, see: https://linuxhandbook.com/autostart-podman-containers/ generate_systemd: path: "/home/{{ actual_username }}/.config/systemd/user/" restart_policy: always notify: Reload systemd (daemon-reload) - name: Flush handlers ansible.builtin.meta: flush_handlers - name: Enable the newly created systemd service for user ansible.builtin.systemd: name: container-actual-server.service state: started enabled: true scope: user - name: Include simple-reverse-proxy role ansible.builtin.include_role: name: simple-reverse-proxy vars: simple_reverse_proxy_internal_port: 5006 simple_reverse_proxy_internal_subdomain: actual