diff options
Diffstat (limited to 'ansible/roles')
| -rw-r--r-- | ansible/roles/actualbudget/tasks/main.yml | 49 | ||||
| -rw-r--r-- | ansible/roles/actualbudget/templates/openrc/actualbudget | 27 |
2 files changed, 76 insertions, 0 deletions
diff --git a/ansible/roles/actualbudget/tasks/main.yml b/ansible/roles/actualbudget/tasks/main.yml new file mode 100644 index 0000000..92cad2f --- /dev/null +++ b/ansible/roles/actualbudget/tasks/main.yml @@ -0,0 +1,49 @@ +- name: Install Git, NodeJS and Yarn + community.general.apk: + name: + - git + - nodejs + - yarn + +- name: Checkout actualbudget source code + register: actualbudget_src + ansible.builtin.git: + repo: https://github.com/actualbudget/actual.git + dest: "{{ actualbudget_src_dir }}" + depth: 1 + version: v{{ actualbudget_version }} + +- name: Install actualbudget dependencies + register: actualbudget_dependencies + changed_when: "'Already up-to-date.' not in actualbudget_dependencies.stdout" + ansible.builtin.command: + chdir: "{{ actualbudget_src_dir }}" + cmd: yarn install + +- name: Install actualbudget service + register: actualbudget_service + ansible.builtin.template: + src: openrc/actualbudget + dest: /etc/init.d/actualbudget + mode: "755" + +- name: Restart actualbudget service and configure to start on boot + when: + actualbudget_src is changed + or actualbudget_service is changed + or actualbudget_dependencies is changed + ansible.builtin.service: + name: actualbudget + enabled: true + state: restarted + +- name: Start actualbudget service and configure to start on boot + when: + not ( + actualbudget_src is changed + or actualbudget_service is changed + or actualbudget_dependencies is changed ) + ansible.builtin.service: + name: actualbudget + enabled: true + state: started diff --git a/ansible/roles/actualbudget/templates/openrc/actualbudget b/ansible/roles/actualbudget/templates/openrc/actualbudget new file mode 100644 index 0000000..456e33e --- /dev/null +++ b/ansible/roles/actualbudget/templates/openrc/actualbudget @@ -0,0 +1,27 @@ +#!/sbin/openrc-run + +description="Run actualbudget budgeting server" + +start() +{ + ebegin "Starting actualbudget" + start-stop-daemon --start \ + --exec /usr/bin/yarn \ + --background \ + --chdir {{ actualbudget_src_dir }} \ + --stdout /var/log/actualbudget.log \ + --stderr /var/log/actualbudget.log \ + --make-pidfile \ + --pidfile /run/actualbudget.pid \ + -- start:server + eend $? +} + +stop() +{ + ebegin "Stopping actualbudget" + start-stop-daemon --stop \ + --exec /usr/bin/pnpx \ + --pidfile /run/actualbudget.pid + eend $? +} |
