3.4 KiB
title
| title |
|---|
| The Actual Project Structure |
Actual is made up of lots of different packages in this article we are going to try and explain how each of them fits together to form the project you know as Actual Budget.
All of the actual repositories can be found in the Actual Budget organization on GitHub, within that organization you will then find the following repositories
Actual
This repository hold all of the front end code for the Actual Budget application, it also holds all the packages for other parts of the application too such as the desktop application and importers.
├── actual
└── Packages
└── api
└── desktop-client
└── desktop-electron
└── import-ynab4
└── import-ynab5
└── loot-core
└── loot-design
└── mobile
└── node-libofx
...
│
Desktop Client
While this is called Desktop Client, this actually has nothing to do with the desktop, this package forms the front end code for the Actual Web app, the code that you see when you load Actual in your browser.
Desktop Electron
This is the source code for the Desktop application, in it's current state it is not configured to work with the self hosted version of Actual Budget, however the source code is available for this to be completed.
Import ynab4
The importer for YNAB4 into Actual.
Import ynab5
The development version of the importer for nYNAB into Actual.
Loot Core
Loot Design
Mobile
This packages holds the source code for the Android & iOS applications.
:::note These applications are no longer supported and are being replaced with a responsive first version of Actual Web :::
Node Libofx
Actual Server
Actual Server holds all of the code for the synchronization element of the Actual Budget application. Actual server has a dependency of Actual so when you pull Actual Server and deploy it to your hosting method of choice, be that Fly, Local etc. and run yarn install Actual will be downloaded as a dependency from npm and installed into the Actual Server deployment.
You can see this in the package.json file;
"dependencies": {
"@actual-app/api": "4.1.0",
"@actual-app/web": "4.1.0",
"bcrypt": "^5.0.1",
"better-sqlite3": "^7.5.0",
"body-parser": "^1.18.3",
"cors": "^2.8.5",
"express": "4.17",
"express-actuator": "^1.8.1",
"express-response-size": "^0.0.3",
"node-fetch": "^2.2.0",
"uuid": "^3.3.2"
},
So, you might see some changes being made in the Actual repository but them changes are not reflected in your deployment despite you having the latest version pulled, why? Because Actual hasn't been updated in npm.
Actual is only updated in npm when a release is created.
Actual Releases
This repository holds all of the official releases of Actual Budget, each release gets a tagged and each element of the Actual Budget project can be downloaded.
As of right now 0.0.148 is the latest official release.