diff --git a/roles/any.software.actual-podman/files/actual.Caddyfile b/roles/any.software.actual-podman/files/actual.Caddyfile new file mode 100644 index 0000000..6891187 --- /dev/null +++ b/roles/any.software.actual-podman/files/actual.Caddyfile @@ -0,0 +1,5 @@ +actual.roosens.me { + reverse_proxy localhost:8014 { + header_down +X-Robots-Tag "none" + } +} diff --git a/roles/any.software.actual-podman/handlers/main.yml b/roles/any.software.actual-podman/handlers/main.yml new file mode 100644 index 0000000..536a127 --- /dev/null +++ b/roles/any.software.actual-podman/handlers/main.yml @@ -0,0 +1,8 @@ +--- +- name: 'restart actual' + ansible.builtin.systemd_service: + name: 'actual' + state: 'restarted' + + scope: 'user' + daemon_reload: true diff --git a/roles/any.software.actual-podman/meta/main.yml b/roles/any.software.actual-podman/meta/main.yml new file mode 100644 index 0000000..32c83bc --- /dev/null +++ b/roles/any.software.actual-podman/meta/main.yml @@ -0,0 +1,4 @@ +--- +dependencies: + - role: any.tools.caddy + become: true diff --git a/roles/any.software.actual-podman/tasks/main.yml b/roles/any.software.actual-podman/tasks/main.yml new file mode 100644 index 0000000..6a27ff7 --- /dev/null +++ b/roles/any.software.actual-podman/tasks/main.yml @@ -0,0 +1,19 @@ +--- +- name: Ensure Quadlet files are present + ansible.builtin.template: + src: "actual.container.j2" + dest: "/home/debian/.config/containers/systemd/actual.container" + mode: '0755' + owner: 'debian' + group: 'debian' + notify: 'restart actual' + +- name: Ensure Caddyfile is present + ansible.builtin.copy: + src: 'actual.Caddyfile' + dest: '/etc/caddy/actual.Caddyfile' + owner: root + group: root + mode: '0644' + become: true + notify: reload caddy diff --git a/roles/any.software.actual-podman/templates/actual.container.j2 b/roles/any.software.actual-podman/templates/actual.container.j2 new file mode 100644 index 0000000..ab554d7 --- /dev/null +++ b/roles/any.software.actual-podman/templates/actual.container.j2 @@ -0,0 +1,13 @@ +[Container] +Image=docker.io/actualbudget/actual-server:25.12.0-alpine + +PublishPort=127.0.0.1:8014:5006 +Volume={{ data_dir }}:/data + +User=0 + +[Service] +Restart=always + +[Install] +WantedBy=default.target