Actual
Actual Budget is a super fast and privacy-focused app for managing your finances. At its heart is the well proven and much loved Envelope Budgeting methodology. It features multi-device sync, and optional end-to-end encryption.
You can find the source code on Git Hub.
Note
For this guide you should be familiar with the basic concepts of
Prerequisites
Your website domain or subdomain needs to be setup up:
[isabell@stardust ~]$ uberspace web domain list
isabell.uber.space
[isabell@stardust ~]$
Installation
This installation broadly follows the Quick Start Guide.
First you need to clone the Actual Server project to your Uberspace account, you can do this using Git.
[isabell@stardust ~]$ git clone https://github.com/actualbudget/actual-server.git
Cloning into 'actual-server'...
[isabell@stardust ~]$
Now navigate to the directory where you cloned the project.
[isabell@stardust ~]$ cd actual-server
[isabell@stardust actual]$
By default, current versions of Actual depend on a cryptography library called bcrypt in version 5.1.1 or later. This versions is not compatible with Uberspace v7 and needs to be downgraded to 5.1.0. To do so, open package.json in your favorite editor and replace
"bcrypt": "^5.1.1",
by
"bcrypt": "5.1.0",
in the dependencies section.
Install all the dependencies using yarn. Be sure to pass the option –refresh-lockfile, so that the changes to packages.json are taken into account.
[isabell@stardust actual]$ yarn install --refresh-lockfile
[…]
➤ YN0000: └ Completed in 1m 50s
➤ YN0000: · Done with warnings in 2m 2s
[isabell@stardust actual]$
Configuration
Setup daemon
Create ~/etc/services.d/actual.ini
with the following content:
[program:actual]
directory=%(ENV_HOME)s/actual-server
command=yarn start
autostart=true
autorestart=true
stopsignal=INT
startsecs=30
After creating the configuration, tell supervisord to refresh its configuration and start the service:
[isabell@stardust ~]$ supervisorctl reread
SERVICE: available
[isabell@stardust ~]$ supervisorctl update
SERVICE: added process group
[isabell@stardust ~]$ supervisorctl status
SERVICE RUNNING pid 26020, uptime 0:03:14
[isabell@stardust ~]$
If it’s not in state RUNNING, check your configuration.
Configure web server
Note
Actual is running on port 5006
.
To make the application accessible from the outside, configure a web backend:
[isabell@stardust ~]$ uberspace web backend set / --http --port <port>
Set backend for / to port <port>; please make sure something is listening!
You can always check the status of your backend using "uberspace web backend list".
[isabell@stardust ~]$
Updates
When a new Actual release is published, follow these steps to update:
Stop the server if it’s running using
supervisorctl stop actual
.Discard the changes to packages.json and yarn.lock using
git checkout packages.json yarn.lock
Run
git pull
from the directory you cloned the project into. This will download the latest server code.Replace the version of the bcrypt dependency as described above.
Run
yarn install --refresh-lockfile
from that same directory. This will download the latest web client code, along with any updated dependencies for the server.Restart the server by running
supervisorctl start actual
.
[isabell@stardust ~]$ supervisorctl stop actual
actual: stopped
[isabell@stardust ~]$ cd ~/actual-server
[isabell@stardust actual-server]$ git checkout packages.json yarn.lock
[…]
[isabell@stardust actual-server]$ git pull
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
[…]
[apply changes to `packages.json`]
[…]
[isabell@stardust actual-server]$ yarn install --refresh-lockfile
[…]
[isabell@stardust actual-server]$ supervisorctl start actual
actual: started
[isabell@stardust actual-server]$
Tested with Actual 24.10.1, Uberspace 7.16.2
Written by: knhash <https://knhash.in>