Skip to content

Home

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

An advanced finance tracker.
Explore the docs »

Report Bug · Request Feature

About The Project

Screenshots - COMING SOON

LenoreFin began as a simple Excel spreadsheet I used to manage my family's budget. But over time, I realized no existing tools gave me the control, flexibility, and privacy I wanted. So I built LenoreFin—a personal finance tracker that puts you in charge.

Designed for self-hosting, LenoreFin keeps your financial data completely local, with no third-party syncing or hidden services. It includes tools for tracking cash flow, setting up custom budgets, tagging transactions, planning for retirement or big purchases, getting bill reminders, and even forecasting account balances. Whether you're budgeting for groceries or planning a 10-year savings goal, LenoreFin helps you see the full picture—on your terms.

(back to top)

Built With

  • Django
  • Vue
  • Docker

(back to top)

Getting Started

Welcome to LenoreFin! This guide will help you set up and run the application using Docker and Docker Compose.

Prerequisites

Make sure you have the following installed on your system:

Step 1: Create a .env File

Create a .env file in the root directory of the project. This file will store environment variables required to run the application. Below is an example of the variables you need to define:

DEBUG=0
SECRET_KEY=mysupersecretkey
DJANGO_ALLOWED_HOSTS=localhost
CSRF_TRUSTED_ORIGINS=http://localhost
SQL_ENGINE=django.db.backends.postgresql
SQL_DATABASE=lenorefin
SQL_USER=lenorefinuser
SQL_PASSWORD=somepassword
SQL_HOST=db
SQL_PORT=5432
DATABASE=postgres
DJANGO_SUPERUSER_PASSWORD=suepervisorpassword
DJANGO_SUPERUSER_EMAIL=someone@somewhere.com
DJANGO_SUPERUSER_USERNAME=supervisor
VITE_API_KEY=someapikey
TIMEZONE=America/New_York

Adjust these values according to your environment and application requirements.

Step 2: Create a docker-compose.yml File

Create a docker-compose.yml file in the root directory of the project. Below is an example configuration:

services:
  frontend:
    image: novanglus96/lenorefin_frontend:latest
    container_name: lenorefin_frontend
    networks:
      - lenorefin
    restart: unless-stopped
    expose:
      - 80
    env_file:
      - ./.env
  backend:
    image: novanglus96/lenorefin_backend:latest
    container_name: lenorefin_backend
    command: /home/app/web/start.sh
    volumes:
      - lenorefin_static_volume:/home/app/web/staticfiles
      - lenorefin_media_volume:/home/app/web/mediafiles
    expose:
      - 8000
    depends_on:
      - db
    networks:
      - lenorefin
    env_file:
      - ./.env
  db:
    image: postgres:15
    container_name: lenorefin_db
    volumes:
      - lenorefin_postgres_data:/var/lib/postgresql/data/
    env_file:
      - ./.env.db
    networks:
      - lenorefin
  nginx:
    image: novanglus96/lenoreapps_proxy:latest
    container_name: lenorefin_nginx
    ports:
      - "8080:80"
    volumes:
      - lenorefin_static_volume:/home/app/web/staticfiles
      - lenorefin_media_volume:/home/app/web/mediafiles
    depends_on:
      - backend
      - frontend
    networks:
      - lenorefin

networks:
  lenorefin:

volumes:
  lenorefin_postgres_data:
    external: true
  lenorefin_static_volume:
    external: true
  lenorefin_media_volume:
    external: true

Step 3: Run the Application

  1. Start the services:

bash docker compose up -d

  1. Access the application in your browser at http://localhost:8080.

Notes

  • Adjust exposed ports as needed for your environment.
  • If you encounter any issues, ensure your .env file has the correct values and your Docker and Docker Compose installations are up to date.

Enjoy using LenoreFin!

(back to top)

Roadmap

  • [ ] v1.2 Release
  • [ ] Credit Card Bill Calculations
  • [ ] Loading Screen on app load
  • [ ] Interest Tracking On Loans
  • [ ] Financial Wizard

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated. Please follow these steps and guidelines to help us maintain a smooth development process.

1. Fork the Repository

  • Click the Fork button at the top-right of this repository to create your own copy.
  • Clone your fork locally.

2. Branch Naming

Create branches following this pattern:

  • Features: feature/branch-name - For new features or enhancements.
  • Fixes: fix/branch-name - For bug fixes or patches.

3. Pull Request Targets

Submit pull requests to the appropriate branch based on the stability of your changes:

Target Branch Purpose
main Production-ready changes for release.
rc Release candidates for staging releases.
alpha Experimental and unstable changes.
beta More stable than alpha, for broader testing.

PRs to main and rc branches are for finalized changes intended for the next release. PRs to alpha and beta are for testing and experimental work.

4. Commit Message Format

We use semantic commit messages to automate changelog and versioning.

Format:

<type>(optional scope): <short description>
Common types
feat: A new feature
fix: A bug fix
chore: Changes to build process or auxiliary tools
docs: Documentation only
style: Formatting, missing semicolons, etc; no code change
refactor: Code change that neither fixes a bug nor adds a feature
perf: Performance improvements
test: Adding or fixing tests

Breaking changes: Add ! after type or scope

feat!: drop support for Node 10
fix(api)!: change endpoint response format

Examples:

  • feat: add user profile page
  • fix(auth): handle expired tokens gracefully
  • chore: update dependencies
  • perf: optimize image loading

5. Pull Request Checklist

Before submitting your PR, please ensure:

  • Your branch is up to date with the target branch.
  • Your code passes all tests and linters.
  • You have added or updated tests if applicable.
  • Relevant documentation has been added or updated.
  • Your PR description clearly explains your changes and references related issues.

6. Testing Changes

Please test your changes locally or in a staging environment before opening a PR. Use alpha or beta branches for testing experimental changes.

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Support

Buy Me A Coffee

Or

Contact

John Adams - Lenore.Apps@gmail.com

Project Link: https://github.com/Novanglus96/LenoreFin

(back to top)

Acknowledgements

A heartfelt thanks to our Patrons for their generous support! Your contributions help us maintain and improve this project.

⭐ Thank You to Our Supporters:

Red Supporter Badge Red Supporter Badge BuyMeACoffee Supporter Badge

Want to see your name here? Support us on Patreon to join our amazing community and shape the future of LenoreFin!

(back to top)