summaryrefslogtreecommitdiff
path: root/ansible/roles
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-08-12 13:58:20 +0100
committerJoe Carstairs <me@joeac.net>2026-08-12 16:11:52 +0100
commit4bad66b2caa433bffbe1996c11e1e2360a8d6152 (patch)
treeb5b7fb7e8aa250617df401a423f66e5eaf7822b1 /ansible/roles
parent443bdb36040cbd749588e14c9569d276f8e0b6e9 (diff)
ansible-ises actualbudget
Diffstat (limited to 'ansible/roles')
-rw-r--r--ansible/roles/actualbudget/tasks/main.yml49
-rw-r--r--ansible/roles/actualbudget/templates/openrc/actualbudget27
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 $?
+}