Actual Budget 自托管搭建指南:开源个人预算与财务追踪系统
记账软件很多,但真正好用的并不多。商业软件要么需要订阅费用,要么会把你的财务数据同步到厂商服务器,要么广告满天飞。对于想要严肃管理个人财务的人来说,自托管一个开源记账系统是个更可控的选择。Actual Budget 是一个基于"信封记账法"(Envelope Budgeting)的开源个人财务管理系统。信封记账法的核心思想是:把收入分配到不同的"信封"(预算类别)里,而不是用完再看余额——吃饭信封
Actual Budget 自托管搭建指南:开源个人预算与财务追踪系统
记账软件很多,但真正好用的并不多。商业软件要么需要订阅费用,要么会把你的财务数据同步到厂商服务器,要么广告满天飞。对于想要严肃管理个人财务的人来说,自托管一个开源记账系统是个更可控的选择。
Actual Budget 是一个基于"信封记账法"(Envelope Budgeting)的开源个人财务管理系统。信封记账法的核心思想是:把收入分配到不同的"信封"(预算类别)里,而不是用完再看余额——吃饭信封、娱乐信封、房租信封各自有额度,超支了就要从其他信封挪钱,这种方式能让你对钱的流向更有感知。Actual Budget 有 Web 界面,数据存在本地浏览器(IndexedDB),服务器只作为同步中继,即使服务器临时不可用,客户端也能正常使用。
本文介绍如何用 Docker Compose + Caddy 搭建 Actual Budget 自托管服务。
服务器配置
Actual Budget 服务端只负责文件同步,资源消耗极低,入门级机器即可运行。
| 项目 | 规格 |
|---|---|
| CPU | 1 核 |
| 内存 | 1GB |
| 硬盘 | 10GB |
| 系统 | Ubuntu 22.04 / Debian 12 |
推荐使用雨云服务器 rainyun-com的 1 核 1GB 机型来部署 Actual Budget,完全够用,价格实惠。注册填优惠码 2026off 领 5 折优惠券,新用户首单直接半价。
准备工作
确保服务器已安装 Docker 和 Docker Compose:
# 安装 Docker
curl -fsSL https://get.docker.com | sh
# 验证安装
docker --version
docker compose version
准备一个域名,例如 budget.example.com,将 DNS A 记录指向服务器 IP。
安装 Caddy:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddy -y
docker-compose.yml
创建部署目录并编写配置:
mkdir -p /opt/actual
cd /opt/actual
创建 docker-compose.yml:
version: "3.8"
services:
actual:
image: actualbudget/actual-server:latest
container_name: actual
ports:
- "127.0.0.1:5006:5006"
volumes:
- ./data:/data
environment:
- ACTUAL_UPLOAD_FILE_SYNC_SIZE_LIMIT_MB=20
- ACTUAL_UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT_MB=50
- ACTUAL_UPLOAD_FILE_SIZE_LIMIT_MB=20
restart: unless-stopped
启动服务:
docker compose up -d
验证容器运行状态:
docker compose ps
docker compose logs actual
配置说明
Caddy 反向代理
编辑 /etc/caddy/Caddyfile:
budget.example.com {
reverse_proxy localhost:5006
}
重载 Caddy:
sudo systemctl reload caddy
Caddy 会自动申请 HTTPS 证书,配置完成后访问 https://budget.example.com 即可打开 Actual Budget。
环境变量说明
| 变量 | 说明 | 默认值 |
|---|---|---|
ACTUAL_UPLOAD_FILE_SYNC_SIZE_LIMIT_MB |
同步文件大小限制(MB) | 20 |
ACTUAL_UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT_MB |
加密同步文件大小限制(MB) | 50 |
ACTUAL_UPLOAD_FILE_SIZE_LIMIT_MB |
上传文件大小限制(MB) | 20 |
ACTUAL_SERVER_FILES |
数据文件存储路径(容器内) | /data/server-files |
ACTUAL_USER_FILES |
用户数据存储路径(容器内) | /data/user-files |
密码保护(可选)
Actual 支持为服务器设置访问密码。首次访问时,系统会引导你设置一个服务器密码,之后所有设备连接时都需要输入这个密码。密码存储在服务端,不是账号体系,而是服务器级别的访问控制。
使用方法
首次设置
- 访问
https://budget.example.com - 系统提示设置服务器密码(建议设置,防止陌生人访问)
- 创建第一个预算文件,选择"Start Fresh"或从 YNAB / 其他系统导入
信封记账法基本流程
Actual Budget 的核心操作步骤:
- 设置预算类别:按需创建分类,例如:住房、餐饮、交通、娱乐、储蓄
- 分配本月预算:将本月收入分配到各个类别(“给每一块钱一个任务”)
- 记录交易:每笔支出/收入手动录入,或通过文件导入
- 查看余额:超支的类别会显示红色,可以从其他类别挪入资金
添加账户
在左侧菜单点击"Add Account",选择账户类型:
- On Budget:纳入预算管理的账户(日常消费卡、现金等)
- Off Budget:不纳入预算的账户(投资账户、贷款等,只追踪余额)
导入交易记录
Actual 支持导入以下格式:
- OFX / QFX(银行导出格式)
- QIF(Quicken 格式)
- CSV(自定义列映射)
大多数中国银行可以导出 CSV 账单,通过 CSV 导入映射好日期、金额、描述字段即可。
多设备同步
Actual Budget 的数据架构:所有数据存在浏览器本地(IndexedDB),服务器只存储加密的同步文件。在新设备上打开 Web 界面,输入服务器地址和密码,选择要同步的预算文件,本地数据会从服务器拉取并解密。
手机端直接用浏览器访问 https://budget.example.com 即可,也可以用 PWA 方式安装到桌面,体验接近原生 App。
数据导出
在预算设置中可以导出 CSV 格式的账单数据:
预算 → 右上角菜单 → Export Data → 导出为 CSV
常见问题
Q:忘记服务器密码怎么办?
密码存储在数据卷的 config.json 中(哈希值),需要手动重置:
# 停止容器
docker compose stop actual
# 进入数据目录,删除或修改密码配置
cat /opt/actual/data/config.json
# 将 "loginMethod" 和 "password" 字段清空后重新设置
# 重启容器
docker compose start actual
Q:数据会丢失吗?同步原理是什么?
Actual 使用 CRDT(无冲突复制数据类型)做数据同步,每个客户端本地都有完整的数据副本,服务器只是同步中继。即使服务器宕机,本地数据依然完整。建议定期将浏览器本地数据导出备份。
Q:如何迁移数据到新服务器?
# 备份数据卷
tar czf actual-backup-$(date +%Y%m%d).tar.gz /opt/actual/data
# 在新服务器解压恢复
tar xzf actual-backup-*.tar.gz -C /opt/actual/
docker compose up -d
Q:支持多用户吗?
目前 Actual Budget 是单用户设计(共享服务器密码),多个家庭成员可以共用同一套预算文件,通过数据同步保持一致。官方多用户支持正在开发中。
Q:移动端体验如何?
Actual Budget 的 Web 界面是响应式设计,手机浏览器访问体验较好。iOS/Android 原生 App 目前由社区维护(ActualBudget Mobile),功能比 Web 端略少,主要用于快速录入交易。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)