1.简介
wallabag是一款开源的,可以自托管的稍后阅读工具。提供了浏览器插件和手机客户端,可以很方便的收藏文章用于稍后再看。
wallabag官网,wallabag github地址,wallabag dockerhub
2.部署
2.1.docker部署
cd /docker_data/
mkdir -p wallabag/data
cd wallabag
vi docker-compose.yml
version: '3'
services:wallabag:image: wallabag/wallabagcontainer_name: wallabagenvironment:- MYSQL_ROOT_PASSWORD=wallaroot- SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql- SYMFONY__ENV__DATABASE_HOST=wallabag_mysql- 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__REDIS_HOST=wallabag_redis- SYMFONY__ENV__MAILER_DSN=smtp://127.0.0.1- SYMFONY__ENV__FROM_EMAIL=666666666@qq.com- SYMFONY__ENV__DOMAIN_NAME=https://reader.giegie.top- SYMFONY__ENV__SERVER_NAME="monkey's wallabag"- TZ=Asia/Shanghaivolumes:- /docker_data/wallabag/images:/var/www/wallabag/web/assets/imageshealthcheck:test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost"]interval: 1mtimeout: 3sdepends_on:- db- redisdb:image: mariadbcontainer_name: wallabag_mysqluser: "1000:1000" # 宿主docker执行用户的UID和PID,容器内以1000.1000执行mysqlenvironment:- MYSQL_ROOT_PASSWORD=wallaroot- TZ=Asia/Shanghaivolumes:- /docker_data/wallabag/data:/var/lib/mysqlhealthcheck:test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]interval: 20stimeout: 3sredis:image: redis:alpinecontainer_name: wallabag_redisenvironment:- TZ=Asia/Shanghaihealthcheck:test: ["CMD", "redis-cli", "ping"]interval: 20stimeout: 3s
networks: #所有的容器都在all_net上,彼此之间可以使用容器名访问,因此Nginx proxy manager可以方向代理,容器不需要把端口暴露在宿主机default:name: all_netexternal: true
docker compose up -d
2.2.添加反向代理
在DNS域名提供商提前做好解析
在Nginx Proxy Manager中添加
3.登录
默认用户名密码 wallabag/wallabag
4.常用设置
设置语言:My account ---> Config --->Language --->简体中文
修改密码:我的账户---》配置---》密码
5.疑难杂症
5.1.保存图片到本地
我的账户---》内部设置---》杂项 ---》在本地缓存图片---》1
wallabag容器内使用nobody执行的,images创建出来在宿主机的用户是root,因此无法在images下创建目录,权限不足
# 1.可以把images目录权限修改为777
cd /docker_data/wallabag
sudo chmod 777 images
# 2.可以把images目录属组修改为65534(容器内nobody uid为65534),用这个方法会导致宿主机docker执行用户无法进入目录
sudo chown -R 65534:65534 images
5.2.异步导入
我的账户---》内部设置---》启用 Redis 来异步导入数据---》1
试了很多次异步导入,json文件导入后,总是不会启动,可以用下面的命令手动启动
docker exec -it wallabag_redis redis-cli
# 可以看到redis中已经有了key,但就是不开始导入
docker exec -it --user nobody wallabag /var/www/wallabag/bin/console wallabag:import:redis-worker <type> --env=prod
# 其中<type>是你导入的类型,比如firefox、chrome、wallabag_v2等