飞牛部署 Wallos:把长期订阅和周期支出放进自己的 NAS 管理

飞牛部署 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 :只负责让本地 8282 Web 页面从外部网络可访问。

原文前言里提到了"自动同步账单、收入、支出、预算和财务目标",但正文并没有逐项演示这些能力,因此这一版没有把它们继续写成已经验证过的结果。本文真正能够确认的是:Wallos 在飞牛 NAS 上成功部署,并完成了订阅项目录入、展示和远程访问。

对已经习惯把照片、媒体和服务放在 NAS 上的人来说,Wallos 的价值并不在"让记账完全自动化",而在于把长期订阅这类容易遗忘的信息放到一个自己可控、随时能打开的页面里。

相关推荐
ly76891 小时前
Spring 异步编程的隐藏风险:@Async 线程池耗尽与异常处理详解
java·后端·spring·异常处理·线程池·任务拒绝
用户8181870627461 小时前
第23章 热点Key问题排查与解决:大促场景经典坑
java·后端
geovindu1 小时前
go: Task Scheduler
开发语言·后端·golang
张三博客2 小时前
Java 开发实用工具类合集:从日期处理到并发控制
后端
用户970161501682 小时前
微服务里最危险的 DELETE,不是删不掉,是只删了一半
人工智能·后端
Zane19942 小时前
线上突然OOM,你的排查顺序是先看日志还是先重启
java·后端
西门老铁2 小时前
UUID 还是雪花 ID?分布式唯一 ID 方案怎么选?
后端
吃饱了得干活2 小时前
Java设计模式实战:一个支付模块的重构之旅,层层递进理解设计模式精髓
后端·设计模式·架构