Actual Budget
So Firefly III is nice, but I just can't figure out what exactly the budget system is trying to do. I can set it to automatically add an amount each month to a budget, but it doesn't always actually add it. Plus it seems to change the amount randomly, almost if it is asking me for a monthly amount, then dividing that by the number of days in the month and then applying the amount per day to future months. So months with 30 days get a different amount than months with 31 days. Also if I do not spend anything towards a budget it stops adding to it, instead zeroing it out. I know they say it isn't able to work as a "bucket budget" but when you literally have a "bucket budget" in the application I'm not sure what kind of budget you are using. I came across Actual Budget and it looks like it is more my speed so I'm going to give it a try.
Create Virtual Machine
Steps performed on HV-03 via Windows Admin Center
- I navigate to
Virtual Machines - I click on
Addand thenNew- Name:
ACTUAL-01 - Generation:
2 (Recommended) - Virtual Processors:
2 - Memory:
2GB - Virtual Switch:
Default External Switch - Storage:
30GB - Select
Install an operating system later - I click on
Create
- Name:
- I select
ACTUAL01 - I click on
Settings - I navigate to
Disk- I click
Add Disk - I select
Use an Existing Hard Disk- Path:
c:\Images\Debian\debian-12.1.0-amd64-netinst.iso
- Path:
- I click
Save disk settings
- I click
- I move to
Boot OrderDVDHard DiskNetwork adapter- I click
Save boot order
- I navigate to
Security- Enable Secure Boot:
Yes - Template:
Microsoft UEFI Certificate Authority - I click
Save security settings
- Enable Secure Boot:
- I click on
Close - I click on
Powerand thenStart
Install Operating System
Steps performed on ACTUAL-01 via console
- I select
Install - Select a language:
English - Select your location:
United States - Configure the keyboard:
American English - Hostname:
ACTUAL-01 - Domain name:
domain.local - I save my root password
- Full name for the new user: david
- I save my david password
- Select your time zone:
Eastern - Partitioning method:
Guided - use entire disk - Partitioning scheme:
All files in one partition - Finish partitioning and write changes to disk?
yes - Scan extra installation media:
no - Debian archive mirror country:
United States - Debian archive mirror:
deb.debian.org - Participate in the package usage survey?
yes - Choose software to install:
SSH serverStandard system utilities
- I select
Continue - I remove the Debian ISO and reboot
Configure Operating System
Configure Sudo
Steps performed on ACTUAL-01
apt install sudo/sbin/adduser david sudoAdding user 'david' to group 'sudo' ...Done.
Configure Network
Steps performed on ACTUAL-01
nano /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 10.10.10.XXX
gateway 10.10.10.254
netmask 255.255.255.0
- I save the file
interfaces systemctl restart networking
Steps performed on DC-02 via Windows Admin Center
- I navigate to
DNS - I select
domain.local - I click on
Create a new DNS record- DNS record type:
Host (A) - Record Name:
ACTUAL - FQDN:
ACTUAL.domain.local - IP Address:
10.10.10.XXX - Time to live:
3600 - I click on
Create
- DNS record type:
Configure SSH Key
Steps performed on desktop via Windows Terminal
ssh-keygen -t ed25519Move-Item -Path c:\Users\david\filename* -Destination c:\Users\david\.ssh -Force- I open Windows Terminal's
Settings - I open the
JSONfile - I add the following:
{
"colorScheme": "Ubuntu-ColorScheme",
"commandline": "ssh -i \"~/.ssh/actual-01\" [email protected]",
"experimental.retroTerminalEffect": false,
"font":
{
"face": "Cascadia Code"
},
"guid": "{0caa0dad-35be-5f56-a8ff-XXXXXXXXXXXX}",
"hidden": false,
"name": "ACTUAL-01",
"tabTitle": "ACTUAL-01"
},
- I confirm the
GUIDis unique and save theJSONfile
Configure SSH
Steps performed on ACTUAL-01
mkdir /home/david/.sshname /home/david/.ssh/authorized_keys- I paste in the public key and save
authorized_keys chmod 600 /home/david/.ssh/authorized_keyssudo nano /etc/ssh/sshd_configPermitRootLogin noPubkeyAuthentication yesPubkeyAcceptedKeyTypes ssh-ed25519PasswordAuthentication noAuthorizedKeysFile /home/david/.ssh/authorized_keys
- I save the
sshd_configfile sudo sshd -tsudo systemctl restart ssh
Install Actual Budget's Dependencies
Steps performed on ACTUAL-01
sudo apt install dockersudo apt install docker-compose
Install Actual Budget
Steps performed on ACTUAL-01
sudo mkdir /appssudo mkdir /apps/actualcd /apps/actualsudo nano docker-compose.yml
version: '3'
services:
actual_server:
image: docker.io/actualbudget/actual-server:latest
ports:
# This line makes Actual available at port 5006 of the device you run the server on,
# i.e. http://localhost:5006. You can change the first number to change the port, if you want.
- '5006:5006'
environment:
# Uncomment any of the lines below to set configuration options.
# - ACTUAL_HTTPS_KEY=/data/selfhost.key
# - ACTUAL_HTTPS_CERT=/data/selfhost.crt
- ACTUAL_UPLOAD_FILE_SYNC_SIZE_LIMIT_MB=20
- ACTUAL_UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT_MB=50
- ACTUAL_UPLOAD_FILE_SIZE_LIMIT_MB=20
# See all options and more details at https://actualbudget.github.io/docs/Installing/Configuration
# !! If you are not using any of these options, remove the 'environment:' tag entirely.
volumes:
# Change './actual-data' below to the path to the folder you want Actual to store its data in on your server.
# '/data' is the path Actual will look for its files in by default, so leave that as-is.
- /apps/actual:/data
restart: unless-stopped
- I saved the file
docker-compose.yml sudo docker-compose up -d
I've got to run while the container is still pulling the image down. I'll have to check on it tomorrow to see if it is working.