Multi-user Support #161

Closed
opened 2026-02-28 18:50:37 -06:00 by GiteaMirror · 9 comments
Owner

Originally created by @NathanaelA on GitHub (Jan 17, 2023).

Since this software originally started as a multi-user SaaS service, is their a way to enable multi-users for the server. I've scanned the docs, the repos, and not seeing anything obvious...

For me, I have several older kids, it would be nice to run a single instance of the server and allow each of us our own "data" files so that one they can start handling their own finances much easier and I wouldn't have to run multiple instances of the docker container...

Originally created by @NathanaelA on GitHub (Jan 17, 2023). Since this software originally started as a multi-user SaaS service, is their a way to enable multi-users for the server. I've scanned the docs, the repos, and not seeing anything obvious... For me, I have several older kids, it would be nice to run a single instance of the server and allow each of us our own "data" files so that one they can start handling their own finances much easier and I wouldn't have to run multiple instances of the docker container...
GiteaMirror added the serverfeature labels 2026-02-28 18:50:38 -06:00
Author
Owner

@j-f1 commented on GitHub (Jan 17, 2023):

One option would be to use the forthcoming end-to-end encryption support. As long as you trust your kids to not delete your budget file, you can have separate passwords for your own budgets. (That said, real multi-user support would definitely be valuable too.)

@j-f1 commented on GitHub (Jan 17, 2023): One option would be to use the forthcoming end-to-end encryption support. As long as you trust your kids to not delete your budget file, you can have separate passwords for your own budgets. (That said, real multi-user support would definitely be valuable too.)
Author
Owner

@MatissJanis commented on GitHub (Jan 17, 2023):

One option would be to use the forthcoming end-to-end encryption support. As long as you trust your kids to not delete your budget file, you can have separate passwords for your own budgets. (That said, real multi-user support would definitely be valuable too.)

Sorry to hijack the conversation, but.. @j-f1 can we make it so you cannot delete a e2e encrypted budget without first logging in?

@MatissJanis commented on GitHub (Jan 17, 2023): > One option would be to use the forthcoming end-to-end encryption support. As long as you trust your kids to not delete your budget file, you can have separate passwords for your own budgets. (That said, real multi-user support would definitely be valuable too.) Sorry to hijack the conversation, but.. @j-f1 can we make it so you cannot delete a e2e encrypted budget without first logging in?
Author
Owner

@j-f1 commented on GitHub (Jan 17, 2023):

can we make it so you cannot delete a e2e encrypted budget without first logging in?

I’m not sure if there’s a way to prove to the server that you have the key? Also then if you forgot the password you wouldn’t be able to delete and reupload the budget.

@j-f1 commented on GitHub (Jan 17, 2023): > can we make it so you cannot delete a e2e encrypted budget without first logging in? I’m not sure if there’s a way to prove to the server that you have the key? Also then if you forgot the password you wouldn’t be able to delete and reupload the budget.
Author
Owner

@urjeetpatel commented on GitHub (Feb 1, 2023):

Currently, I am typically running multiple instances behind Traefik with each user getting their own subdomain and the joint/family instance getting its own.

@urjeetpatel commented on GitHub (Feb 1, 2023): Currently, I am typically running multiple instances behind Traefik with each user getting their own subdomain and the joint/family instance getting its own.
Author
Owner

@jamesmortensen commented on GitHub (Feb 17, 2023):

@urjeetpatel I'm wondering if a single docker-compose.yml could support multiple instances and subdomains, so that @NathanaelA and yourself could start and stop everything with a single command?

@jamesmortensen commented on GitHub (Feb 17, 2023): @urjeetpatel I'm wondering if a single docker-compose.yml could support multiple instances and subdomains, so that @NathanaelA and yourself could start and stop everything with a single command?
Author
Owner

@urjeetpatel commented on GitHub (Feb 21, 2023):

Here is an example docker-compose file that supports multiple instances of actual on the same machine.

I have used traefik here but you can use any proxy webserver like caddy or nginx if you are more familiar with it.

version: "3.9"
services:
  traefik:
    image: "traefik:2.9"
    container_name: "traefik"
    restart: always
    command:
      - --providers.docker=true
      - --providers.docker.exposedbydefault=false
      - --providers.docker.network=frontend
      - --entrypoints.web.address=:80
      - --entryPoints.websecure.address=:443
      #- rest of the traefik config from https://doc.traefik.io/
    networks:
      - frontend
    ports:
      - "80:80"
      - "443:443/tcp"
      - "443:443/udp"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - /etc/localtime:/etc/localtime:ro

  actual_server_main:
    container_name: actual_server_main
    image: jlongster/actual-server:latest
    ports:
      - 5006
    volumes:
      - ./docker_volumes/actual_budget_family/server-files:/app/server-files
      - ./docker_volumes/actual_budget_family/user-files:/app/user-files
    restart: unless-stopped
    labels:
      - traefik.enable=true
      - traefik.http.routers.budget.rule=Host(`actual.example.com`)
    networks:
      - frontend

  actual_server_user1:
    container_name: actual_server_user1
    image: jlongster/actual-server:latest
    ports:
      - 5006
    volumes:
      - ./docker_volumes/actual_budget_user1/server-files:/app/server-files
      - ./docker_volumes/actual_budget_user1/user-files:/app/user-files
    restart: unless-stopped
    labels:
      - traefik.enable=true
      - traefik.http.routers.budget_user1.rule=Host(`user1.example.com`)
    networks:
      - frontend
  
  actual_server_user2:
    container_name: actual_server_user2
    image: jlongster/actual-server:latest
    ports:
      - 5006
    volumes:
      - ./docker_volumes/actual_budget_user2/server-files:/app/server-files
      - ./docker_volumes/actual_budget_user2/user-files:/app/user-files
    restart: unless-stopped
    labels:
      - traefik.enable=true
      - traefik.http.routers.budget_user2.rule=Host(`user2.example.com`)
    networks:
      - frontend

networks:
  backend:
@urjeetpatel commented on GitHub (Feb 21, 2023): Here is an example docker-compose file that supports multiple instances of actual on the same machine. I have used traefik here but you can use any proxy webserver like caddy or nginx if you are more familiar with it. ``` version: "3.9" services: traefik: image: "traefik:2.9" container_name: "traefik" restart: always command: - --providers.docker=true - --providers.docker.exposedbydefault=false - --providers.docker.network=frontend - --entrypoints.web.address=:80 - --entryPoints.websecure.address=:443 #- rest of the traefik config from https://doc.traefik.io/ networks: - frontend ports: - "80:80" - "443:443/tcp" - "443:443/udp" volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" - /etc/localtime:/etc/localtime:ro actual_server_main: container_name: actual_server_main image: jlongster/actual-server:latest ports: - 5006 volumes: - ./docker_volumes/actual_budget_family/server-files:/app/server-files - ./docker_volumes/actual_budget_family/user-files:/app/user-files restart: unless-stopped labels: - traefik.enable=true - traefik.http.routers.budget.rule=Host(`actual.example.com`) networks: - frontend actual_server_user1: container_name: actual_server_user1 image: jlongster/actual-server:latest ports: - 5006 volumes: - ./docker_volumes/actual_budget_user1/server-files:/app/server-files - ./docker_volumes/actual_budget_user1/user-files:/app/user-files restart: unless-stopped labels: - traefik.enable=true - traefik.http.routers.budget_user1.rule=Host(`user1.example.com`) networks: - frontend actual_server_user2: container_name: actual_server_user2 image: jlongster/actual-server:latest ports: - 5006 volumes: - ./docker_volumes/actual_budget_user2/server-files:/app/server-files - ./docker_volumes/actual_budget_user2/user-files:/app/user-files restart: unless-stopped labels: - traefik.enable=true - traefik.http.routers.budget_user2.rule=Host(`user2.example.com`) networks: - frontend networks: backend: ```
Author
Owner

@github-actions[bot] commented on GitHub (Jun 2, 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 👍!

@github-actions[bot] commented on GitHub (Jun 2, 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 👍! <!-- feature-auto-close-comment -->
Author
Owner

@kyrias commented on GitHub (Jul 18, 2023):

Since this appears to be the same as #524 maybe the needs votes label should be removed from this in favor of that issue?

@kyrias commented on GitHub (Jul 18, 2023): Since this appears to be the same as #524 maybe the `needs votes` label should be removed from this in favor of that issue?
Author
Owner

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

Good catch! Please go 👍 that issue if you haven’t already.

@j-f1 commented on GitHub (Jul 18, 2023): Good catch! Please go 👍 that issue if you haven’t already.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#161