summaryrefslogtreecommitdiff
path: root/roles/actualbudget
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-08-13 16:35:47 +0100
committerJoe Carstairs <me@joeac.net>2026-08-13 16:35:47 +0100
commit9f2ebc2cce3af0e685677c23f2098c115e034adf (patch)
treebc6609cf851ee3f0a4f572d762b4ea35a34610f6 /roles/actualbudget
parentf31e65c51681823ade14abad87c742101a1b823d (diff)
move ansible/ dir to root
Diffstat (limited to 'roles/actualbudget')
-rw-r--r--roles/actualbudget/tasks/main.yml52
-rw-r--r--roles/actualbudget/templates/openrc/actualbudget26
2 files changed, 78 insertions, 0 deletions
diff --git a/roles/actualbudget/tasks/main.yml b/roles/actualbudget/tasks/main.yml
new file mode 100644
index 0000000..81c89f2
--- /dev/null
+++ b/roles/actualbudget/tasks/main.yml
@@ -0,0 +1,52 @@
+- name: Install NPM
+ community.general.apk:
+ name:
+ - npm
+
+- name: Check current actual-server version
+ register: prev_actualbudget_version
+ changed_when: false
+ failed_when: false
+ ansible.builtin.command:
+ cmd: actual-server --version
+
+- name: Install actual-server with NPM
+ block:
+ - name: Install actual-server with NPM
+ ansible.builtin.command: npm install --global @actual-app/sync-server
+ changed_when: false
+ - name: Check new actual-server version
+ register: new_actualbudget_version
+ ansible.builtin.command: actual-server --version
+ changed_when: prev_actualbudget_version.stdout != new_actualbudget_version.stdout
+
+- name: Install actualbudget service
+ register: actualbudget_service
+ ansible.builtin.template:
+ src: openrc/actualbudget
+ dest: /etc/init.d/actualbudget
+ mode: "755"
+
+- name: Create actualbudget data directory
+ ansible.builtin.file:
+ path: "{{ actualbudget_data_dir }}"
+ state: directory
+
+- name: Restart actualbudget service and configure to start on boot
+ when:
+ new_actualbudget_version is changed
+ or actualbudget_service is changed
+ ansible.builtin.service:
+ name: actualbudget
+ enabled: true
+ state: restarted
+
+- name: Start actualbudget service and configure to start on boot
+ when:
+ not (
+ new_actualbudget_version is changed
+ or actualbudget_service is changed )
+ ansible.builtin.service:
+ name: actualbudget
+ enabled: true
+ state: started
diff --git a/roles/actualbudget/templates/openrc/actualbudget b/roles/actualbudget/templates/openrc/actualbudget
new file mode 100644
index 0000000..52fd8f0
--- /dev/null
+++ b/roles/actualbudget/templates/openrc/actualbudget
@@ -0,0 +1,26 @@
+#!/sbin/openrc-run
+
+description="Run actualbudget budgeting server"
+
+start()
+{
+ ebegin "Starting actualbudget"
+ start-stop-daemon --start \
+ --exec /usr/local/bin/actual-server \
+ --env ACTUAL_DATA_DIR={{ actualbudget_data_dir }} \
+ --background \
+ --stdout /var/log/actualbudget.log \
+ --stderr /var/log/actualbudget.log \
+ --make-pidfile \
+ --pidfile /run/actualbudget.pid
+ eend $?
+}
+
+stop()
+{
+ ebegin "Stopping actualbudget"
+ start-stop-daemon --stop \
+ --exec /usr/bin/pnpx \
+ --pidfile /run/actualbudget.pid
+ eend $?
+}