Personal finance management with native Plaid integration, running locally via Docker.
- 📊 Budget Management - Zero-based budgeting system
- 🏦 Bank Sync - Native Plaid integration for automatic transaction imports
- 📱 Modern UI - Fast, responsive interface
- 🔒 Self-Hosted - Your data stays on your computer
- 💾 End-to-End Encryption - Optional encrypted sync
- 📊 Reports - Cash flow, net worth, spending trends
- 🔄 Multi-Device Sync - Sync across devices (optional)
- Docker Desktop installed on your Mac
- Docker Compose (included with Docker Desktop)
-
Start Actual Budget:
docker-compose up -d
-
Access the application:
- Open your browser to: http://localhost:5006
- Create your budget and set a password
-
Check status:
docker-compose ps docker-compose logs -f actual-budget
- Open http://localhost:5006
- Click "Start fresh" or "Import from..."
- Set a password for your budget
- Start adding accounts!
- In Actual Budget, go to Settings → Experimental Features
- Enable SimpleFIN or GoCardless integration
- Or use the Plaid integration (requires SimpleFIN bridge)
- SimpleFIN provides Plaid-based bank connections
- $1.50/month per connected institution
- Go to: https://beta-bridge.simplefin.org/
- Download transactions from your bank
- Import via File → Import Transactions
If you have a Plaid developer account:
- Use Actual Budget's API
- Build a custom bridge (community examples available)
# Start the container
docker-compose up -d
# Stop the container
docker-compose down
# View logs
docker-compose logs -f
# Update to latest version
docker-compose pull
docker-compose up -d
# Backup your data
docker run --rm -v actual-budget_actual-data:/data -v $(pwd):/backup alpine tar czf /backup/actual-backup-$(date +%Y%m%d).tar.gz /data
# Restore from backup
docker run --rm -v actual-budget_actual-data:/data -v $(pwd):/backup alpine tar xzf /backup/actual-backup-YYYYMMDD.tar.gz -C /actual-budget/
├── docker-compose.yml # Docker configuration
├── README.md # This file
└── backups/ # Create this for storing backups
- Default Port: 5006
- To change the port, edit
docker-compose.yml:ports: - "YOUR_PORT:5006"
Your budget data is stored in a Docker volume named actual-budget_actual-data.
To see where it's physically stored:
docker volume inspect actual-budget_actual-dataCreate backup.sh:
#!/bin/bash
BACKUP_DIR="./backups"
mkdir -p "$BACKUP_DIR"
DATE=$(date +%Y%m%d_%H%M%S)
docker run --rm \
-v actual-budget_actual-data:/data \
-v $(pwd)/backups:/backup \
alpine tar czf /backup/actual-backup-$DATE.tar.gz /data
echo "Backup created: actual-backup-$DATE.tar.gz"Make it executable:
chmod +x backup.sh# Check logs
docker-compose logs actual-budget
# Remove and recreate
docker-compose down
docker-compose up -dCan't access http://localhost:5006
- Ensure Docker Desktop is running
- Check if port 5006 is in use:
lsof -i :5006 - Try accessing via: http://127.0.0.1:5006
docker-compose down
docker volume rm actual-budget_actual-data
docker-compose up -dTo get the latest version:
docker-compose pull
docker-compose up -dTo access from your phone on the same network:
- Find your Mac's IP address:
ifconfig | grep inet - Access from phone:
http://YOUR_MAC_IP:5006
- Official Documentation: https://actualbudget.org/docs/
- GitHub: https://github.com/actualbudget/actual
- Community Forum: https://actualbudget.org/community/
- Discord: https://discord.gg/pRYNYr4W5A
- ✅ Start Actual Budget with
docker-compose up -d - ✅ Create your first budget at http://localhost:5006
- ✅ Add your accounts
- ✅ Set up bank sync with SimpleFIN or CSV imports
- ✅ Create budget categories
- ✅ Start tracking your finances!
| Feature | Actual Budget | Firefly III |
|---|---|---|
| Bank Sync | ✅ Native (SimpleFIN) | |
| Setup Difficulty | ⭐ Easy | ⭐⭐⭐ Complex |
| UI | Modern, Fast | Feature-rich |
| Budgeting Method | Zero-based | Flexible |
| Mobile App | Web-based | Web-based |
| Plaid Support | ✅ Yes |