📒 AA 记账本

朋友聚会 · 旅行分摊 · 简单透明

🔗 访问地址

主页:http://你的服务器IP:1699

管理面板:http://你的服务器IP:1699/admin

默认管理员密码:admin123

一、部署安装

1.1 环境要求

软件最低版本
Docker20.10+
Docker Compose2.0+
操作系统Linux / NAS (群晖/飞牛/威联通等)

1.2 安装步骤

1
将项目文件夹 split-bill 上传到服务器,如 /vol1/1000/docker/split-bill
2
进入项目目录:
cd /vol1/1000/docker/split-bill
3
启动容器:
sudo docker compose up -d
4
验证是否启动成功:
sudo docker ps | grep split-bill
5
浏览器访问:
http://你的服务器IP:1699
💡 提示:首次启动会自动创建 SQLite 数据库,无需额外配置。

二、配置说明

2.1 修改管理员密码

方式一:创建 .env 文件(推荐)

echo "ADMIN_PASSWORD=你的密码" > .env
sudo docker compose restart

方式二:直接修改 docker-compose.yml 中的环境变量

environment:
  - ADMIN_PASSWORD=你的密码

2.2 文件结构

split-bill/
├── app.py              # 后端主程序
├── Dockerfile          # 镜像构建文件
├── docker-compose.yml  # 容器编排配置
├── icon.png            # 应用图标
├── data/               # 数据库目录(自动生成)
└── templates/
    ├── index.html      # 用户前端页面
    └── admin.html      # 管理面板页面

三、使用指南

3.1 创建房间

1
打开主页,点击 "创建新房间"
2
输入房间名(如"川西自驾"),可选设置房间密码和总预算
3
创建成功后会弹出二维码,分享给朋友扫码加入

3.2 加入房间

方式操作需要密码
输入密钥首页 → 加入已有房间 → 输入4位数字✅ 如设置
扫码加入扫描房间二维码❌ 不需要
最近房间首页下方最近使用列表❌ 不需要

3.3 记账

1
进入房间后点击右下角 + 按钮
2
选择分类(自动填充默认备注)
3
选择付款人、填写金额、勾选参与人
4
时间默认为当前,可手动修改

3.4 结算

点击顶部 "结算" 按钮,查看每个人的应付/已付明细和结账建议。

3.5 还款追踪

点击顶部 "还款" 按钮,可创建还款记录并标记已还。

3.6 统计图表

点击顶部 "统计" 按钮,查看消费分类饼图和成员消费柱状图。

3.7 预算预警

点击成员行右侧 "预算" 按钮设置总预算,超支时红色提醒。

四、管理面板

访问 /admin,使用管理员密码登录。

功能说明
查看房间列表显示所有房间的成员数和账单数
结算查看任意房间的 AA 结算明细
删除房间删除整个房间及所有数据(不可恢复)
导出 CSV在结算弹窗中导出结算数据

五、日常维护

5.1 常用命令

操作命令
启动容器sudo docker compose up -d
停止容器sudo docker compose down
重启容器sudo docker compose restart
查看状态sudo docker ps | grep split-bill
查看日志sudo docker logs split-bill --tail 50
进入容器sudo docker exec -it split-bill sh
重建镜像sudo docker compose build

5.2 更新代码

1
替换宿主机上的 app.pytemplates/ 文件
2
重启容器:sudo docker compose restart
3
如更新不生效,强制重建:sudo docker compose down && sudo docker compose up -d

5.3 数据备份

# 备份数据库
cp /vol1/1000/docker/split-bill/data/splitbill.db ~/backup/splitbill_$(date +%Y%m%d).db

# 设置定时备份(每天凌晨3点)
echo "0 3 * * * cp /vol1/1000/docker/split-bill/data/splitbill.db ~/backup/splitbill_\$(date +\%Y\%m\%d).db" | crontab -

5.4 数据恢复

# 停止容器
sudo docker compose down

# 替换数据库文件
cp ~/backup/splitbill_20260101.db /vol1/1000/docker/split-bill/data/splitbill.db

# 启动容器
sudo docker compose up -d

六、常见问题

Q: 页面打不开(502 Bad Gateway)

检查容器状态:sudo docker ps | grep split-bill,如果没有运行则 sudo docker compose up -d

Q: 修改代码后页面没变化

浏览器缓存问题,按 Ctrl+Shift+R 强制刷新;或打开无痕窗口验证。

Q: 管理面板显示"暂无房间"

清除浏览器缓存后重新登录;或在控制台执行:localStorage.removeItem('aa-admin-token'); location.reload();

Q: 端口被占用

修改 docker-compose.yml1699:1699 为其他端口,如 1700:1699

Q: 如何完全卸载

sudo docker compose down -v
rm -rf /vol1/1000/docker/split-bill

七、安全建议

⚠️ 重要:

AA 记账本 - 部署使用维护指南 · 更新于 2026年7月