Bookmark

Run Actual Budget in Docker

Actual Budget is a local-first finance tool written in NodeJS, with synchronization between devices. This procedure runs the server in Docker, stores config.json and data separately, and creates an administrator password through the web interface.1

Youtube video player

The original i12bretro video is kept through the YouTube player; it is not downloaded or rehosted.2

Install Docker

Log into Linux with sudo access and run:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# install prerequisites
sudo apt install apt-transport-https ca-certificates git curl software-properties-common gnupg-agent -y
# add docker gpg key
curl -fsSL https://download.docker.com/linux/$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release)/gpg | sudo apt-key add -
# add docker software repository
sudo add-apt-repository "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release) $(lsb_release -cs) stable"
# install docker
sudo apt install docker-ce docker-compose containerd.io -y
# enable and start docker service
sudo systemctl enable docker && sudo systemctl start docker
# add the current user to the docker group
sudo usermod -aG docker $USER
# reauthenticate for the new group membership to take effect
su - $USER

apt-key is deprecated on current distributions; compare the command with the current Docker documentation before using the older form.1

Run Actual

  1. Create the directory, create an empty config.json, set ownership, and start the container:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# create working directories
mkdir ~/docker/actualbudget/data -p
# create config.json
touch ~/docker/actualbudget/config.json
# write empty config file
echo "{}" > ~/docker/actualbudget/config.json
# set owner of working directories
sudo chown "$USER":"$USER" ~/docker -R
# allow the container to write to working directories
sudo chmod a+rwx -R ~/docker/actualbudget
# run actual budget container
docker run -d --name actualbudget -p 5006:5006 -v ~/docker/actualbudget/config.json:/app/config.json -v ~/docker/actualbudget/data:/data --restart=unless-stopped actualbudget/actual-server
  1. Open http://DNSorIP:5006.
  2. Click Advanced Options.
  3. Check I understand the risks, then click Open Actual.
  4. Enter and confirm a private admin password.
  5. Click Start Fresh.
  6. Verify the Actual interface.1

Backup and verification

Back up both ~/docker/actualbudget/config.json and ~/docker/actualbudget/data before changing the image. Do not expose port 5006 directly to the Internet; use an HTTPS reverse proxy and firewall rules outside the LAN.1

Source and video

Sources


  1. https://i12bretro.github.io/tutorials/0969.html — Run Actual Budget - Open Source Finance Management - in Docker (i12bretro) ↩︎ ↩︎ ↩︎ ↩︎

  2. https://www.youtube.com/watch?v=LOsnghXY3uU — Run Actual Budget - Open Source Finance Management - in Docker (official video) ↩︎


0 Bình luận

Góp Ý / Bình Luận / Đánh giá