Introduction
Setting up and running the open-source version of Actual with Simplii Fin to sync banks
Installing
Setup a Debian LXC in Proxmox with one core and 512MiB of ram
Installing Prequicits
Run the following one line at a time and accept any new packages
apt-get update
apt-get install -y ca-certificates curl gnupg git
Install Node.JS
Run the following to add the nodesource repo
and install Node.JS v20
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
NODE_MAJOR=20
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
apt-get update
apt-get install nodejs -y
you can check the node version with node -v
root@debian:~# node -v
v20.10.0
Install yarn
install yarn as a global package with the following
npm install --global yarn
Setting up Actual
Clone the GitHub repo with the following.
git clone https://github.com/actualbudget/actual-server.git
Navigate into the folder with cd actual-server
, then run yarn install
To start the program, use yarn start
You can use SSH tunnelling to forward Actual’s port to access the setup page
ssh -L 5006:VMIP_URL_HERE:5006 root@VMIP_URL_HERE
But you might get an error saying that you need HTTPS.
Subdomain Forwarding
Add the subdomain on Cloudflare then map it on the Nginx Proxy Manager
SimpliFin
A simple-to-use but paid addon that can be used with Actual is SimpliFin. It uses MX as a data provider to integrate into your bank to pull transaction records daily and sync them with Actual.
Install Helper Module
Back in the root, directly clone the Simplefin GitHub link with the following
git clone https://github.com/duplaja/actual-simplefin-sync/
Navigate into the folder with cd actual-simplefin-sync/
then run the app with node app.js
Process Manager 2
An easy way to keep Actual running in the background and SimpliFin every 8 hours is to use Process Manager 2 (PM2)
Installing
npm install pm2@latest -g
Starting Application Actual
Navigate into actual-server
then run pm2 start "yarn start"
Starting Application Bridge
navigate into actual-simplefin-sync
then run pm2 start app.js --no-autorestart --cron-restart="0 */8 * * *"
Setting up AutoStart
Run the following one line at a time
pm2 startup
pm2 save
You can check the status with pm2 l