DollarDollar

DollarDollar

Docker app from data-jordan's Repository

Overview

Docker container for DollarDollar application.

DollarDollar Bill Y'all logo

DollarDollar Bill Y'all

license GitHub Workflow Status

FinPal is Now Live for Community Testing

DollarDollar has evolved into FinPal as part of the PalStack ecosystem. This represents a complete architectural modernization with enhanced features and deployment flexibility for both self-hosted and managed hosting scenarios.

About PalStack

"That's what pals do – they show up and help with the everyday stuff."

PalStack is a family of applications designed to simplify daily life management. FinPal (formerly DollarDollar) is our financial management component, focused on making personal finance tracking effortless and privacy-respecting.

Current Status

  • Backend: Production-ready microservices architecture
  • Web UI: Live and ready for testing at finpal.palstack.io
  • Mobile Apps: Beta testing in progress
  • Licensing: Dual licensed (AGPL-3.0 for personal use, commercial license available)

Key Improvements

  • Modular microservices backend for better scalability
  • Modern React-based frontend with improved UX
  • Native mobile applications in active development
  • Self-hosted first, with optional managed hosting
  • Dynamic branding based on default currency (DollarPal, EuroPal, RupeePal, etc.)

Roadmap Highlights

  • Rollover budgets for flexible period management
  • Enhanced sync engine with improved reliability
  • Advanced analytics and financial insights
  • Streamlined group bill-splitting workflows
  • Additional features in development pipeline

Testing and Feedback

We're opening this up to the community first. The beta is available via Docker Hub, with full documentation at finpal.palstack.io. Bug reports, feature requests, and feedback are critical as we work toward our February 2026 public launch.

Repository Status

This repository is preserved for historical reference. Active development continues in the FinPal Core repository under the PalStack organization.

An open-source, self-hosted money management platform with comprehensive expense tracking, budgeting, account synchronization, and bill-splitting features - designed for privacy, flexibility, and complete financial control.

🌟 Why DollarDollar?

Born from a desire to move beyond restrictive financial tracking platforms, this app empowers users with:

  • 🔐 Complete control over personal financial data
  • 💡 Flexible expense splitting mechanisms
  • 🏠 Self-hosted privacy
  • 🤝 Collaborative expense management
  • 🔄 Integration with Simplefin (auto tracking accounts and transactions)
  • 💰 Budgets with notifications
  • 🖥️ Seamless integration with Unraid for easy installation and management via Unraid templates
  • 💼 **Track Portfolios and investments with auto update of sticker prices

🚀 Features

  • 💰 Expense Tracking & Management

    • Multi-currency support with automatic conversion
    • Recurring transactions with flexible scheduling
    • Auto-categorization with customizable rules
    • Transaction importing (CSV, SimpleFin)
    • Transaction with multi category support
    • Multi-card and multi-account support
    • Date-based expense tracking
  • 👥 Bill Splitting

    • Multiple split methods: equal, custom amount, percentage
    • Group and personal expense tracking
    • Settlement tracking and balances
    • Email invitations for group members
  • 📊 Budgeting & Analytics

    • Custom budgets with notifications
    • Monthly financial summaries
    • Expense trends visualization
    • Category-based spending analysis
    • Comprehensive balance tracking
  • 🏷️ Organization & Categories

    • Customizable tags for expense categorization
    • Category hierarchies (main categories with sub-categories)
    • Auto-categorization based on transaction patterns
    • Category-based reports for tax purposes
  • 🔐 Security & Privacy

    • Self-hosted for complete data control
    • Local auth + OpenID Connect (OIDC) integration
    • Enterprise-ready authentication with any OIDC provider
    • User management with password recovery
    • No third-party data sharing
  • **💼 Portfolio Management

    • Create and manage multiple investment portfolios
    • Link portfolios to accounts for automatic balance updates
    • Track individual investments across different portfolios
    • Visualize portfolio performance and distribution

🛠️ Getting Started

Updating

If you are encountering issues after updating/pulling the recent docker, please run:

flask db migrate
flask db upgrade

If you wish to reset the database:

python reset.py

Prerequisites

  • Docker
  • Docker Compose

Quick Installation

  1. Clone the repository

    git clone https://github.com/harung1993/dollardollar.git
    cd dollardollar
    
  2. Configure environment

    cp .env.template .env
    # Edit .env with your configuration
    
  3. Launch the application

    docker-compose up -d
    
  4. Access the app at http://localhost:5006

⚙️ Configuration Options

Investment Tracking (Optional)

To enable Investment Tracking :

INVESTMENT_TRACKING_ENABLED=True

OIDC Setup (Optional)

To enable OpenID Connect authentication:

OIDC_ENABLED=True
OIDC_CLIENT_ID=your_client_id
OIDC_CLIENT_SECRET=your_client_secret
OIDC_PROVIDER_NAME=Your Provider Name
OIDC_DISCOVERY_URL=https://your-provider/.well-known/openid-configuration

Other Optionals

Optional settings

LOCAL_LOGIN_DISABLE=True  # Disable password logins
DISABLE_SIGNUPS=True      # Disable registration

Additional Configuration

For detailed configuration options, see the .env.template file.

📸 Screenshots

Dashboard Expense Splitting Settling Splits Budgets Categories Portfolios

🤝 Development Approach

This project explores AI-assisted open-source development:

  • Leveraging AI tools for rapid prototyping
  • Combining technological innovation with human creativity
  • Iterative development with large language models
    • Local LLMs (qwen2.5, DeepSeek-V3)
    • Claude AI
    • Human domain expertise

🤝 Contributing

Contributions are welcome! Please check out our contributing guidelines.

  1. Fork the repository
  2. Create your feature branch
  3. Submit a Pull Request

🙏 Acknowledgements

  • Special thanks to my wife, who endured countless late nights of coding, provided unwavering support, and maintained patience during endless debugging sessions
  • Thanks to JordanDalby for creating and maintaining the Unraid template
  • Thanks to @elmerfds for the OIDC support!

📜 License

This project is licensed under the GNU Affero General Public License v3.0 - see the LICENSE file for details.

This license requires anyone who runs a modified version of this software, including running it on a server as a service, to make the complete source code available to users of that service.

🙏 Support

If you like this project and would like to support my work, you can buy me a coffee!

Install DollarDollar on Unraid in a few clicks.

Find DollarDollar in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for DollarDollar Review the template variables and paths Click Install

Download Statistics

38,463
Total Downloads
810
This Month
1,035
Avg / Month

Total Downloads Over Time

Loading chart...

Related apps

Explore more like this

Explore all

Details

Repository
harung43/dollardollar:latest
Last Updated2026-02-16
First Seen2025-03-10

Runtime arguments

Web UI
http://[IP]:[PORT:5001]/
Network
bridge
Shell
sh
Privileged
false

Template configuration

WEB_UIPorttcp
Target
5001
Default
5001
Value
5001
SQLALCHEMY_DATABASE_URIVariable

Replace your_ with your postgresql details.

Default
postgresql://your_db_user:your_db_pass@your_db_host:5432/your_db_name
Value
postgresql://your_db_user:your_db_pass@your_db_host:5432/your_db_name
SECRET_KEYVariable
Default
your_very_long_random_secret_key
DISABLE_SIGNUPSVariable
Default
False
Value
False
DEBUGVariable
Default
False
Value
True
LOG_LEVELVariable
Default
INFO
Value
INFO
MAIL_SERVERVariable
Default
smtp.gmail.com
Value
smtp.gmail.com
MAIL_PORTVariable
Default
587
Value
587
MAIL_USE_TLSVariable
Default
True
Value
True
MAIL_USE_SSLVariable
Default
False
Value
False
MAIL_USERNAMEVariable
Default
your_email@gmail.com
Value
your_email@gmail.com
MAIL_PASSWORDVariable
Default
your_app_password
Value
your_app_password
MAIL_DEFAULT_SENDERVariable
Default
your_email@gmail.com
Value
your_email@gmail.com