{"id":13599428,"url":"https://github.com/budgetzero/budgetzero","last_synced_at":"2025-04-10T12:32:44.484Z","repository":{"id":37024741,"uuid":"326749266","full_name":"budgetzero/budgetzero","owner":"budgetzero","description":"Open-source, self-hosted, zero-based budgeting.","archived":false,"fork":false,"pushed_at":"2024-10-29T22:31:23.000Z","size":5045,"stargazers_count":622,"open_issues_count":66,"forks_count":44,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-10-30T00:44:54.742Z","etag":null,"topics":["budgeting","cloud-sync","envelope-budget","envelope-budgeting","free","offline","open-source","transactions","ynab"],"latest_commit_sha":null,"homepage":"https://app.budgetzero.io ","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/budgetzero.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-04T16:52:36.000Z","updated_at":"2024-10-21T00:12:59.000Z","dependencies_parsed_at":"2023-02-06T09:32:06.926Z","dependency_job_id":"fabaa269-1adb-4936-a284-a9b4977828e1","html_url":"https://github.com/budgetzero/budgetzero","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/budgetzero%2Fbudgetzero","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/budgetzero%2Fbudgetzero/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/budgetzero%2Fbudgetzero/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/budgetzero%2Fbudgetzero/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/budgetzero","download_url":"https://codeload.github.com/budgetzero/budgetzero/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248217145,"owners_count":21066633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["budgeting","cloud-sync","envelope-budget","envelope-budgeting","free","offline","open-source","transactions","ynab"],"created_at":"2024-08-01T17:01:03.953Z","updated_at":"2025-04-10T12:32:39.473Z","avatar_url":"https://github.com/budgetzero.png","language":"Vue","readme":"# \u003ca href=\"https://app.budgetzero.io\"\u003e\u003cp align=\"center\"\u003e\u003cimg src=\"public/logo.png\" width=\"300\"\u003e\u003c/p\u003e\r\n[![Netlify Status](https://api.netlify.com/api/v1/badges/1eb6d21e-b83a-42ca-9b46-82a0b37889f6/deploy-status)](https://app.netlify.com/sites/budgetzero/deploys)\r\n![master](https://img.shields.io/github/checks-status/budgetzero/budgetzero/master?label=master)\r\n![dev](https://img.shields.io/github/checks-status/budgetzero/budgetzero/dev?label=dev)\r\n![Docker Pulls](https://img.shields.io/docker/pulls/budgetzero/budgetzero)  \r\n![Subreddit subscribers](https://img.shields.io/reddit/subreddit-subscribers/budgetzero?style=for-the-badge)\r\n  \r\n\u003ca href=\"https://www.buymeacoffee.com/budgetzero\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/default-orange.png\" alt=\"Buy Me A Coffee\" height=\"41\" width=\"174\"\u003e\u003c/a\u003e\r\n  \r\nbudgetzero is a free, open-source, privacy-friendly, offline-first budgeting system.  \r\n\r\nUse at [budgetzero.io](https://app.budgetzero.io), [download the desktop apps](https://github.com/budgetzero/budgetzero/releases/latest) or self-host on your own server. Zero ads, zero trackers, just budgeting.\r\n\r\n![](public/screenshot2__nopadding.png)\r\n\r\n:warning: budgetzero is under active development and considered an alpha version. You may encounter significant bugs and breaking changes. Feel free to file an issue! :warning:\r\n\r\n# Features\r\n:heavy_check_mark: Zero-based 'envelope' budgeting   \r\n:heavy_check_mark: Offline-first storage. NOTE: All data is stored in the browser and may be lost if you clear the browser's data.  \r\n:heavy_check_mark: Import Transactions (OFX, QFX, CSV)  \r\n:heavy_check_mark: Carry negative balances into next month  \r\n:heavy_check_mark: Privacy-focused. Zero trackers \u0026 zero analytics.\r\n\r\n# Getting Started\r\nThere's multiple ways to use budgetzero.\r\n1. On the official [app.budgetzero.io](https://app.budgetzero.io) page.\r\n2. Installing the desktop app (Windows or Mac). [Download here](https://github.com/budgetzero/budgetzero/releases/latest)\r\n3. Self host the web app. You can either deploy the docker image or build and host the static files on your own webserver. See deployment section below for more details. \r\n\r\n# :warning: Known Issues (being worked on)\r\n- UI Inconsistencies (pop-up boxes, colors, etc)\r\n- Performance not tested for extremely large budgets (thousands of transactions)\r\n- Transfer transactions work but may be a bit buggy\r\n- Find a bug? Please [file an issue!](../../issues)\r\n\r\n# Roadmap\r\n[Current development board](https://github.com/budgetzero/budgetzero/projects/1)\r\n- [ ] Reports - started!\r\n- [ ] Cloud Sync through budgetzero.io (coming soon)\r\n  - **_Interested in Cloud Sync?_** [Sign up to be notified when available!](https://app.budgetzero.io/login)\r\n- [ ] Self-hosted sync server (coming soon)\r\n- [ ] Cross-platform desktop applications (Windows, Mac, Linux)\r\n- [ ] Multi-month view\r\n- [ ] Payee management\r\n\r\n# Deployment\r\n## Docker \r\n```\r\ndocker pull budgetzero/budgetzero:latest\r\n```\r\nThen run with \r\n```\r\ndocker run -d -p \u003cdesired_port\u003e:8080 --name budgetzero budgetzero/budgetzero\r\n```\r\nExample:\r\n```\r\ndocker run -d -p 8080:8080 --name budgetzero budgetzero/budgetzero\r\n```\r\nYour budgetzero instance is now running at \u003cdocker_IP\u003e:\u003cdesired_port\u003e\r\n\r\n## Manual Deployment\r\nYou can also build the static files and host on any webserver.\r\n```\r\nnpm install\r\nnpm run build\r\n```\r\nThe files will be built into the dist/ folder and can be hosted anywhere.\r\n\r\n## Sync Server Setup\r\nBudgetzero uses [PouchDB](https://pouchdb.com/) to store the all data client-side in the browser. In order to enable sync across multiple browsers and/or devices, you'll need to set up a [CouchDB](https://couchdb.apache.org/) server accessible from the desired devices. This setup guide is a general overview, feel free to adapt as needed.\r\n\r\n\u003cdetails\u003e\r\n  \u003csummary markdown=\"span\"\u003eManual Setup Instructions for Advanced Users\u003c/summary\u003e  \r\n  \u003c/br\u003e  \r\n\r\n1. Install CouchDB on a server: [Manually](https://docs.couchdb.org/en/stable/install/index.html) or with the [official docker couchdb](https://github.com/apache/couchdb-docker) image.  \r\n  If you're using docker, start CouchDB using the provided instructions.  \r\n  Example:  \r\n    ```\r\n    docker run -d --name budgetzero-couchdb-sync -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password couchdb:latest\r\n    ```\r\n    Replace \u003ccode\u003eadmin\u003c/code\u003e and \u003ccode\u003epassword\u003c/code\u003e with desired user/password.  \r\n\r\n2. Navigate to http://[docker_host_IP]:5984/_utils, which opens the Fauxton web interface for CouchDB administration. \r\n\r\n4. Go to 'Configuration' and enable CORS for all domains.  \r\n5. Create a database with whatever name you desire.\r\n6. In BudgetZero, go to Settings and set the couchdb URL to start syncing. This will need to be set up for each client/browser/computer/etc.  \r\n   Examples:  \r\n   ```http://localhost:5984/mybudget```  \r\n   ```http://username:password@192.168.1.10:5984/mybudget``` \r\n      \r\n  ![](public/sync.png)\r\n  \r\n  \r\n\u003c/details\u003e  \r\n\u003c/br\u003e\r\n\r\n# Development\r\n## Pull Requests\r\n\r\nGood pull requests (patches, improvements, new features) are a greatly appreciated.\r\n\r\nPlease ask first before embarking on any significant pull request (e.g. implementing features, refactoring code), otherwise, you risk spending a lot of time working on something that might not get accepted or is already in development.\r\n\r\n## Dev Setup\r\n```\r\nnpm install\r\n```\r\n\r\n### To start a development web server:\r\n```\r\nnpm run serve\r\n```\r\n\r\n### Run tests\r\nRun all tests once:\r\n```\r\nnpm run test:unit\r\n```\r\n\r\nRun all tests and re-run if files change:  \r\n```\r\nnpm run test-watch:unit\r\n```\r\n\r\nRun with debugger (chrome://inspect)\r\n```\r\nnode --inspect node_modules/.bin/jest --runInBand tests/unit/Transactions.spec.js    \r\n```\r\n","funding_links":["https://www.buymeacoffee.com/budgetzero"],"categories":["Vue","Software","open-source"],"sub_categories":["Money, Budgeting \u0026 Management"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbudgetzero%2Fbudgetzero","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbudgetzero%2Fbudgetzero","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbudgetzero%2Fbudgetzero/lists"}