分享 Beancount + 群晖 NAS 实现本地部署的经验

194 天前
 JSDTTT

部署需要的配置文件已经开源,可自行修改和定制,详情查看 → fava-synology-sso

先说整体方案:

  1. beancount 账本数据提交到 Github 私有仓库,并通过AGWA/git-crypt加密隐私数据。

  2. 用群晖的 Container Manage 构建项目

    • 用 fava 可视化 beancount
    • 用群晖内置的 SSO 服务增加访问鉴权
      • 需要拥有一个自己的域名,因为 SSO 有要求
      • 需要有域名的 https 证书
    • 定时任务每 6h 更新一次最新账本数据
  3. 用群晖的 Web Station 套件增加别名访问

  4. 有公网需求就做好对应的安全措施就可以了

服务编排大概是这么一个流程

  1. 用户请求到 Nginx 网关
  2. Nginx 通过群晖 SSO 鉴权
  3. 鉴权通过就转发到 Fava
  4. 不通过就打开群晖的 SSO 登录页,登录成功后跳 Fava 服务

docker-compose.yml

fava:
  container_name: fava_server
  environment:
    - TZ=Asia/Shanghai
  # 不对外暴露端口, Fava 服务本体

# 网关,作为访问的主入口
sso_gateway: 
  image: nginx:latest
  container_name: sso_gateway
  ports:
    - "8111:8111"  # 对外暴露端口
  volumes:
    - ./sso_nginx.conf:/etc/nginx/conf.d/default.conf
  depends_on:
    - sso_auth
    - fava

# 群晖 SSO 服务为 Fava 提供鉴权
sso_auth:
  container_name: sso_auth
  depends_on:
    - fava
1303 次点击
所在节点    分享创造
1 条回复
goodryb
8 天前
这一套下来是不是太复杂了,我觉得 Beancount 就适合部署在内网,都不需要外网访问,数据也不要出去,毕竟数据比较敏感

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1115201

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX