* Added Global Synced Prefs * [autofix.ci] apply automated fixes * Add release notes for PR #6234 * typecheck * lint fix * Refactor global synced preferences to server preferences - Removed global synced preferences implementation and related files. - Introduced server preferences with a new slice and hooks for managing user settings. - Updated components and hooks to utilize server preferences instead of global synced preferences. - Adjusted Redux store and mock configurations to reflect the changes. - Enhanced user settings consistency across devices with the new server preferences structure. * Implement server preferences for feature flags and enhance admin permissions - Updated the Experimental component to conditionally display based on user permissions and login method. - Refactored feature flag handling to use 'flags.plugins' instead of 'plugins'. - Introduced server-side checks to restrict access to server preferences for admin users only. - Added comprehensive tests for server preferences management, ensuring proper handling of user roles and preferences. * Enhance error handling in saveServerPrefs thunk - Updated the saveServerPrefs async thunk to handle potential errors from the server response. - Added a check for the presence of an error in the result and return it accordingly. - Ensured that preferences are still dispatched to the store upon successful save. * Feedback: strict "flags.plugins" typing * Feedback: move state slice * Feedback: localstorage pref * Feedback: move serverPrefsSlide into prefsSlice * Refactor: Remove duplicate import of PostError in app.ts * Rename serverPrefs state slice property to server (#6596) --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
This is the main project to run Actual, a local-first personal finance tool. It comes with the latest version of Actual, and a server to persist changes and make data available across all devices.
Getting Started
Actual is a local-first personal finance tool. It is 100% free and open-source, written in NodeJS, it has a synchronization element so that all your changes can move between devices without any heavy lifting.
If you are interested in contributing, or want to know how development works, see our contributing document we would love to have you.
Want to say thanks? Click the ⭐ at the top of the page.
Using the CLI tool
Node.js v22 or higher is required for the @actual-app/sync-server npm package
Install globally with npm:
npm install --location=global @actual-app/sync-server
After installing, you can execute actual-server commands directly in your terminal.
Usage
actual-server [options]
Available options
| Command | Description |
|---|---|
-h or --help |
Print this list and exit. |
-v or --version |
Print this version and exit. |
--config |
Path to the config file. |
--reset-password |
Reset your password |
Examples
Run with default configuration
actual-server
Run with custom configuration
actual-server --config ./config.json
Reset your password
actual-server --reset-password
Documentation
We have a wide range of documentation on how to use Actual. This is all available in our Community Documentation, including topics on installing, Budgeting, Account Management, Tips & Tricks and some documentation for developers.
Feature Requests
Current feature requests can be seen here. Vote for your favorite requests by reacting 👍 to the top comment of the request.
To add new feature requests, open a new Issue of the "Feature Request" type.