Wallabag 稍后阅读服务搭建教程

Wallabag 是一款开源的稍后阅读服务,类似于 Pocket 和 Instapaper,可以保存网页文章的内容供日后阅读。自建 Wallabag 的优势在于数据完全由自己掌控,没有广告,也不会因为服务关闭而丢失收藏的文章。本文将介绍如何在搬瓦工 VPS 上通过 Docker 部署 Wallabag。

一、Wallabag 功能特点

  • 文章保存:自动提取网页正文内容,去除广告和无关元素。
  • 离线阅读:文章内容保存在服务器上,即使原始网页删除也可以阅读。
  • 标签分类:使用标签对文章进行分类管理。
  • 全文搜索:支持对已保存文章进行全文搜索。
  • 多端同步:提供 Android、iOS 客户端和浏览器扩展。
  • 阅读统计:估算文章阅读时间,跟踪阅读进度。
  • 导出功能:支持将文章导出为 EPUB、PDF、Markdown 等格式。
  • RSS 输出:为未读、已读、收藏文章分别生成 RSS Feed。
  • 从 Pocket 迁移:支持从 Pocket 导入已保存的文章。

二、环境准备

  • 搬瓦工 VPS 一台,建议 1GB 以上内存(使用优惠码 NODESEEK2026 享受 6.77% 折扣)。
  • 已安装 Docker 和 Docker Compose(参考 Docker 安装教程)。
  • 域名一个。

2.1 创建项目目录

mkdir -p /opt/wallabag
cd /opt/wallabag

三、Docker Compose 部署

cat > /opt/wallabag/docker-compose.yml <<'EOF'
version: '3.8'

services:
  wallabag:
    image: wallabag/wallabag:latest
    restart: always
    ports:
      - "8080:80"
    environment:
      MYSQL_ROOT_PASSWORD: root_password
      SYMFONY__ENV__DATABASE_DRIVER: pdo_mysql
      SYMFONY__ENV__DATABASE_HOST: db
      SYMFONY__ENV__DATABASE_PORT: 3306
      SYMFONY__ENV__DATABASE_NAME: wallabag
      SYMFONY__ENV__DATABASE_USER: wallabag
      SYMFONY__ENV__DATABASE_PASSWORD: wallabag_db_password
      SYMFONY__ENV__DOMAIN_NAME: https://read.yourdomain.com
      SYMFONY__ENV__SERVER_NAME: "Wallabag"
      SYMFONY__ENV__FOSUSER_REGISTRATION: "false"
      SYMFONY__ENV__FOSUSER_CONFIRMATION: "false"
    depends_on:
      - db
      - redis
    volumes:
      - /opt/wallabag/images:/var/www/wallabag/web/assets/images
      - /opt/wallabag/data:/var/www/wallabag/data

  db:
    image: mariadb:10.11
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root_password
      MYSQL_DATABASE: wallabag
      MYSQL_USER: wallabag
      MYSQL_PASSWORD: wallabag_db_password
    volumes:
      - db_data:/var/lib/mysql

  redis:
    image: redis:7-alpine
    restart: always

volumes:
  db_data:
EOF

四、启动服务

cd /opt/wallabag
docker compose up -d

等待数据库初始化完成(首次需要 1-2 分钟),查看日志:

docker compose logs -f wallabag

默认管理员账号为 wallabag,密码为 wallabag。登录后请立即修改密码。

五、配置 Nginx 反向代理

cat > /etc/nginx/sites-available/wallabag <<'EOF'
server {
    listen 80;
    server_name read.yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        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;
    }

    client_max_body_size 10m;
}
EOF

ln -sf /etc/nginx/sites-available/wallabag /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d read.yourdomain.com

六、客户端配置

6.1 浏览器扩展

安装 Wallabag 浏览器扩展(Chrome/Firefox 均可),配置服务器地址和 API 凭据,即可一键保存当前网页到 Wallabag。API 凭据在 Wallabag 设置页面中生成。

6.2 手机客户端

在 Android 的 Google Play 或 F-Droid,以及 iOS 的 App Store 中搜索安装 Wallabag 客户端。配置服务器地址和 API 信息即可使用。

6.3 RSS 阅读器集成

在 Wallabag 设置中可以找到 RSS Feed 地址,将其添加到 FreshRSS 等 RSS 阅读器中,即可在 RSS 阅读器中查看 Wallabag 保存的文章。

七、从 Pocket 迁移

  1. 在 Pocket 设置中导出数据,获取 HTML 格式的导出文件。
  2. 在 Wallabag 中进入「导入」页面。
  3. 选择「Pocket」导入方式,上传文件或配置 API 导入。

八、数据备份

# 备份数据库
docker compose exec db mysqldump -u wallabag -p wallabag > /opt/wallabag/backup_$(date +%Y%m%d).sql

# 备份文章图片
tar czf /opt/wallabag/images_backup_$(date +%Y%m%d).tar.gz /opt/wallabag/images

九、常见问题

文章内容提取不完整

某些网站使用 JavaScript 动态渲染内容,Wallabag 可能无法完整提取。可以尝试使用浏览器扩展,它会发送渲染后的内容。

图片无法显示

检查 SYMFONY__ENV__DOMAIN_NAME 设置是否正确,图片 URL 需要使用正确的域名。

总结

Wallabag 是一个优秀的自托管稍后阅读服务,可以完全替代 Pocket 和 Instapaper。搭配 FreshRSSMiniflux 使用,可以构建完整的信息阅读体系。选购搬瓦工 VPS 请访问 bwh81.net,使用优惠码 NODESEEK2026 享受 6.77% 折扣。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。