🚀 使用 Docker Compose 部署 Wallabag
🚀 使用 Docker Compose 部署 Wallabag
Wallabag 是一款开源的“稍后阅读”工具,它允许你保存网页内容(如文章、新闻、博客帖子等),并提供一个干净、无干扰的阅读环境。它能够智能提取网页的核心内容,去除广告和无关的导航元素,支持多平台同步,并且所有数据都掌握在你自己手中。
📦 项目简介
Wallabag 的核心价值在于帮助你高效管理网络阅读资源,其具备以下特点:
- 自托管与数据控制:你可以将 Wallabag 部署在自己的服务器上,确保数据的安全性和隐私性。
- 内容提取与净化:它能智能识别并提取网页的主要文章内容,去除广告等干扰元素,提供舒适的阅读视图。
- 跨平台同步:支持通过 Web 界面、浏览器扩展以及移动应用(Android 和 iOS)访问和管理你的收藏。
- 强大的内容管理:你可以为文章打标签、分类,并利用强大的筛选搜索功能快速定位内容。
- 数据迁移与导出:支持从 Pocket、Instapaper 等服务导入数据,并可将文章导出为 EPUB、PDF 等多种格式。
⚙️ 部署前准备
-
环境要求
- 确保你的系统已安装 Docker 和 Docker Compose。
- 建议系统内存不少于 1GB。
- 确保计划使用的端口(例如配置文件中的
8070)未被占用。
-
环境检查 在终端中执行以下命令,确认 Docker 环境正常:
bash docker --version docker-compose --version -
创建项目目录 建议创建一个独立的目录来管理所有部署文件。
bash mkdir -p /opt/docker/wallabag cd /opt/docker/wallabag
🛠️ 配置 Docker Compose
在你创建的目录下,创建 docker-compose.yml 文件。这里直接采用了你提供的配置,它设置了 Wallabag、MariaDB 数据库和 Redis 缓存,是一个功能完整的生产级配置。
#五、避坑指南
#• 首次登录账号:wallabag/wallabag(记得修改!)
#• 中文设置路径:右上角用户图标 → Settings → Language
#• 内存优化技巧:MySQL容器可替换为MariaDB,资源占用直降30%
services:
wallabag: # 主服务:Wallabag 应用
image: wallabag/wallabag # 官方镜像
container_name: wallabag # 容器名称,便于识别
environment:
- MYSQL_ROOT_PASSWORD=wallaroot # 数据库 root 密码(建议修改为复杂密码)
- SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql # 数据库驱动(使用 MySQL)
- SYMFONY__ENV__DATABASE_HOST=db # 数据库服务名(对应下方 db 服务)
- SYMFONY__ENV__DATABASE_PORT=3306 # 数据库端口
- SYMFONY__ENV__DATABASE_NAME=wallabag # 数据库名称
- SYMFONY__ENV__DATABASE_USER=wallabag # 数据库用户名
- SYMFONY__ENV__DATABASE_PASSWORD=wallapass # 数据库用户密码(建议修改)
- SYMFONY__ENV__DATABASE_CHARSET=utf8mb4 # 数据库字符集(支持 emoji)
- SYMFONY__ENV__DATABASE_TABLE_PREFIX="wallabag_" # 数据库表前缀
- SYMFONY__ENV__MAILER_HOST=127.0.0.1 # 邮件服务器(暂不配置可留默认)
- SYMFONY__ENV__MAILER_USER=~ # 邮件用户名(可选)
- SYMFONY__ENV__MAILER_PASSWORD=~ # 邮件密码(可选)
#- SYMFONY__ENV__FROM_EMAIL=admin@yemengstar.com # 修改为你自己的邮箱
- SYMFONY__ENV__FROM_EMAIL=admin@open.io # 发件人邮箱(修改为自己的邮箱)
#- SYMFONY__ENV__DOMAIN_NAME=http://192.168.0.3:8070
#- SYMFONY__ENV__DOMAIN_NAME=https://tech.yemengstar.com # 修改为你自己的域名
- SYMFONY__ENV__DOMAIN_NAME=https://wallabag.clxr-25.top # 服务域名(修改为自己的域名/IP)
- SYMFONY__ENV__SERVER_NAME="Shi Wallabag Instance" # 服务显示名称(可自定义)
ports:
- "8070:80" # 端口映射:服务器 8070 端口 → 容器 80 端口
volumes:
- ./images:/var/www/wallabag/web/assets/images # 持久化图片:保存文章中的图片
healthcheck: # 健康检查:定期检测服务是否可用
test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost"]
interval: 1m
timeout: 3s
depends_on: # 依赖关系:先启动 db 和 redis 再启动 wallabag
- db
- redis
db: # 数据库服务:使用 MariaDB 存储数据
image: mariadb # MariaDB 镜像(兼容 MySQL)
environment:
- MYSQL_ROOT_PASSWORD=wallaroot # 需与上方 wallabag 服务的密码一致
volumes:
- ./data:/var/lib/mysql # 持久化数据库:保存所有文章和用户数据
healthcheck: # 数据库健康检查
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
interval: 20s
timeout: 3s
redis: # 缓存服务:提升 Wallabag 访问速度
image: redis:alpine # 轻量版 Redis 镜像
healthcheck: # 缓存服务健康检查
test: ["CMD", "redis-cli", "ping"]
interval: 20s
timeout: 3s
关键配置说明:
| 配置项 | 说明与建议 |
|---|---|
SYMFONY__ENV__DOMAIN_NAME |
这是最重要的配置之一,必须设置为您访问 Wallabag 的完整地址(例如 https://您的域名 或 http://IP:8070),否则可能导致网页保存或插件连接问题。 |
volumes |
配置了数据持久化。./images 用于保存网站图片等资源,./data 是 MariaDB 的数据目录。请务必确保这些目录存在且具有正确的读写权限,否则可能导致容器启动失败。 |
ports |
"8070:80" 将容器内的 80 端口映射到主机的 8070 端口。您可以根据需要修改主机端口。 |
depends_on |
确保服务启动顺序,Wallabag 会在 db (数据库) 和 redis (缓存) 之后启动。 |
healthcheck |
定义了容器健康检查,有助于 Docker Compose 管理服务状态。 |
注意:在启动容器前,请务必将
SYMFONY__ENV__DOMAIN_NAME和SYMFONY__ENV__FROM_EMAIL的值修改为您自己的域名和邮箱地址。如果SYMFONY__ENV__DOMAIN_NAME设置不正确,容器可能会不断重启。
🚀 启动与验证
-
启动服务 在
docker-compose.yml文件所在目录执行:bash docker-compose up -d此命令会拉取镜像并在后台启动所有容器。 -
检查服务状态
bash docker-compose ps检查所有容器的状态是否为Up。首次启动时,由于要进行初始化,Wallabag 容器可能需要多花一点时间。 -
查看日志(可选) 如果容器状态异常,可以通过日志排查问题:
bash docker-compose logs wallabag -
访问并初始化
- 打开浏览器,访问
http://你的服务器IP:8070。 - 首次访问,可以使用默认管理员账号登录:用户名为
wallabag,密码为wallabag。 - 登录后请立即在设置中修改管理员密码。
- 打开浏览器,访问
⚙️ 基础配置与使用
-
收录新文章
- 手动收录:在 Web 界面点击右上角的
+按钮,输入文章地址即可保存。 - 浏览器扩展:这是更便捷的方式。以 Chrome 为例,安装 Wallabagger 插件。
- 在 Wallabag Web 界面,点击右上角头像,进入 "API 客户端管理",创建一个新的客户端,记下生成的 ID 和 密钥。
- 在浏览器插件的设置页面,配置服务器地址、ID 和密钥,然后就可以一键保存网页了。
- 手动收录:在 Web 界面点击右上角的
-
文章管理与阅读
- 在首页可以查看所有收藏的文章,支持搜索和筛选(如按标签、未读、收藏等)。
- 点击文章即可进入净化后的阅读视图,专注于内容本身。
-
配置通知(可选)
- 如果你配置了正确的
SYMFONY__ENV__MAILER_*环境变量和发件邮箱,可以启用邮件通知功能。
- 如果你配置了正确的
🔒 维护与管理
-
服务管理:
- 停止服务:
docker-compose down - 重启服务:
docker-compose restart - 查看状态:
docker-compose ps
- 停止服务:
-
数据备份:
- 定期备份项目目录下的
data和images文件夹。data目录包含了全部数据库内容,至关重要。
- 定期备份项目目录下的
-
版本更新:
bash # 进入项目目录 docker-compose down docker-compose pull docker-compose up -d # 可选:清理无用镜像 docker image prune
🐛 常见问题排查
| 问题现象 | 可能原因与解决方法 |
|---|---|
| 无法访问 Web 界面 | 1. 检查防火墙是否放行了 8070 端口。2. 确认所有容器状态正常: docker-compose ps。3. 检查 SYMFONY__ENV__DOMAIN_NAME 设置是否正确。 |
| 容器启动失败或不断重启 | 1. 检查 SYMFONY__ENV__DOMAIN_NAME 环境变量是否已设置且格式正确(包含 http:// 或 https://)。2. 检查挂载的数据目录( ./data, ./images)权限是否正确。 |
| 浏览器插件无法连接 | 1. 确认插件中配置的服务器地址与 DOMAIN_NAME 完全一致。2. 检查 Wallabag 中生成的 API 客户端 ID 和密钥是否正确填写到插件中。 |
| 网页内容保存失败或格式错乱 | 部分网页结构复杂,可能导致 Wallabag 的内容提取不理想,这是正常现象。 |
希望这份教程能帮助你顺利搭建起属于自己的 Wallabag 服务,尽情享受高效、纯净的阅读体验吧!