飞牛部署 Wallos:把长期订阅和周期支出放进自己的 NAS 管理
前言
有些支出并不是"花了就结束",而是每个月、每季度、每年都会再来一次。视频会员、云服务、软件订阅、域名、服务器......单个项目看起来不多,时间一长,真正容易忘的反而是:到底订了哪些、什么时候续费、哪些还值得继续留着。
如果家里已经有一台长期在线的 NAS,把这类信息放到自己的设备上管理,会比临时记在备忘录或聊天收藏里更集中。
这次使用的工具是 Wallos。原文把它描述为自托管个人财务管理工具,但正文真正演示得最完整的,是 "Add subscription" 订阅项目管理 :先在飞牛上通过 Docker Compose 部署 Wallos,使用 8282 打开页面,注册账号后新增订阅项目,再确认内容能够显示在仪表盘中。
所以这篇改写会围绕已经实际跑通的功能来写,不把"自动同步账单、完整收支预算和财务目标"当成本文已经验证的结果。
如果只在家里使用,http://飞牛IP:8282 已经足够;如果人在外面也想查看或补充订阅记录,再通过cpolar给 8282 页面增加公网入口。全文会保持一个清晰边界:Wallos 负责订阅/财务信息页面,cpolar 只负责远程访问这个页面。

1.Wallos 更适合先解决哪类问题?
Wallos 是一款开源、自托管的个人财务管理工具。按照原文说明,它可以部署在 NAS、树莓派或本地服务器上,并通过 Web 页面集中查看相关信息。
不过从本文后面的实际演示看,最明确跑通的是订阅项目管理:注册登录、添加 subscription、填写项目内容,再在页面中查看和排列。
原文列出的核心特点包括:
- 完全私有:数据保存在自己的设备上
- 轻量高效:基于 Web 技术构建,适合家庭 NAS 或低功耗设备
- 美观易用:提供图表和分类视图
- 支持多账户与分类
- 开源免费
把它放到本文的实际使用路径里,更容易理解成一个部署在 NAS 上的周期支出/订阅管理入口。先把经常忘记续费时间、金额和项目名称的内容集中起来,再决定后面是否继续扩展更多财务管理场景。
2.先确认飞牛上的运行环境
2.1 SSH 远程连接到飞牛
- 开启【SSH 服务】
- 使用终端(Windows PowerShell / Mac Terminal)登录:
在设置--->SSH中开启SSH服务:



2.2 验证 Docker 是否开启
SSH 能正常进入飞牛以后,再确认 Docker 环境。
使用命令:
shell
docker -v
systemctl status -v
也可以直接在飞牛主页查看 Docker 状态:

3.部署 Wallos
环境确认以后,开始创建 Wallos 的部署目录:
shell
mkdir -p /docker/wallos
cd /docker/wallos

接着创建并编辑 docker-compose.yml:
shell
vim docker-compose.yml
version: '3.0'
services:
wallos:
container_name: wallos
image: bellamy/wallos:latest
ports:
- "8282:80/tcp"
environment:
TZ: 'Asia/Shanghai'
# Volumes store your data between container upgrades
volumes:
- '/volume1/docker/wallos/db:/var/www/html/db'
- '/volume1/docker/wallos/logos:/var/www/html/images/uploads/logos'
restart: unless-stopped

配置保存后启动容器:
shell
docker compose up -d

容器启动以后,在浏览器中输入 http://飞牛IP:8282 进行页面验证。能够正常打开 Wallos,说明端口映射和 Web 服务已经生效:

4.从注册到新增一个订阅项目
页面能打开以后,再继续验证真正的使用流程。
第一次进入先注册账号:

注册完成后登录:

第一次登录时页面还是空的,接下来开始添加实际内容。

原文这里选择新增一个 Add subscription:
输入名称后,页面会显示对应 Logo:

继续按需填写项目内容:

保存以后,刚才添加的订阅项目会显示在页面中:

页面还可以按照原文展示的方式进行排列:

到这里,Wallos 在局域网内已经完成了最重要的验证:能注册、登录、添加订阅项目并正常展示。
如果只在家里使用,到这里已经够了。只有当人在外面也希望查看或补充这些记录时,才需要再增加公网访问。
下面配置 cpolar。它不会改变 Wallos 的订阅管理功能,只负责把本地 8282 Web 页面提供到外部网络。
5.安装 cpolar 补充外网访问
5.1 什么是cpolar?
在本文里,cpolar 的作用很具体:让已经运行在飞牛上的 Wallos 8282 页面能够从外部网络访问。
5.2 部署cpolar
开始之前,先确认 http://飞牛IP:8282 在局域网里已经可以正常打开。这样后面如果公网访问异常,就能把 Wallos 本身和隧道问题分开排查。
以下按照原文步骤安装 cpolar:
使用一键脚本安装命令:
shell
sudo curl https://get.cpolar.sh | sh

安装完成后,执行下方命令查看 cpolar 服务状态:
shell
sudo systemctl status cpolar

cpolar 安装并启动以后,通过主机 IP 加 9200 端口访问 Web 管理界面。登录账号后,后面的隧道都在这里配置。
打开浏览器访问本地 9200 端口,登录后即可管理隧道。

6.先用随机地址验证公网访问
登录 cpolar Web UI 后进入隧道管理并创建隧道。原文配置如下:
- 隧道名称:可自定义,本例使用了:wallos,注意不要与已有的隧道名称重复
- 协议:http
- 本地地址:8282
- 域名类型:随机域名
- 地区:选择China Top

创建成功后打开在线隧道列表,可以看到刚刚生成的公网地址。此时可以换到其他网络中的电脑或移动端设备进行访问测试。

Wallos 页面能够通过公网地址打开,说明 8282 的远程访问链已经打通。

7.长期使用时,再保留固定地址
随机地址已经完成了最重要的连通性验证。如果准备长期从外部网络访问,再配置固定二级子域名会更方便保存。

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是wallos,大家可以自定义。填写备注信息,点击保留。

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理------隧道列表,找到所要配置的隧道,点击右侧的编辑。

修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
- 地区: China Top
点击更新

更新完成后再次查看在线隧道列表,可以看到原来的随机地址已经切换成保留的二级子域名形式。

最后再使用固定公网地址访问 Wallos。页面能够正常打开,说明二级子域名已经绑定到当前隧道。

总结
这篇 Wallos 真正完成的,是一条很清楚的自托管订阅记录管理流程。
原文实际跑通了:
- 飞牛开启 SSH 并确认 Docker 环境;
- 创建
/docker/wallos部署目录; - 使用
bellamy/wallos:latest和 Docker Compose 启动 Wallos; - 将
8282映射到容器80端口; - 浏览器通过
http://飞牛IP:8282打开页面; - 完成注册、登录;
- 新增
Add subscription; - 填写订阅项目并在页面中正常显示;
- 有异地访问需求时,再通过cpolar把
8282页面提供到公网; - 随机地址验证通过后,再保留
wallos固定二级子域名。
整个系统可以分成两层:
- Wallos:负责订阅项目和相关财务信息的录入、展示;
- cpolar :只负责让本地
8282Web 页面从外部网络可访问。
原文前言里提到了"自动同步账单、收入、支出、预算和财务目标",但正文并没有逐项演示这些能力,因此这一版没有把它们继续写成已经验证过的结果。本文真正能够确认的是:Wallos 在飞牛 NAS 上成功部署,并完成了订阅项目录入、展示和远程访问。
对已经习惯把照片、媒体和服务放在 NAS 上的人来说,Wallos 的价值并不在"让记账完全自动化",而在于把长期订阅这类容易遗忘的信息放到一个自己可控、随时能打开的页面里。