selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
dollardollar logo

Self-host dollardollar

v4.4

Personal finance tracker with bill splitting and portfolios

ReleaseOpen SourceAGPL-3.0
Docker ComposeCompose file & guide
docker-compose up -d
Updated8 months ago
LanguageJavaScript
Setup difficultyModerate
Stars
325
Port
5001 (HTTP web interface)
Requires
PostgreSQL
Docker
harung43/dollardollar
Dashboard view showing financial overviewExpense splitting interfaceSettling splits viewBudgets management screenCategories managementPortfolios view

What is dollardollar?

DollarDollar Bill Y'all is a self-hosted money management application built with Flask and PostgreSQL that helps individuals and groups track expenses, split bills, manage budgets, and monitor investment portfolios. It supports multi-currency transactions with automatic conversion, recurring transactions, auto-categorization, CSV and SimpleFin import for bank synchronization, and flexible bill splitting with equal, custom amount, or percentage methods. The platform includes budgeting with notifications, category hierarchies, portfolio tracking with automatic price updates, and enterprise-ready authentication via local accounts or any OIDC provider. It runs via Docker Compose with a PostgreSQL database and exposes a web interface on port 5001 (mapped to 5006 by default). The project is licensed under AGPL-3.0 and has evolved into FinPal under the PalStack ecosystem, though this repository remains available for self-hosting.

Should you self-host dollardollar?

dollardollar scores 44/100 on selfhost.directory (how scoring works) and ranks #42 of 62 in Personal Finance. It has 325 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is AGPL-3.0-licensed and written mostly in JavaScript.

Its closest alternative on selfhost.directory is Firefly III (82/100, 25 022 stars). It scores higher overall, so compare the two before you pick. See dollardollar vs Firefly III side by side.

Features

  • Bill Splitting
  • Budgeting & Analytics
  • Category Management
  • Email notifications
  • Expense Tracking
  • Multi-currency Support
  • OIDC Authentication
  • Portfolio Management
  • SimpleFin integration

dollardollar README

How to install dollardollar

Install dollardollar with Docker Compose

Docker, Docker Compose
Environment variables
DB_USER, DB_PASSWORD, DB_NAME, SECRET_KEY, DISABLE_SIGNUPS, DEBUG, LOG_LEVEL, LOCAL_LOGIN_DISABLE, DEVELOPMENT_MODE, MAIL_SERVER, MAIL_PORT, MAIL_USE_TLS, MAIL_USE_SSL, MAIL_USERNAME, MAIL_PASSWORD, MAIL_DEFAULT_SENDER, OIDC_ENABLED, OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, OIDC_ISSUER, OIDC_PROVIDER_NAME, APP_URL, OIDC_LOGOUT_URI, OIDC_DISCOVERY_URL, SIMPLEFIN_ENABLED, INVESTMENT_TRACKING_ENABLED
  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

Requires Docker and Docker Compose. Uses PostgreSQL 13 database container.

How to configure dollardollar

  • APP_URLApplication URL for OIDC callbacks

    Application URL for OIDC callbacks

  • DB_NAMEdollardollarPostgreSQL database name

    PostgreSQL database name

  • DB_PASSWORDPostgreSQL database password

    PostgreSQL database password

  • DB_USERpostgresPostgreSQL database username

    PostgreSQL database username

  • DEBUGFalseEnable Flask debug mode

    Enable Flask debug mode

    values: True, False

  • DEVELOPMENT_MODEFalseRun in development mode

    Run in development mode

    values: True, False

  • DISABLE_SIGNUPSFalseDisable new user registration

    Disable new user registration

    values: True, False

  • INVESTMENT_TRACKING_ENABLEDTrueEnable investment portfolio tracking

    Enable investment portfolio tracking

    values: True, False

  • LOCAL_LOGIN_DISABLEFalseDisable password logins when OIDC is enabled

    Disable password logins when OIDC is enabled

    values: True, False

  • LOG_LEVELINFOApplication log level

    Application log level

    values: DEBUG, INFO, WARNING, ERROR

  • MAIL_DEFAULT_SENDERDefault sender email address

    Default sender email address

  • MAIL_PASSWORDSMTP password or app password

    SMTP password or app password

  • MAIL_PORT587SMTP server port

    SMTP server port

  • MAIL_SERVERsmtp.gmail.comSMTP server hostname

    SMTP server hostname

  • MAIL_USERNAMESMTP username

    SMTP username

  • MAIL_USE_SSLFalseUse SSL for SMTP

    Use SSL for SMTP

    values: True, False

  • MAIL_USE_TLSTrueUse TLS for SMTP

    Use TLS for SMTP

    values: True, False

  • OIDC_CLIENT_IDdollardollarOIDC client ID

    OIDC client ID

  • OIDC_CLIENT_SECRETOIDC client secret

    OIDC client secret

  • OIDC_DISCOVERY_URLOIDC discovery URL (optional)

    OIDC discovery URL (optional)

  • OIDC_ENABLEDFalseEnable OpenID Connect authentication

    Enable OpenID Connect authentication

    values: True, False

  • OIDC_ISSUEROIDC issuer URL

    OIDC issuer URL

  • OIDC_LOGOUT_URIOIDC logout URI

    OIDC logout URI

  • OIDC_PROVIDER_NAMEOIDC provider display name for login button

    OIDC provider display name for login button

  • SECRET_KEYFlask secret key for session security

    Flask secret key for session security

  • SIMPLEFIN_ENABLEDTrueEnable SimpleFin integration for bank sync

    Enable SimpleFin integration for bank sync

    values: True, False

dollardollar releases & version history

More in Personal Finance

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…