跳到主要内容

Wallos 部署教程:管理 VPS、域名与订阅续费

用 Docker 部署 Wallos 5.8.3,记录原币种与真实续费周期,测试通知,并完整备份数据库和上传图标。

年付账单与月均预算分别记录

几台 VPS、域名和软件订阅放在不同账号里,可以用 Wallos 记录真实币种、账期、续费金额和下次付款日期。年付套餐可以折算月均预算,但付款周期仍填一年;首购优惠结束后,下一笔支出要改成实际续费金额。

只有少量订单,用表格也能管理。已有 VPS 通常可以合并部署 Wallos,不必专门再租一台。它提供提醒和费用汇总,取消续费、关闭自动扣款与付款状态仍需到商家账号确认。

先绑定回环地址,创建自己的账号

准备已有 Docker Engine 和 Compose 插件的 Linux 服务器。以下使用 Wallos 5.8.3,镜像标签已对应当前发布版本;以有权限的用户创建目录,8282 若被占用则同时修改端口与 SSH 转发。

bash;使用前请核对本文前提。
sudo mkdir -p /opt/wallos
sudo chown "$(id -u):$(id -g)" /opt/wallos
cd /opt/wallos
mkdir -p db logos
yaml;使用前请核对本文前提。
services:
  wallos:
    image: bellamy/wallos:5.8.3
    restart: unless-stopped
    ports:
      - "127.0.0.1:8282:80"
    environment:
      TZ: Asia/Shanghai
    volumes:
      - ./db:/var/www/html/db
      - ./logos:/var/www/html/images/uploads/logos

保存为 compose.yml。db 保存数据库,logos 保存上传图标,两者都需要持久化。不要只备份配置文件而遗漏实际数据。

bash;使用前请核对本文前提。
docker compose config --quiet
docker compose up -d
docker compose ps
docker compose logs --tail=60 wallos

在自己的电脑建立 SSH 转发,把用户名和服务器地址换掉,然后打开 http://127.0.0.1:18282 创建账号:

bash;使用前请核对本文前提。
ssh -N -L 18282:127.0.0.1:8282 user@server

先录一笔 VPS,测试一次通知

填写商家、套餐、原币种、实际账期、续费金额与日期,并与商家下一张账单对照。支付渠道汇率与手续费会影响实付,换算后的预算不应当成固定人民币扣款。

Wallos 支持邮件及多种通知渠道。先配置自己使用的渠道,执行测试通知,再用一笔近期付款记录确认提醒到达。自动扣款仍由商家处理,提醒失败也不会替你暂停订阅。

需要域名时再接入现有 HTTPS 代理

账号建好后,可用现有反向代理将域名请求转到宿主机 127.0.0.1:8282,并配置有效 HTTPS。代理运行在容器内时,localhost 指向代理容器,需要使用可达的宿主机地址或同网络服务名,不能照抄宿主机目标。

保留登录保护,不把续费信息、通知凭据或管理员入口公开。已有 1Panel、Nginx 或 Caddy 时继续使用对应入口,不为这个应用再启动一套程序争抢 80、443。

数据库和图标一起备份,再升级

下面在服务器 Bash 中执行,备份期间 Wallos 暂停。脚本用私有权限创建备份,并在退出时尝试恢复运行;结束后仍要确认容器状态:

bash;使用前请核对本文前提。
bash <<'BASH'
set -e
cd /opt/wallos
umask 077
mkdir -p /opt/wallos/backups
backup_file="/opt/wallos/backups/wallos-$(date +%Y%m%d-%H%M%S).tar.gz"
trap 'docker compose start wallos' EXIT
docker compose stop wallos
tar -czf "$backup_file" compose.yml db logos
sha256sum "$backup_file" > "$backup_file.sha256"
BASH

复制到独立存储后,在测试机或隔离目录恢复,使用另一回环端口验证账号、订阅记录与图标。测试副本不要连接正式通知渠道,避免重复提醒。

升级前读目标版本发布记录,确认备份可恢复,再修改镜像标签、拉取并重建。数据库迁移后若需要回退,使用升级前的数据副本与对应旧镜像;直接给新数据换回旧镜像,未必能恢复运行。