summaryrefslogtreecommitdiff
path: root/ansible
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
parent443bdb36040cbd749588e14c9569d276f8e0b6e9 (diff)
ansible-ises actualbudget
Diffstat (limited to 'ansible')
-rw-r--r--ansible/playbook.yml9
-rw-r--r--ansible/roles/actualbudget/tasks/main.yml49
-rw-r--r--ansible/roles/actualbudget/templates/openrc/actualbudget27
-rw-r--r--ansible/vars/actualbudget.yml2
-rw-r--r--ansible/vars/common.yml2
5 files changed, 88 insertions, 1 deletions
diff --git a/ansible/playbook.yml b/ansible/playbook.yml
index ee0b39d..e821fbd 100644
--- a/ansible/playbook.yml
+++ b/ansible/playbook.yml
@@ -29,6 +29,15 @@
vars_files:
- common.yml
+- name: Install actualbudget
+ hosts: "{{ services.actualbudget.host }}"
+ become: true
+ roles:
+ - actualbudget
+ vars_files:
+ - common.yml
+ - actualbudget.yml
+
- name: Install etherpad
hosts: "{{ services.etherpad.host }}"
become: true
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 $?
+}
diff --git a/ansible/vars/actualbudget.yml b/ansible/vars/actualbudget.yml
new file mode 100644
index 0000000..9da2f92
--- /dev/null
+++ b/ansible/vars/actualbudget.yml
@@ -0,0 +1,2 @@
+actualbudget_src_dir: /usr/share/src/actualbudget
+actualbudget_version: 26.8.1
diff --git a/ansible/vars/common.yml b/ansible/vars/common.yml
index b0d9030..a4db78f 100644
--- a/ansible/vars/common.yml
+++ b/ansible/vars/common.yml
@@ -3,7 +3,7 @@ joeacnet_src_dir: /usr/share/src/joeac.net
services:
actualbudget:
port: 5006
- host: pi-broughton
+ host: blade-canongate
etherpad:
port: 9001
host: blade-canongate