前言

不知道大家有没有遇到这样情况,当我们看到优秀的文章时,通常喜欢把它加入书签栏。不过自从加入书签后便再也没有打开过,突然某天想要点击链接进行阅读时,发现链接早已失效。

而接下来要介绍的开源服务 Wallabag 就能解决上面的痛点,通过 Wallabag 插件可以把网页文章保存到自建的 Wallabag 服务上,当我们有空闲时间时再进行阅读,永远不必担心链接失效的问题。

项目地址

https://github.com/wallabag/wallabag

安装

Docker compose

Wallabag 默认自带 SQLite 数据库,如果单独配置数据库,那么默认的数据库不会使用。(下面的配置使用了 mariadb 和 redis 数据库)

version: '3'
services:
  wallabag:
    image: wallabag/wallabag
    restart: unless-stopped
    environment:
      - MYSQL_ROOT_PASSWORD=wallaroot
      - 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=wallapass
      - SYMFONY__ENV__DATABASE_CHARSET=utf8mb4
      - SYMFONY__ENV__DATABASE_TABLE_PREFIX="wallabag_"
      - SYMFONY__ENV__MAILER_DSN=smtp://127.0.0.1
      - [email protected]
      - SYMFONY__ENV__DOMAIN_NAME=https://your-wallabag-instance.wallabag.org
      - SYMFONY__ENV__SERVER_NAME="Your wallabag instance"
    ports:
      - "80"
    volumes:
      - /opt/wallabag/images:/var/www/wallabag/web/assets/images
    healthcheck:
      test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost/api/info"]
      interval: 1m
      timeout: 3s
    depends_on:
      - db
      - redis
  db:
    image: mariadb
    restart: unless-stopped
    environment:
      - MYSQL_ROOT_PASSWORD=wallaroot
    volumes:
      - /opt/wallabag/data:/var/lib/mysql
    healthcheck:
      test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
      interval: 20s
      timeout: 3s
  redis:
    image: redis:alpine
    restart: unless-stopped    
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 20s
      timeout: 3s

群晖

🔻 打开群晖的【Container Manager】,搜索wallabag,选择第一个wallabag/wallabag镜像进行下载。

🔻 在等待下载过程中,在【File Station】套件中创建wallabag文件夹,并在该文件夹中新建imagesdata分别存放图片和文件。

🔻 设置wallabag文件夹权限为 Everyone 可读写,并勾选应用到子文件、文件夹。

🔻 等待镜像下载完毕。运行wallabag镜像,端口设置为任意端口(8187)与容器的80端口进行映射。

🔻 把容器中的/var/www/wallabag/web/assets/images/var/www/wallabag/data文件分别与前面新建的 images、data 文件夹进行映射。

🔻 设置环境变量SYMFONY__ENV__DOMAIN_NAME为后面将要反代的域名(例如https://wallabag.laoning.com:12443)。

确认配置没有问题后直接启动容器。

反向代理

🔻 打开 Nginx Proxy Manager 新增反代配置。填入域名、IP、端口。(IP为群晖的内网IP,端口为 Wallabag 服务的端口)

🔻 选择SSL证书。

配置完成的URL加端口要与环境变量SYMFONY__ENV__DOMAIN_NAME设置的一致。

使用

电脑端

🔻 浏览器打开域名即可访问。(账户密码都为:wallabag)

🔻 在右上角->config菜单中修改语言为中文。

🔻 在右上角->教程 菜单中选择安装浏览器插件。

🔻 按要求配置插件。

🔻 配置完成后,打开要保存的网页,点击插件就能把文章保存到 Wallabag 。

🔻 保存到 Wallabag 的文章。

🔻 点击文章后,可以对文章进行重新抓取、打印、导出等操作。

手机端

🔻 下载手机APP并按照要求输入客户端ID、密钥、用户名和密码完成登录。

🔻 APP上也能阅读保存的文章。

如果要在手机上保存文章,用浏览器打开文章链接地址后,并把当前页面分享到 Wallabag 即可。

后记

试了群晖自带的 MariaDB 和以前搭建好的 MySQL 数据库来存储 Wallabag 的数据,发现环境变量SYMFONY__ENV__DATABASE_HOST为IP地址的时候都无法成功,个人猜测应该只能使用用 docker-compose 配置文件中定义的数据库容器名称。

最后修改:2024 年 08 月 12 日
如果觉得我的文章对你有用,就给个赏~~写文章,费烟~