Self-Hosting Made Easy: How to Install Actual Budgeting System on Debian 12
Are you looking to enhance your financial management with privacy-forward solutions? In this guide, we’ll walk you through installing Actual Budgeting System on a Debian 12 server. Actual is an open-source finance management software that focuses on privacy, built with “Envelope Style Budgeting.” Let’s embark on your self-hosting journey and get your budgeting system up and running!
FAQ
- What is Actual Budget? Actual is an open-source finance management software designed to prioritize user privacy, leveraging a popular budgeting method known as Envelope Style Budgeting.
- Why should I self-host Actual? Self-hosting offers full control over your data, privacy, and customization, ensuring that your financial information remains secure.
- Is Actual Budget easy to install? Yes! With the right prerequisites, you can set up Actual Budget efficiently by following our guide.
Prerequisites for Installation
Before diving into the installation, ensure you have the following:
- A Debian 12 server
- A non-root user with administrator privileges
- A domain name pointing to your server’s IP address
Step 1: Installing Node.js and Yarn
To run Actual, you need to install Node.js, Git, and Yarn. As of now, Actual requires Node v18 or higher.
sudo apt update
sudo apt install nodejs npm git
Confirm the installation by entering ‘Y’. Afterward, install the Yarn package manager globally:
npm install --global yarn
Once installed, verify your Node.js and Yarn versions:
node --version
yarn --version
Step 2: Downloading Actual Budget Source Code
Now that the dependencies are set, let’s download the Actual source code and install its libraries:
su - username
git clone https://github.com/actualbudget/actual-server.git
cd actual-server
yarn install
Create a configuration file named config.json
:
nano config.json
Insert the following configuration (make sure to adjust the IP and port if necessary):
{
"hostname": "127.0.0.1",
"port": 5006
}
Run Actual using:
yarn start
To stop the process, press Ctrl + C
.
Step 3: Running Actual in the Background as a Systemd Service
To keep Actual running as a background service, create a systemd service file:
sudo nano /etc/systemd/system/actual.service
Insert the following configuration, updating the User
and Group
accordingly:
[Unit]
Description=Actual-Server (https://actualbudget.org)
After=network.target
[Service]
User=your_username
Group=your_username
WorkingDirectory=/home/your_username/actual-server/
ExecStart=/usr/local/bin/yarn start
Restart=on-watchdog
[Install]
WantedBy=multi-user.target
Then, enable and start the service:
sudo systemctl daemon-reload
sudo systemctl enable --now actual.service
sudo systemctl status actual.service
Step 4: Setting Up Nginx as a Reverse Proxy
Your Actual service is now running! Next, let’s configure Nginx as a reverse proxy. Install the necessary packages:
sudo apt install nginx certbot python3-certbot-nginx -y
Create a new Nginx server block file:
sudo nano /etc/nginx/sites-available/actual-budget
Input your Nginx configuration, replacing the server_name
with your domain:
server {
listen 80;
server_name yourdomain.com;
location / {
include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
set $upstream_app 127.0.0.1;
set $upstream_port 5006;
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
}
}
To activate and check your configurations:
sudo ln -s /etc/nginx/sites-available/actual-budget /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
sudo systemctl status nginx
Step 5: Securing Your Installation with SSL via Certbot
Now, use Certbot to generate SSL certificates:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email -d yourdomain.com
Your Actual installation should now be secured with HTTPS!
Step 6: Accessing Actual Budget via Web Browser
Visit your domain (e.g., https://yourdomain.com
) to access Actual Budget. You’ll be prompted to set up a password for your dashboard. Configure it, and then choose whether to start fresh or view demo data.
Conclusion
Congratulations! You’ve successfully installed the Actual Budgeting System, a powerful self-hosted solution, on your Debian 12 server. Now you have your financial data safeguarded while enjoying the flexibility of managing your finances.