Maybe:自建个人财务
Maybe 是一个开源个人财务管理应用,可以用于维护账户、交易、预算、投资与家庭财务视图。Maybe 是典型的 Rails Web 应用,生产环境使用 PostgreSQL 保存业务数据,并使用 Redis 处理后台任务队列。
Pigsty 提供 app/maybe 模板,将 Maybe 的无状态 Web / Worker 容器接入 Pigsty 托管的 PostgreSQL,并用本地 Redis 承载 Sidekiq 队列。这样您可以把最重要的财务数据放在可备份、可监控、可恢复的 PostgreSQL 集群中,而不是放在一个临时 Docker 数据卷里。
Maybe 上游仓库已经归档,最新 release 为
v0.6.0。GHCR 目前发布stable与latest镜像标签;Pigsty 默认使用stable,即最新 release 语义的镜像。
快速开始
在运行 兼容操作系统 的全新 Linux x86 / ARM 服务器上执行:
Maybe 默认监听 5002 端口。安装完成后,您可以通过以下地址访问:
http://<your_ip_address>:5002http://maybe.pigsty
首次访问时,在登录页面选择创建账号,注册您的第一个家庭账户即可开始使用。
如果您希望通过 maybe.pigsty 访问,请在浏览器所在主机的 /etc/hosts 中添加解析:
如果要对公网暴露服务,建议使用真实域名与 HTTPS 证书,并按下文修改 infra_portal。
检查清单
- 准备一台全新 Linux 服务器,建议至少
2C4G,磁盘使用 SSD/NVMe。 - 确认服务器拥有静态内网 IPv4 地址,并能访问 GHCR / Docker Hub 或已配置镜像站。
- 执行
./configure -c app/maybe后,修改pigsty.yml中的默认密码、域名和密钥。 - 用
openssl rand -hex 64生成新的SECRET_KEY_BASE。 - 将
POSTGRES_PASSWORD与pg_users中的maybe用户密码保持一致。 - 如果通过公网访问,配置真实域名、HTTPS 证书和防火墙访问策略。
- 确认 PostgreSQL 备份任务正常,部署后检查
pig pb info。
配置模板
conf/app/maybe.yml 定义了单节点 Maybe 自建模板。默认拓扑包括:
maybe:Maybe Web / Worker / Redis 容器所在节点。pg-maybe:Pigsty 托管的 PostgreSQL 数据库集群。infra:Nginx 入口、Grafana、VictoriaMetrics 等基础设施。etcd:Patroni 所需的分布式配置存储。
关键配置摘录如下:
这里的 maybe_production 是 Maybe / Rails 上游默认的生产数据库名称。您也可以改成 maybe,但必须同时修改 POSTGRES_DB、pg_databases.name、pg_hba_rules.db 与所有文档/运维脚本中的引用。
重要参数
app.yml 会把 app/maybe 目录复制到 /opt/maybe,并用 apps.maybe.conf 覆盖 /opt/maybe/.env。常见参数如下:
| 参数 | 默认值 | 说明 |
|---|---|---|
MAYBE_IMAGE | ghcr.io/maybe-finance/maybe | Maybe 镜像仓库 |
MAYBE_VERSION | stable | 镜像标签,建议生产保持 stable |
MAYBE_PORT | 5002 | 宿主机暴露端口 |
MAYBE_DATA | /data/maybe | 宿主机持久化目录 |
APP_DOMAIN | maybe.pigsty | Maybe 的默认入口域名占位 |
SECRET_KEY_BASE | 示例随机串 | Rails 加密签名密钥,生产必须替换 |
DB_HOST / DB_PORT | 10.10.10.10 / 5432 | Pigsty PostgreSQL 入口 |
POSTGRES_USER | maybe | Maybe 连接 PostgreSQL 的业务用户 |
POSTGRES_PASSWORD | MaybeFinance2026 | 业务用户密码,生产必须替换 |
POSTGRES_DB | maybe_production | Maybe 生产数据库 |
REDIS_VERSION | 7-alpine | 本地 Redis 镜像标签 |
生成生产密钥:
修改密码时,请保证应用与数据库定义同步。例如:
域名与入口
模板默认在 infra_portal 中增加 Maybe 入口:
如果您使用真实域名,例如 finance.example.com,可以批量替换:
然后应用 Nginx 入口配置:
如需申请 HTTPS 证书,请先确保域名解析到当前节点,再在 infra_portal.maybe 中加入 certbot:
随后执行:
运维命令
Maybe 安装后位于 /opt/maybe,常用命令如下:
web 容器启动时会自动执行 db:prepare,通常不需要手工迁移。升级镜像后,如果启动日志提示数据库迁移问题,可以先查看日志,再执行:
数据与备份
Maybe 的状态分为两类:
- 业务数据:存放在 Pigsty PostgreSQL 数据库
maybe_production中。 - 附件/缓存:宿主机目录
/data/maybe/storage与/data/maybe/redis。
模板默认配置每日凌晨 1 点执行一次 PostgreSQL 全量备份:
部署后建议检查备份状态:
如果您在生产环境中使用 Maybe 记录真实财务数据,请至少做到:
- 定期检查 PostgreSQL 备份是否成功。
- 将 pgBackRest 仓库放到可靠磁盘或对象存储中。
- 将
/data/maybe/storage纳入文件级备份,您可以使用 restic 备份到 s3 - 不要把
SECRET_KEY_BASE、数据库密码、API Key 泄露到公开仓库。
安全建议
Maybe 用于个人/家庭财务管理,数据敏感度很高。生产使用时建议:
- 修改所有 Pigsty 默认密码,尤其是
pg_admin_password、pg_monitor_password、patroni_password、haproxy_admin_password。 - 修改 Maybe 数据库用户密码
POSTGRES_PASSWORD。 - 使用新的
SECRET_KEY_BASE,不要沿用模板示例值。 - 对公网开放时启用 HTTPS,并限制管理端口访问。
- 如启用
OPENAI_ACCESS_TOKEN或SYNTH_API_KEY,请评估外部 API 成本与数据暴露边界。
Maybe 上游已经归档,适合对现有功能满意、偏本地长期自持的用户。如果您需要持续演进的新功能或银行自动同步能力,应提前评估上游维护状态。
参考
- Maybe 项目: https://github.com/maybe-finance/maybe
- Maybe Docker 自建文档: https://github.com/maybe-finance/maybe/blob/main/docs/hosting/docker.md
- Pigsty Maybe 模板: https://github.com/pgsty/pigsty/blob/main/conf/app/maybe.yml
- Pigsty Docker 模块
- Pigsty Nginx 入口
这个页面对您有帮助吗?
感谢反馈,我们会据此改进这篇文档。
哪里没有解决?(可选)