PassNAT LogoPassNAT

开源自托管订阅管理系统Wallos 内网穿透远程访问 NAS一键部署完整指南

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

项目介绍

Wallos 是一个自己部署的订阅管家。视频会员、云盘、健身房这些按期扣钱的东西,办了哪些、下一次哪天扣、多久扣一回,一条条记进去,它替你盯着。

它跟记在备忘录里最大的区别是有日历和统计:每条订阅都带扣款周期和下次扣款日,日历上这个月有几笔一眼扫完,还能按分类看这段时间都花在哪儿了。数据落在你自己 NAS 的一个目录里,备份就是把那个文件夹拷走,不用担心哪天服务关停。

它本身很轻:PHP + SQLite,一个容器就够,不需要再起一个数据库容器;界面适配过手机,人在外面用手机打开也不难受。

项目地址:点我跳转

部署安装

装在自己的 NAS 上之后,它默认只能在家里的网络里打开 —— 人出了门,或者换了台机器,就看不到了。而订阅这东西恰恰是「在外面突然想起来查一下这个月还有哪几笔」的场景最用得上。我家是移动宽带,没有公网 IP,所以用 帕斯内网穿透 把它开放到公网,飞牛的应用中心里就能直接装到插件,不用另外找工具。下面这套流程在飞牛 NAS 上从头到尾走一遍。

第一步:准备编排文件

下面这份编排可以直接用,需要按自己情况改的只有冒号左边那个宿主端口。

1services:
2 wallos:
3 image: bellamy/wallos:5.5.0
4 container_name: wallos
5 ports:
6 # 左边 8282 是 NAS 上对外的端口,浏览器敲它;右边 80 是容器里的
7 - '8282:80'
8 volumes:
9 # 订阅数据存这儿,删容器不丢
10 - ./db:/var/www/html/db
11 # 自己上传的服务图标存这儿
12 - ./logos:/var/www/html/images/uploads/logos
13 environment:
14 # 时区要改成自己的,不然扣费日期会差一天
15 TZ: Asia/Shanghai
16 restart: unless-stopped

端口:冒号左边的 8282 是待会儿在浏览器里输的宿主端口,也是建隧道时要填的那个;右边的 80 是容器内部的端口,不要动。8282 要是被别的容器占了,换一个没用过的即可。

两个数据目录:./db 存的是订阅记录和你的账号,这个丢了就全没了;./logos 存自己传上去的服务图标。两个都是相对编排文件所在目录的,所以整个项目文件夹拷走就是一份完整备份。

时区:TZ 一定要填 Asia/Shanghai。这一行不填,容器里走的是 UTC,下次扣款的日子会跟本地差一天 —— 这是整份编排里最容易被跳过、又最容易出错的一行。

镜像这一行写的是 5.5.0,跟视频里演的是同一个版本,照抄就能复现片子里的界面;上游出了新版本想跟,把这一行的版本号换掉再重新构建一次就行。

第二步:在飞牛上建 Compose 项目

打开飞牛的 Docker 应用,切到 Compose,点右上角的新增项目。项目名称填 wallos。

路径这一栏点右边的图标打开选择器,在「我的文件」下面挑一个空文件夹选中;没有合适的就在里面当场新建一个,名字随便起。这个文件夹以后就是这个项目的家,编排文件和上面说的 db、logos 两个目录都会落在它里面。

来源选「创建 docker-compose.yml」,把上面那份编排整段贴进去。下面「创建项目后立即启动」勾上,点创建。镜像拉完容器就跑起来了 —— 记住 8282 这个端口,下一步建隧道要填它。

第三步:用内网穿透开放到公网

容器跑起来之后,先别急着在内网点来点去 —— 下一步直接把它开放到公网,后面注册管理员、切中文、加订阅全都在公网地址上做,能省掉一轮返工。

在飞牛的应用中心里搜 PassNAT,装上,账号登一次。打开插件,点加号创建隧道:名字随便起;接入节点和传输协议都留默认;本地 IP 这一栏留空就好,默认就是 127.0.0.1,不用去查自己 NAS 的局域网地址;本地端口填上面那个 8282。

建好之后在列表里点开这条隧道的详情,按最左边那个电源键把它启动,状态转成运行中。面板上那个「IP:端口」就是在外面要用的公网地址,后面所有操作都用它。

第四步:在公网地址上把管理员建好

用刚拿到的公网地址打开,第一次进来是注册页,把管理员建好。这一步要赶紧做 —— 从隧道打开到管理员建好之间,这台实例是无主的,谁先打开谁就是主人,所以隧道一启动就马上把账号注册掉,别晾在那儿。

进去之后界面默认是英文。点右上角的头像进 Profile,语言那一栏选简体中文,保存之后整个界面就都是中文的了。

怎么用

加一条订阅在首页的加号里:填名字、每次扣多少和币种、扣款周期(按月还是按年)、下一次扣款的日子,再挑一个分类。名字填常见的服务,它会自己去找对应的图标;自己传一张也行,传上去的就存在前面那个 logos 目录里。

加完回首页,日历上这个月哪天要扣一眼就看到,卡片上写着离下次扣款还剩几天。上面能切换按分类看、按周期看;统计页会把这段时间的账按月、按分类拉成图,一年到头在这些服务上花了多少,一张图就说清了。

提醒走「设置 - 通知」,邮件、Telegram、Discord、Pushover 几种都支持,配好之后扣款前几天会提醒你一次。多币种在设置里选定主币种之后会自动换算,汇总时统一成同一种货币。

一些使用上的细节

数据全在项目文件夹的 db 目录里。想搬到另一台机器,把整个文件夹拷过去、用同样的编排起一个容器,打开还是原来那些订阅。

家里人各自办的想分开记,「设置 - 家庭成员」里可以把人加进来,每条订阅指定是谁的,统计里就能按人看。

暂时不想让外面访问的话,去 PassNAT 插件里把那条隧道的电源关掉就行,内网照常用,容器不用动。