A local-first personal finance system
Find a file
Tom French 43740f18f1 Merge branch 'master' into i18n
* master: (24 commits)
  refactor: sort imports in desktop-client alphabetically
  chore: remove unused imports from desktop-client
  adm-zip to 0.5.6
  style: prettify .eslintrc.js
  build: make eslint-plugin-prettier a dependency of desktop-client
  ci: lint desktop-client in CI
  style: fix or silence linting errors in desktop-client
  chore: update remaining test scripts
  github fix indentation in issue template
  github: update issue template
  fix: correct some re-exports which were breaking things
  fix: stop trying to transform node_modules
  fix: stop the web tests from running in node environment
  fix: add ts-jest presets which are equivalent to the old `transform` properties
  fix: add esModuleInterop so that the default imports issue goes away
  fix: stop typechecking javascript files
  chore: allow mobile package to pass with no tests
  build: replace babel-jest with ts-jest
  Update bug-report.yml
  Addition: Issue template
  ...
2022-08-30 10:24:17 +01:00
.github github fix indentation in issue template 2022-08-24 21:25:48 +01:00
.yarn chore: update to yarnv3 and fix missing packages preventing install 2022-08-22 22:35:07 -04:00
bin chore: update package scripts to take advantage of yarn v3 2022-08-22 22:35:07 -04:00
data Initial (open-source) 2022-04-28 22:44:38 -04:00
docs Add docs for building for windows (contributed by @ejmurra) 2022-08-12 09:48:38 -04:00
packages Merge branch 'master' into i18n 2022-08-30 10:24:17 +01:00
patches fix: move downshift patch to monorepo root 2022-08-22 22:35:07 -04:00
.editorconfig Create .editorconfig 2022-04-30 12:17:49 -04:00
.eslintrc.js style: prettify .eslintrc.js 2022-08-25 16:36:02 +01:00
.gitattributes Initial (open-source) 2022-04-28 22:44:38 -04:00
.gitignore chore: update to yarnv3 and fix missing packages preventing install 2022-08-22 22:35:07 -04:00
.nvmrc build: fix offical node version to 16.15.0 2022-07-07 18:27:52 -04:00
.prettierrc.json style: switch prettier to enforce single quotes 2022-07-24 08:53:04 +01:00
.yarnrc.yml chore: update to yarnv3 and fix missing packages preventing install 2022-08-22 22:35:07 -04:00
CONTRIBUTING.md cleanup 2022-04-29 02:02:46 -04:00
LICENSE.txt license 2022-04-29 10:40:12 -04:00
package.json ci: lint desktop-client in CI 2022-08-25 16:21:26 +01:00
README.md docs: remove holiday text from README 2022-07-07 18:20:42 -04:00
tsconfig.json fix: add esModuleInterop so that the default imports issue goes away 2022-08-24 21:09:45 +01:00
yarn.lock Merge branch 'master' into i18n 2022-08-30 10:24:17 +01:00

This is the source code for Actual, a local-first personal finance tool. It is 100% free and open-source.

If you are only interested in running the latest version, you don't need this repo. You can get the latest version through npm.

More docs are available in the docs folder.

If you are interested in contributing, or want to know how development works, see CONTRIBUTING.md

Join the discord!

Installation

The easiest way to get Actual running is to use the actual-server project. That is the server for syncing changes across devices, and it comes with the latest version of Actual. The server will provide both the web project and a server for syncing.

git clone https://github.com/actualbudget/actual-server.git
cd actual-server
yarn install
yarn start

Navigate to https://localhost:5006 in your browser and you will see Actual.

You should deploy the server somewhere so you can access your data from anywhere. See instructions on the actual-server repo.

Without a server

This will give you a fully local web app without a server. This npm package is the packages/desktop-client package in this repo built for production:

yarn add @actual-app/web

Now you need to serve the files in node_modules/@actual-app/web/build. One way to do it:

cd node_modules/@actual-app/web/build
npx http-server .

Navigate to http://localhost:8080 and you should see Actual.

Building

If you want to build the latest version, see releasing.md. It provides instructions for building this code into the same artifacts that come from npm.

Run locally

Both the electron and web app can started with a single command. When running in development, it will store data in a data directory in the root of the actual directory.

First, make sure to run yarn install to install all dependencies.

In the root of the project:

yarn start            # Run the electron app
yarn start:browser    # Run the web app

Code structure

The app is split up into a few packages:

  • loot-core - The core application that runs on any platform
  • loot-design - The generic design components that make up the UI
  • desktop-client - The desktop UI
  • desktop-electron - The desktop app
  • mobile - The mobile app

More docs are available in the docs folder.