Home

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.
Built With
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
- Start the services:
bash
docker compose up -d
- 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!
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).
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.
License
Distributed under the MIT License. See LICENSE.txt
for more information.
Support
Or
Contact
John Adams - Lenore.Apps@gmail.com
Project Link: https://github.com/Novanglus96/LenoreFin
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:
Want to see your name here? Support us on Patreon to join our amazing community and shape the future of LenoreFin!