Cloud based budgeting apps provide a lot of convenience, it’s true. I used one for years. The draw back is that all your spending data is fed into the algorithm, giving the companies more control over you and your habits. That’s why I switched to Actual Budget.
Actual Budget is a powerful, self hosted budgeting application that gives you complete control over your financial data. It’s simple to setup and simple to maintain. Every few months export your bank accounts, credit cards, etc as CSV files, and upload them to Actual Budget. Once you have your rules setup (Every purchase at Costco gets tagged as groceries, etc.) you get a complete view of your spending and saving habits.
Why Actual Budget:
- Your Data, Your Control: No corporate servers, no data mining, no subscriptions
- Privacy First: Your financial information stays on your own server, away from advertisers and other nefarious actors
- Powerful Features: Envelope budgeting, goal tracking, multi-account support, smart tagging
- Open Source: Transparent, community-driven, and free to use
Security Note: DO NOT make this available to external networks. The security risk isn’t worth it. Do your finances at home, on your own network.
Resources #
Installation Prep #
Before installing Actual Budget, ensure you have the following ready:
- Operating System: Linux Mint
- Container Runtime: Docker & Docker Compose
- Hardware: Minimum 1GB RAM, 1GB Disk Space
Time to Complete #
- Total Time: ~20 minutes
- 5 min: File system prep
- 5 min: Docker setup
- 5 min: Download Actual image
- 5 min: Initial setup and configuration
- Difficulty: Beginner-Friendly
- Note: This is an initial setup. Tagging your spending habits can take a while, and will happen after you upload your first CSV files. But you only have to tag a vendor once, then the program will automatically tag new transactions.
Installation #
Step 1: File System Prep #
We need to create the directories to keep the docker-compose file and your financial data.
Create the Actual directory
mkdir -p ~/docker/actual/Create the folders where your data will live:
mkdir -p ~/docker/actual/dataThis creates the following structure:
/home/USER/docker/actual/data/ # Your financial data and backupsStep 2: Docker Setup #
Make sure you are in your Actual directory:
cd ~/docker/actualTo double check you are in the right place, type pwd to see your current directory.
Create the docker-compose.yaml file:
sudo touch docker-compose.yamlUse the nano program to edit the file:
sudo nano docker-compose.yamlStep 3: docker-compose file #
Copy the following text into the docker-compose file:
version: "3.8"
services:
actual:
image: ghcr.io/actualbudget/actual-server:latest
container_name: actual
ports:
- "5006:5006"
volumes:
- ./data:/data
restart: unless-stoppedSave and exit the file by pressing Ctrl+X and saying Y to save.
Step 4: Start Actual #
Now you can download and start Actual:
sudo docker-compose pull
sudo docker-compose up -dOnce the pull is complete, verify the container is running:
docker psYou should see actual running.
Initial Setup and Configuration #
Step 1: Access Actual #
Open your browser and navigate to the IP of your server. I’m using 192.168.99.1 in this example. This is the IP address of your home server.
http://192.168.99.1:5006Step 2: Create Your Account #
-
Create Account
- Enter a username for your account
- Enter a strong password
- Click Create Account
-
Verify Email (Optional)
- If email is enabled, check your inbox
- Otherwise, click Skip to continue
Step 3: Create Your First Budget #
-
Add Your Accounts
- Click Add Account
- Choose account type (Checking, Savings, Credit Card, etc.)
- Enter account name and starting balance. The starting balance can always be changed.
- Click Add Account
-
Set Up Your Budget
- Click Create Budget
- Name your budget (e.g., “May 2026”)
- Click Create
-
Add Categories
- Click Categories in the sidebar
- Add your budget categories (e.g., Housing, Food, Donations to radical political parties)
- Set monthly limits for each category
-
Upload CSV Files
- Download a CSV file from your banking or financial institution.
- Click on an account that you’ve setup
- Click Import and select your CSV file from your computer.
- Note: Depending how your institution organizes your data, you may have to play around with the columns.
Usage #
Web Interface #
The Actual web interface (http://192.168.99.1:5006) provides:
- Dashboard: Overview of your budget, spending, and goals
- Budget: Envelope-style budgeting with category limits
- Transactions: View and manage all your transactions
- Reports: Visualize your spending patterns
- Goals: Track your financial goals and progress
Common Tasks #
Add a Transaction:
- Click Transactions in the sidebar
- Click + Add Transaction
- Enter amount, payee, category, and date
- Click Save
Adjust Your Budget:
- Click Budget in the sidebar
- Click on a category’s limit
- Adjust the amount
- Click Save
View Reports:
- Click Reports in the sidebar
- Choose report type (Income vs Expenses, Cash Flow, etc.)
- View visualizations of your financial data
Mobile App #
Actual has official apps for iOS and Android. I DO NOT recommend using these. Keep your financial data inside your network and don’t go walking around with it. You can make the time at home to balance your books.
-
Install the App
- iOS: App Store
- Android: Google Play
-
Connect to Your Server
- Open the app
- Tap Add Server
- Enter your server URL:
http://192.168.99.1:5006 - Log in with your credentials
-
Sync Your Data
- Your data will automatically sync when you open the app
- Make sure you’re on the same network or have port forwarding configured
Maintenance #
Updates #
Update Actual and Docker images:
cd ~/docker/actual
sudo docker-compose pull
sudo docker-compose up -dBackups #
Actual automatically creates backups. To manually backup:
tar -czf actual-backup.tar.gz ~/docker/actual/data/Store the backup in a safe location (external drive, cloud storage).
View Logs #
View Actual logs:
sudo docker logs actual