[GH-ISSUE #524] [Feature] Add user support to Actual #41856

Closed
opened 2026-04-26 01:18:26 -05:00 by GiteaMirror · 25 comments
Owner

Originally created by @rich-howell on GitHub (Jan 22, 2023).
Original GitHub issue: https://github.com/actualbudget/actual/issues/524

Discussed in https://github.com/actualbudget/actual/discussions/157

Originally posted by winklevos August 6, 2022
User enhancements
- User sign-in support
- Multiple users per server support
- Shared access to account support

Originally created by @rich-howell on GitHub (Jan 22, 2023). Original GitHub issue: https://github.com/actualbudget/actual/issues/524 ### Discussed in https://github.com/actualbudget/actual/discussions/157 <div type='discussions-op-text'> <sup>Originally posted by **winklevos** August 6, 2022</sup> User enhancements - User sign-in support - Multiple users per server support - Shared access to account support</div>
GiteaMirror added the feature label 2026-04-26 01:18:26 -05:00
Author
Owner

@rich-howell commented on GitHub (Jan 28, 2023):

Discussed in https://github.com/actualbudget/actual/discussions/123

Originally posted by Quigley-Brendan July 5, 2022
I was one of those YNAB people who got their friends and family using YNAB. After a few price increases etc I'm finding it harder to recommend. But I could totally self-host an Actual Server (just found this app the other day). If accounts could be enabled on the server I could give the people in my circle their own account, potentially saving them a bit each year on the YNAB referral.

Any plans to make this happen?

<!-- gh-comment-id:1407342785 --> @rich-howell commented on GitHub (Jan 28, 2023): Discussed in https://github.com/actualbudget/actual/discussions/123 Originally posted by Quigley-Brendan July 5, 2022 I was one of those YNAB people who got their friends and family using YNAB. After a few price increases etc I'm finding it harder to recommend. But I could totally self-host an Actual Server (just found this app the other day). If accounts could be enabled on the server I could give the people in my circle their own account, potentially saving them a bit each year on the YNAB referral. Any plans to make this happen?
Author
Owner

@tjex commented on GitHub (Mar 21, 2023):

Was thinking about an alternate solution for implementing multi-user login based on what is currently available.

Considering there is already per budget file encryption enabled, could it be an option to share the same login to the server instance, but instead of being presented with all budgets, the user would need to input their password for their encrypted budget file/s.

All budgets that match that password, could then be shown and subsequently opened.

This might be smoother to implement than multi user server login?

<!-- gh-comment-id:1477581771 --> @tjex commented on GitHub (Mar 21, 2023): Was thinking about an alternate solution for implementing multi-user login based on what is currently available. Considering there is already per budget file encryption enabled, could it be an option to share the same login to the server instance, but instead of being presented with all budgets, the user would need to input their password for their encrypted budget file/s. All budgets that match that password, could then be shown and subsequently opened. This might be smoother to implement than multi user server login?
Author
Owner

@j-f1 commented on GitHub (Mar 21, 2023):

That’s a good idea! Thinking about how that would work, we’d fetch all of the encrypted keys from the server, then try the password against all of them. I’m not sure if there would be a way for us to grant access to only the budgets encrypted with a given key in the backend since there isn’t exactly a way to prove that we can decrypt that key. But I think that’s definitely a good approach to investigate more!

<!-- gh-comment-id:1477845659 --> @j-f1 commented on GitHub (Mar 21, 2023): That’s a good idea! Thinking about how that would work, we’d fetch all of the encrypted keys from the server, then try the password against all of them. I’m not sure if there would be a way for us to grant access to only the budgets encrypted with a given key in the backend since there isn’t exactly a way to prove that we can decrypt that key. But I think that’s definitely a good approach to investigate more!
Author
Owner

@github-actions[bot] commented on GitHub (May 1, 2023):

Thanks for sharing your idea!

This repository is now using lodash style issue management for enhancements. This means enhancement issues will now be closed instead of leaving them open. This doesn’t mean we don’t accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make a successful contribution).

The enhancement backlog can be found here: https://github.com/actualbudget/actual/issues?q=label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc+

Don’t forget to upvote the top comment with 👍!

<!-- gh-comment-id:1530124107 --> @github-actions[bot] commented on GitHub (May 1, 2023): :sparkles: Thanks for sharing your idea! :sparkles: This repository is now using lodash style issue management for enhancements. This means enhancement issues will now be closed instead of leaving them open. This doesn’t mean we don’t accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make a successful contribution). The enhancement backlog can be found here: https://github.com/actualbudget/actual/issues?q=label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc+ Don’t forget to upvote the top comment with 👍!
Author
Owner

@imjuniper commented on GitHub (Jul 12, 2023):

@j-f1 I haven't checked how the backend works at all (very new to Actual Budget), but considering the encryption keys are in a database already, couldn't it be possible to add a table to know which key is related to which file? Or it could also just use multiple databases, just split into subfolders according to the username (i.e. username/account.sqlite).

<!-- gh-comment-id:1631839445 --> @imjuniper commented on GitHub (Jul 12, 2023): @j-f1 I haven't checked how the backend works at all (very new to Actual Budget), but considering the encryption keys are in a database already, couldn't it be possible to add a table to know which key is related to which file? Or it could also just use multiple databases, just split into subfolders according to the username (i.e. `username/account.sqlite`).
Author
Owner

@Scot-Survivor commented on GitHub (Jul 12, 2023):

I'm surprised the demand for this isn't higher. With those with families. It would be brilliant to have a little raspberry pi hosting actual for the whole family to be able to use (and safely, without worrying about other family members)

Shared files allowing to budget with roommates or partners.

And obviously the fact that not everyone has the ability to set this up, but the chances are they have a nerdy friend who can, but having to setup 1 server (and this subdomain) per user is more work than it's worth to say the least.

Is there a branch or current PR where this is being worked on, I'd love to help out.

<!-- gh-comment-id:1632251613 --> @Scot-Survivor commented on GitHub (Jul 12, 2023): I'm surprised the demand for this isn't higher. With those with families. It would be brilliant to have a little raspberry pi hosting actual for the whole family to be able to use (and safely, without worrying about other family members) Shared files allowing to budget with roommates or partners. And obviously the fact that not everyone has the ability to set this up, but the chances are they have a nerdy friend who can, but having to setup 1 server (and this subdomain) per user is more work than it's worth to say the least. Is there a branch or current PR where this is being worked on, I'd love to help out.
Author
Owner

@j-f1 commented on GitHub (Jul 12, 2023):

@jakobbouchard We already store separate encryption keys for every file that has encryption enabled (it’s optional).

<!-- gh-comment-id:1632271287 --> @j-f1 commented on GitHub (Jul 12, 2023): @jakobbouchard We already store separate encryption keys for every file that has encryption enabled (it’s optional).
Author
Owner

@j-f1 commented on GitHub (Jul 12, 2023):

@Scot-Survivor I don’t know of anyone working on this at the moment, but feel free to pitch your idea for how this would work!

<!-- gh-comment-id:1632273096 --> @j-f1 commented on GitHub (Jul 12, 2023): @Scot-Survivor I don’t know of anyone working on this at the moment, but feel free to pitch your idea for how this would work!
Author
Owner

@j-f1 commented on GitHub (Jul 12, 2023):

Potentially relevant: https://github.com/actualbudget/actual-server/pull/219 (we hope to merge that PR soon)

<!-- gh-comment-id:1632274697 --> @j-f1 commented on GitHub (Jul 12, 2023): Potentially relevant: https://github.com/actualbudget/actual-server/pull/219 (we hope to merge that PR soon)
Author
Owner

@Scot-Survivor commented on GitHub (Jul 12, 2023):

Just pulling the discussion from Discord, as per @j-f1 , it would be possible to add a username field when logging, and only serve the associated files to that user.
However, some additional things would be required:

  • Admin Account (and management?)
  • Admin Dashboard (Reset user passwords, remove users, add users?)
    And then from me myself I'd like to see:
  • See stats, such as storage per user.
  • Enforce End to End Encryption.
  • Enforce 2FA on the admin (this should probably be added for all users, I think I saw an issue with this?)

Does anyone else see something I'm missing?

<!-- gh-comment-id:1632360859 --> @Scot-Survivor commented on GitHub (Jul 12, 2023): Just pulling the discussion from Discord, as per @j-f1 , it would be possible to add a username field when logging, and only serve the associated files to that user. However, some additional things would be required: - Admin Account (and management?) - Admin Dashboard (Reset user passwords, remove users, add users?) And then from me myself I'd like to see: - See stats, such as storage per user. - Enforce End to End Encryption. - Enforce 2FA on the admin (this should probably be added for all users, I think I saw an issue with this?) Does anyone else see something I'm missing?
Author
Owner

@j-f1 commented on GitHub (Jul 12, 2023):

Seems reasonable except for the 2FA bit — would like to see use of passkeys instead of requiring more complex security measures if possible.

<!-- gh-comment-id:1632423050 --> @j-f1 commented on GitHub (Jul 12, 2023): Seems reasonable except for the 2FA bit — would like to see use of passkeys instead of requiring more complex security measures if possible.
Author
Owner

@Scot-Survivor commented on GitHub (Jul 12, 2023):

True, if I recall correctly there's a library that can handle both 2FA & Passkeys, I personally don't own a pass key so I'm left with having to use 2FA codes.

<!-- gh-comment-id:1632456934 --> @Scot-Survivor commented on GitHub (Jul 12, 2023): True, if I recall correctly there's a library that can handle both 2FA & Passkeys, I personally don't own a pass key so I'm left with having to use 2FA codes.
Author
Owner

@Gandalf-the-Blue commented on GitHub (Aug 13, 2023):

I am currently sharing my instance of Actual with my sister. We use the same password for logging in but then have our separate budget files, E2E encrypted. The only problem I see with this setup is either user can delete the others' file without problem. If a temporary fix to input the E2E password before deleting a file is added it would solve this issue at least temporarily.

<!-- gh-comment-id:1676361495 --> @Gandalf-the-Blue commented on GitHub (Aug 13, 2023): I am currently sharing my instance of Actual with my sister. We use the same password for logging in but then have our separate budget files, E2E encrypted. The only problem I see with this setup is either user can delete the others' file without problem. If a temporary fix to input the E2E password before deleting a file is added it would solve this issue at least temporarily.
Author
Owner

@Scot-Survivor commented on GitHub (Aug 19, 2023):

Is there anyone working on this at the moment?

<!-- gh-comment-id:1684923780 --> @Scot-Survivor commented on GitHub (Aug 19, 2023): Is there anyone working on this at the moment?
Author
Owner

@barart commented on GitHub (Feb 7, 2024):

+1 on this, i do not want to create a new docker instance for each member of my family

<!-- gh-comment-id:1932831759 --> @barart commented on GitHub (Feb 7, 2024): +1 on this, i do not want to create a new docker instance for each member of my family
Author
Owner

@akshay7394 commented on GitHub (Mar 29, 2024):

+1 on this from me too

<!-- gh-comment-id:2026841459 --> @akshay7394 commented on GitHub (Mar 29, 2024): +1 on this from me too
Author
Owner

@S4GU4R0 commented on GitHub (Apr 5, 2024):

This has the second most upvotes outside of Plaid integration. When perusing other feature requests with less votes, there are tasks done. Is it possible to get an update and some clarification on this? Thank you.

<!-- gh-comment-id:2040487929 --> @S4GU4R0 commented on GitHub (Apr 5, 2024): This has the second most upvotes outside of Plaid integration. When perusing other feature requests with less votes, there are tasks done. Is it possible to get an update and some clarification on this? Thank you.
Author
Owner

@rich-howell commented on GitHub (Apr 6, 2024):

This has the second most upvotes outside of Plaid integration. When perusing other feature requests with less votes, there are tasks done. Is it possible to get an update and some clarification on this? Thank you.

Unfortunately, the up votes never seem to mean anything, feature requests are done on a contributor basis based on what someone fancies doing, the core team rarely looks at the top voted features and implements them.

  • Dark mode for example got implemented because someone knew how to do it and wanted it not because it had lots of votes.
  • Transaction lock was implemented because a fork of Actual implemented that and pushed the changes upstream, again not because it had a lot of votes.

Have a read of this https://actualbudget.org/docs/contributing/leadership/new-core-contributors-guide "We do not assign specific roles or responsibilities but instead allow people to choose what they want to work on."

<!-- gh-comment-id:2040998616 --> @rich-howell commented on GitHub (Apr 6, 2024): > This has the second most upvotes outside of Plaid integration. When perusing other feature requests with less votes, there are tasks done. Is it possible to get an update and some clarification on this? Thank you. Unfortunately, the up votes never seem to mean anything, feature requests are done on a contributor basis based on what someone fancies doing, the core team rarely looks at the top voted features and implements them. - Dark mode for example got implemented because someone knew how to do it and wanted it not because it had lots of votes. - Transaction lock was implemented because a fork of Actual implemented that and pushed the changes upstream, again not because it had a lot of votes. Have a read of this https://actualbudget.org/docs/contributing/leadership/new-core-contributors-guide "We do not assign specific roles or responsibilities but instead allow people to choose what they want to work on."
Author
Owner

@Kidglove57 commented on GitHub (Apr 6, 2024):

Unfortunately, the up votes never seem to mean anything, feature requests are done on a contributor basis based on what someone fancies doing, the core team rarely looks at the top voted features and implements them.

Like you, I’m not clear as to what (or whether) there is a process for looking at up votes but I guess the hard reality is the volunteer developers will only work on those things that really appeal to their particular use case. Regrettably, I’m not clear how in an open source, volunteer led, project it can really be much different.

<!-- gh-comment-id:2041075285 --> @Kidglove57 commented on GitHub (Apr 6, 2024): > Unfortunately, the up votes never seem to mean anything, feature requests are done on a contributor basis based on what someone fancies doing, the core team rarely looks at the top voted features and implements them. Like you, I’m not clear as to what (or whether) there is a process for looking at up votes but I guess the hard reality is the volunteer developers will only work on those things that really appeal to their particular use case. Regrettably, I’m not clear how in an open source, volunteer led, project it can really be much different.
Author
Owner

@rich-howell commented on GitHub (Apr 7, 2024):

Unfortunately, the up votes never seem to mean anything, feature requests are done on a contributor basis based on what someone fancies doing, the core team rarely looks at the top voted features and implements them.

Like you, I’m not clear as to what (or whether) there is a process for looking at up votes but I guess the hard reality is the volunteer developers will only work on those things that really appeal to their particular use case. Regrettably, I’m not clear how in an open source, volunteer led, project it can really be much different.

What is the point in the votes then?

You could still have a team of volunteer developers who volunteer their time to work on Actual, tasks could be assigned to that team but that isn't how it works, however some aspects of the project are structured in a way that makes it seem like that is how it works.

I volunteer at a local railway, I don't get to just turn up and do what I want, the railway has a plan and I have to do what I am told, I couldn't just draw a pretty picture of a train in a different colour walk around the yard and get 100 signature's and then paint the train like my picture.

<!-- gh-comment-id:2041328343 --> @rich-howell commented on GitHub (Apr 7, 2024): > > Unfortunately, the up votes never seem to mean anything, feature requests are done on a contributor basis based on what someone fancies doing, the core team rarely looks at the top voted features and implements them. > > > > Like you, I’m not clear as to what (or whether) there is a process for looking at up votes but I guess the hard reality is the volunteer developers will only work on those things that really appeal to their particular use case. Regrettably, I’m not clear how in an open source, volunteer led, project it can really be much different. What is the point in the votes then? You could still have a team of volunteer developers who volunteer their time to work on Actual, tasks could be assigned to that team but that isn't how it works, however some aspects of the project are structured in a way that makes it seem like that is how it works. I volunteer at a local railway, I don't get to just turn up and do what I want, the railway has a plan and I have to do what I am told, I couldn't just draw a pretty picture of a train in a different colour walk around the yard and get 100 signature's and then paint the train like my picture.
Author
Owner

@ElDubsNZ commented on GitHub (Jul 9, 2024):

If we can get multiple accounts, it'd be great if we could also jointly control accounts.

i.e. I'd love if my wife and I could have our own accounts, but on top of that, if our shared account were added, it could show up on both our accounts, and sync with each other. It would make budgeting shared spending way easier.

<!-- gh-comment-id:2218946308 --> @ElDubsNZ commented on GitHub (Jul 9, 2024): If we can get multiple accounts, it'd be great if we could also jointly control accounts. i.e. I'd love if my wife and I could have our own accounts, but on top of that, if our shared account were added, it could show up on both our accounts, and sync with each other. It would make budgeting shared spending way easier.
Author
Owner

@dimaj commented on GitHub (Aug 5, 2024):

not quite what you are asking, but, if you are running ActualBudget as a docker container, nothing is stopping you from running multiple instances (on different ports) and assigning an instance to a family member/friend/partner.
You can even put it behind some sort of a reverse proxy (e.g. nginx or traefik) and assign each instance a sub-path.
This way, you'll be able to have something like:

Again, not a perfect solution, but it should do the trick fro the time being.

Edit:
I don't think Actual supports subpaths... so, you'll need to have subdomains for each instances:

<!-- gh-comment-id:2268151451 --> @dimaj commented on GitHub (Aug 5, 2024): not quite what you are asking, but, if you are running ActualBudget as a docker container, nothing is stopping you from running multiple instances (on different ports) and assigning an instance to a family member/friend/partner. You can even put it behind some sort of a reverse proxy (e.g. nginx or traefik) and assign each instance a sub-path. This way, you'll be able to have something like: * https://actual.mydomain.com/joe * https://actual.mydomain.com/jane Again, not a perfect solution, but it should do the trick fro the time being. Edit: I don't think Actual supports subpaths... so, you'll need to have subdomains for each instances: * https://joe.actual.mydomain.com (or https://joe-actual.mydomain.com) * https://jane.actual.mydomain.com (or https://jane-actual.mydomain.com)
Author
Owner

@urjeetpatel commented on GitHub (Sep 3, 2024):

One more item that user management should ideally add is to allow user accounts to be disabled. This way external authentication / sso at the reverse proxy level can be used. I.e. Forward auth using Traefik etc.

Would it be possible to add this to the user support wishlist.

<!-- gh-comment-id:2327342153 --> @urjeetpatel commented on GitHub (Sep 3, 2024): One more item that user management should ideally add is to allow user accounts to be disabled. This way external authentication / sso at the reverse proxy level can be used. I.e. Forward auth using Traefik etc. Would it be possible to add this to the user support wishlist.
Author
Owner

@o-mintaka commented on GitHub (Sep 10, 2024):

I was looking if there's any option to give read-only access to a budget. This feature request seems to be a good fit for that, wdyt?

In my particular case, my wife wants to have access and check our budget status but she isn't very comfortable with all the edit options that are possible (she is a mobile user and it annoys her that when she's looking around, she misclicks and opens edit boxes). I can also imagine that this would be a nice feature for other cases, like sharing budgets with your kids.

And alternative option could be to use a kind of public key for the budget, where it's possible to read data but all write/edit options are not possible and disabled.

<!-- gh-comment-id:2342069126 --> @o-mintaka commented on GitHub (Sep 10, 2024): I was looking if there's any option to give read-only access to a budget. This feature request seems to be a good fit for that, wdyt? In my particular case, my wife wants to have access and check our budget status but she isn't very comfortable with all the edit options that are possible (she is a mobile user and it annoys her that when she's looking around, she misclicks and opens edit boxes). I can also imagine that this would be a nice feature for other cases, like sharing budgets with your kids. And alternative option could be to use a kind of public key for the budget, where it's possible to read data but all write/edit options are not possible and disabled.
Author
Owner

@youngcw commented on GitHub (Dec 24, 2024):

🎉 initial support for multi user and OIDC was added in #3878 and will be available starting in v25.1 🎉

<!-- gh-comment-id:2560461166 --> @youngcw commented on GitHub (Dec 24, 2024): 🎉 initial support for multi user and OIDC was added in #3878 and will be available starting in v25.1 🎉
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#41856