Skip to content

Configuration

The application uses YAML configuration. A default configuration file is created on first run at ~/.config/budget-forecaster/config.yaml.

Default Paths

Resource Default path
Configuration ~/.config/budget-forecaster/config.yaml
Database ~/.local/share/budget-forecaster/budget.db
Log file ~/.local/share/budget-forecaster/budget-forecaster.log
Backups ~/.local/share/budget-forecaster/backups/

All paths can be customized in the configuration file (see below).

Configuration Structure

# Required - SQLite database location
database_path: ~/.local/share/budget-forecaster/budget.db

# Required - Account identification
account_name: "Main Account"
account_currency: EUR

# Optional - Folder for bank exports (auto-detected from xdg-user-dir if omitted)
# inbox_path: ~/Downloads

# Optional - Filter imported files by filename patterns
# inbox_include_patterns:
#   - "*.xlsx"
# inbox_exclude_patterns:
#   - "*template*"

# Optional - Automatic database backups
backup:
  enabled: true # default: true
  max_backups: 5 # default: 5
  directory: ~/.local/share/budget-forecaster/backups/ # default: same as database

# Optional - Language for the UI and exports (default: en)
# language: fr

# Optional - Python dictConfig format for logging
# logging:
#   version: 1
#   handlers:
#     console:
#       class: logging.StreamHandler
#       level: DEBUG
#   root:
#     level: DEBUG
#     handlers: [console]

Settings Reference

Setting Required Default Description
database_path yes - Path to the SQLite database file
account_name yes - Display name for the account
account_currency yes - Currency code (e.g., EUR)
inbox_path no User's Downloads dir Folder scanned for bank exports
inbox_include_patterns no (all files) Glob patterns to include from inbox
inbox_exclude_patterns no (none) Glob patterns to exclude from inbox
backup.enabled no true Enable automatic backups at startup
backup.max_backups no 5 Maximum backup files to retain
backup.directory no (database directory) Where to store backup files
language no en UI and export language (en or fr)
logging no basic INFO logging Python dictConfig format for logging setup

Inbox Auto-Detection

When inbox_path is omitted, the application uses xdg-user-dir DOWNLOAD to find the user's Downloads directory. This works on most Linux distributions. On other systems, set the path explicitly.

Logging

The logging section accepts Python's dictConfig format. When no logging configuration is provided, the application logs to ~/.local/share/budget-forecaster/budget-forecaster.log at INFO level. If the provided configuration is invalid, the application falls back to basic DEBUG-level console logging.