docker.recipes

Actual Budget Manager

beginner

Actual Budget local-first personal finance app with sync server.

Overview

Actual Budget is an open-source personal finance application that follows a local-first architecture, meaning your financial data stays on your device by default. Built as a modern alternative to You Need A Budget (YNAB), Actual Budget emerged from the need for privacy-focused budgeting software that doesn't require mandatory cloud subscriptions. The actual-server component provides the synchronization backend that enables data sharing across multiple devices while maintaining end-to-end encryption. The actual-server acts as a sync hub for Actual Budget clients, storing encrypted budget files and coordinating changes between desktop, web, and mobile applications. Unlike traditional cloud-based budgeting apps, actual-server gives users complete control over their financial data location and access. The server handles conflict resolution when multiple devices modify budgets simultaneously and provides secure user authentication without exposing budget contents. This configuration is ideal for privacy-conscious individuals and families who want YNAB-style envelope budgeting without recurring subscriptions or data privacy concerns. Financial advisors, small business owners, and anyone seeking granular control over their budgeting infrastructure will benefit from actual-server's self-hosted approach. The ability to import existing YNAB and Mint data makes it particularly valuable for users migrating from discontinued or expensive commercial alternatives.

Key Features

  • Zero-knowledge sync server that stores encrypted budget data without access to actual financial information
  • Multi-device synchronization supporting desktop apps, web browsers, and mobile clients simultaneously
  • Direct import compatibility with YNAB4, YNAB5, and Mint CSV exports for easy migration
  • Envelope budgeting methodology with real-time balance tracking and overspending alerts
  • Custom transaction categorization with rule-based automatic sorting and payee recognition
  • Goal tracking for savings targets, debt paydown, and irregular expenses with timeline visualization
  • Split transaction support for complex purchases across multiple budget categories
  • Offline-first operation allowing full budget management without internet connectivity

Common Use Cases

  • 1Privacy-focused families wanting shared budget access without cloud service dependencies
  • 2Financial advisors managing multiple client budgets on controlled infrastructure
  • 3YNAB refugees seeking feature parity without ongoing subscription costs
  • 4Small business owners tracking personal and business finances on isolated networks
  • 5Digital nomads requiring reliable budget sync across international internet connections
  • 6Homelab enthusiasts integrating budgeting into personal cloud ecosystems
  • 7Couples coordinating finances across different devices and operating systems

Prerequisites

  • Docker and Docker Compose installed on host system with container orchestration support
  • Minimum 512MB available RAM for actual-server container and data processing
  • Port 5006 available and not conflicting with existing web services
  • Basic understanding of budget envelope methodology and transaction categorization
  • Web browser supporting modern JavaScript for initial setup and administration
  • Backup strategy for Docker volumes containing encrypted budget databases

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 actual-server:
3 image: actualbudget/actual-server:latest
4 container_name: actual
5 volumes:
6 - actual_data:/data
7 ports:
8 - "5006:5006"
9 restart: unless-stopped
10 networks:
11 - actual-network
12
13volumes:
14 actual_data:
15
16networks:
17 actual-network:
18 driver: bridge

.env Template

.env
1# Actual Budget
2# No environment variables required for basic setup

Usage Notes

  1. 1UI at http://localhost:5006
  2. 2Create password on first visit
  3. 3Local-first with optional sync
  4. 4Import from YNAB, Mint
  5. 5End-to-end encrypted sync

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 actual-server:
5 image: actualbudget/actual-server:latest
6 container_name: actual
7 volumes:
8 - actual_data:/data
9 ports:
10 - "5006:5006"
11 restart: unless-stopped
12 networks:
13 - actual-network
14
15volumes:
16 actual_data:
17
18networks:
19 actual-network:
20 driver: bridge
21EOF
22
23# 2. Create the .env file
24cat > .env << 'EOF'
25# Actual Budget
26# No environment variables required for basic setup
27EOF
28
29# 3. Start the services
30docker compose up -d
31
32# 4. View logs
33docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/actual-budget/run | bash

Troubleshooting

  • Connection refused on port 5006: Verify container is running with 'docker ps' and check firewall rules blocking the port
  • Password creation fails on first visit: Clear browser cache and cookies, ensure JavaScript is enabled for the domain
  • Sync conflicts between devices: Stop all clients, restart actual-server container, then reconnect devices one at a time
  • Import from YNAB fails with format error: Ensure exported file is unzipped CSV format, not the compressed .zip download
  • Container exits immediately on startup: Check Docker logs with 'docker logs actual' for permission errors on /data volume mount
  • Budget data appears corrupted after restart: Restore from Docker volume backup and verify filesystem integrity on host

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Ad Space