Tropic Host

Wallos:在 VPS 上安装自己的订阅管理器

阅读约需 10 分钟
Tropic
Wallos:在 VPS 上安装自己的订阅管理器

Wallos:在 VPS 上安装自己的订阅管理器

单独看一项订阅,通常都不显得昂贵:云存储每月几美元、音乐服务每月一次、域名每年一次,再加上 VPN、AI 服务或工作工具。问题往往要到后来才会显现——付款分散在不同日期、银行卡和货币中,而免费试用也可能在不知不觉间变成付费方案。

Wallos 可以把经常性支出汇总到一个面板中,显示即将发生的扣款、统计费用,并提前发送提醒。你可以把应用部署在自己的 VPS 上,而不必把完整的支出清单交给第三方财务服务。

下面我们将说明 Wallos 与电子表格有何不同、它需要怎样的服务器,以及如何通过 Docker Compose 安装该应用。

什么是 Wallos

Wallos 是一款免费、开源的 Web 应用,用于记录订阅和周期性付款。它可以安装在家庭服务器、NAS 或 VPS 上,并通过普通浏览器访问。

每项订阅都会变成一张卡片,其中包含名称、价格、货币、付款周期、下次扣款日期、分类和付款方式。你不再需要在几十封邮件和银行流水中寻找信息,而是可以通过一个统一的日历查看所有固定支出。

Wallos 不是网上银行,也不会替用户取消订阅。付款信息需要先手动录入一次,之后在套餐、价格或付款日期发生变化时更新记录。这需要一点自律,但应用不会要求访问你的银行账户。

为什么需要订阅管理器

电子表格同样可以保存服务名称和价格。真正的困难出现在月付、季付和年付套餐同时存在时。

每年 120 欧元的订阅,给人的感觉与每月 10 欧元不同,尽管总支出完全相同。Wallos 会把各种付款方式放到同一视图中,帮助你看清一组看似便宜的服务每月或每年究竟花费多少。

在以下情况下,这项服务尤其有用:

  • 已经积累了许多数字订阅、域名、VPS 和 SaaS 服务;
  • 付款涉及多种货币;
  • 家庭成员共用套餐,但使用不同银行卡;
  • 自由职业者或团队需要在不同日期支付工作工具费用。

Wallos 最大的价值体现在扣款发生之前。提前收到提醒后,你仍然有时间取消不再需要的套餐。

Wallos 的主要功能

分类、付款方式和家庭成员

记录可以按照自定义分类整理,例如娱乐、工作、基础设施、通信或教育。付款方式和家庭成员可以单独设置。这样更容易区分工作支出与个人支出,或者找出绑定到某张银行卡的订阅。

日历、统计和预算

Wallos 会显示即将发生的付款并以图表方式展示支出。日历可以帮助你发现年度续费较多的月份,统计数据则能显示哪些分类花费最多。

多货币支持

订阅可以用不同货币记录,并换算成主要货币。Wallos 支持通过 Fixer API 自动更新汇率。如果一部分服务以美元付款,另一部分以欧元付款,而预算又使用其他货币管理,这项功能会很方便。

扣款前提醒

提醒可以通过电子邮件、Telegram、Discord、Pushover、Gotify 和 webhook 接收。对于个人服务器,Telegram 或电子邮件通常最方便;webhook 则可以把 Wallos 与自动化系统或你自己的机器人连接起来。

多用户和俄语界面

一个 Wallos 实例可以创建多个用户账户。界面已翻译成多种语言,其中包括俄语。此外还支持双因素认证,以及通过 OIDC/OAuth 实现单点登录。

API 和 AI 建议

Wallos 提供 API,可用于自定义集成。当前版本支持通过 ChatGPT、Gemini 或本地 Ollama 获取建议。

这项功能不是必需的。如果你重视最大程度的隐私,最好使用本地模型或不启用 AI:当请求发送给外部提供商时,请求所需的数据会在你的 VPS 之外被处理。

Wallos、电子表格还是云端追踪器

参数电子表格云端追踪器Wallos
付款日历需要自行设置通常具备具备
提醒需要自动化通常具备具备
多货币需要公式或插件取决于服务具备
数据存放在自己的服务器上本地存储时可以
维护最少由提供商负责由所有者负责
访问银行账户不需要有时需要不需要

Wallos 适合已经觉得电子表格不够方便、但又不想把银行账户连接到第三方服务的人。获得控制权的代价,是需要自己负责更新、服务器安全和备份。

Wallos 的服务器要求

官方说明没有规定 CPU 和 RAM 的确切最低配置;使用容器安装时需要 Docker。Wallos 使用 PHP 和本地 SQLite 数据库,因此个人实例不需要高性能服务器。

实用的起步配置如下:

  • 1 个 vCPU;
  • 1 GB RAM;
  • 10 GB SSD 或 NVMe;
  • 保持更新的 Linux 系统;
  • 如果需要长期从互联网访问,则需要一个域名。

512 MB 内存可能足以运行容器,但 VPS 留给操作系统、Docker 和反向代理的余量会很少。如果还要同时运行 Nginx 和其他小型应用,2 GB RAM 的配置会更合适。

通过 Docker Compose 在 VPS 上安装 Wallos

本文假设 Docker Engine 和 Docker Compose 插件已经安装。命令需要使用 sudo 权限执行。

第 1 步:创建目录

sudo mkdir -p /opt/wallos
cd /opt/wallos

第 2 步:创建 Compose 文件

sudo nano compose.yml
services:
  wallos:
    container_name: wallos
    image: bellamy/wallos:latest
    ports:
      - "127.0.0.1:8282:80"
    environment:
      TZ: "Europe/Berlin"
    volumes:
      - "./db:/var/www/html/db"
      - "./logos:/var/www/html/images/uploads/logos"
    restart: unless-stopped

TZ 中填写你自己的时区。dblogos 目录位于容器之外,因此更新镜像后,数据库和徽标仍会保留。

端口绑定到 127.0.0.1,所以面板不会直接暴露到互联网。接下来我们将通过 Nginx 和 HTTPS 配置外部访问。

第 3 步:启动容器

sudo docker compose up -d
sudo docker compose ps

查看错误:

sudo docker compose logs --tail=100 wallos

第 4 步:绑定域名并启用 HTTPS

将域名的 DNS 记录指向 VPS 的 IP 地址,然后安装 Nginx 和 Certbot:

sudo apt update
sudo apt install -y nginx certbot python3-certbot-nginx
sudo nano /etc/nginx/sites-available/wallos

添加以下配置:

server {
    listen 80;
    server_name wallos.example.com;

    location / {
        proxy_pass http://127.0.0.1:8282;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

启用站点并签发证书:

sudo ln -s /etc/nginx/sites-available/wallos /etc/nginx/sites-enabled/wallos
sudo nginx -t
sudo systemctl reload nginx
sudo certbot --nginx -d wallos.example.com

面板将通过 https://wallos.example.com 访问。

初始设置

首次打开 Wallos 时,先创建账户,然后:

  1. 选择主要货币;
  2. 设置分类和付款方式;
  3. 根据需要添加家庭成员;
  4. 启用双因素认证;
  5. 连接通知渠道并发送测试消息;
  6. 添加几项真实订阅。

请特别注意付款周期和下一次付款日期:提醒和预测都依赖这些数据。

不要在备注中保存完整银行卡号、密码或恢复代码。Wallos 用于记录付款,但不能替代密码管理器。

更新与备份

要更新容器,请执行:

cd /opt/wallos
sudo docker compose pull
sudo docker compose up -d
sudo docker image prune -f

更新前请先创建备份。重要数据位于 dblogos 目录中:

cd /opt/wallos
sudo docker compose stop
sudo tar -czf /root/wallos-backup-$(date +%F).tar.gz db logos compose.yml
sudo docker compose start

归档文件需要转移到另一台设备或独立存储中。如果 VPS 被删除或磁盘损坏,保存在同一台 VPS 上的备份无法提供帮助。

Wallos 最适合部署在哪里

如果家庭服务器可以全天运行,它适合在本地访问。若你希望无论身处何地都能从手机和电脑打开面板,并且提醒不受家庭网络状况影响,那么 VPS 会更方便。

Wallos 不需要昂贵的配置。在 tropic.host,你可以从一台配有 1–2 GB RAM 的小型 Linux VPS 开始,安装 Docker,并通过带 HTTPS 的 Nginx 反向代理访问面板。以后增加其他自托管服务时,可以直接扩展资源,而不必把 Wallos 迁移到新服务器。

使用 VPS 并不意味着可以忽略基本安全措施:及时更新容器和系统,不要开放不必要的端口,使用高强度密码,启用 2FA,并将备份保存在独立位置。

简要总结

Wallos 解决了一个范围不大却很令人困扰的问题:让经常性付款不再隐形。你不再需要依赖分散的邮件、账单和提醒,而是可以在一个面板中查看日期、货币、分类和通知。

这项服务适合拥有大量数字订阅的人、家庭、自由职业者和小型团队。它需要手动录入数据,但作为交换,用户的财务概览会保存在自己的服务器上。

FAQ

Wallos 可以免费使用吗?

可以。Wallos 是按照 GPLv3 许可证发布的开源软件。只有在应用部署到 VPS 时,才会产生基础设施费用。

Wallos 会自动查找银行卡上的订阅吗?

不会。所有记录都需要手动添加,应用不需要访问银行账户。

Wallos 需要什么样的 VPS?

个人使用时,通常 1 个 vCPU 和 1 GB RAM 就足够。配备 2 GB RAM 的服务器可以为 Nginx、更新和其他轻量级容器留出更多余量。

Wallos 有俄语界面吗?

有。项目包含俄语本地化,可以在界面设置中选择。

恢复 Wallos 时需要备份哪些内容?

请保存 dblogos 目录,以及 compose.yml 文件。备份应存放在 VPS 之外。