- 本文完成于
7
月初,最近工作比较忙,只能发发存稿;- 到本文发表为止,
Shiori
的正式版依然还是v1.5.3
;
什么是 Shiori ?
Shiori
是一款用Go
语言编写的简单书签管理器,旨在作为web
应用程序,支持浏览器扩展,但没有手机客户端。
Shiori
是一款比较 老
的程序,但是一直还在更新中,其兼具了书签和稍后阅读的功能。
之所以想起写 Shiori
是打算帮朋友看个问题,哪知道安装中遇到了一些坑,顺便就记录了一下,防止遗忘,使用的版本为 v1.5.3
建数据库
Shiori
支持带 SQLite3
、MySQL
、PostgreSQL
数据库,既然是群晖所以就选择系统自带的 MariaDB 10
在 phpMyAdmin
中创建了名为 shiori
的空数据库。
这里假定数据库密码也设为了
shiori
往常应该到这就结束了,容器在启动时应该会自己创建表和导入数据,进行数据的迁移,但是Shiori
并没有。直接安装后,在登录时会显示了下面的错误
老苏尝试过使用
SQLite
也遇到同样的问题
failed to fetch accounts: Error 1146: Table 'shiori.account' doesn't exist (500)
从报错看应该是没有创建相应的表,在 phpMyAdmin
看也确实没有表
查阅后发现官方在 v1.5.3
的 Breaking changes
中做了说明
方法一
手动导入 SQL
脚本,在 https://github.com/go-shiori/shiori/tree/master/internal/database/migrations/mysql 可以找到 MySQL
对应的数据库脚本
你可以下载之后再在 phpMyAdmin
中导入,也可以直接复制
在 phpMyAdmin
中依次执行 SQL
4
个脚本全部完成后会有 4
张表
方法二
是在容器启动之后,再执行下面的命令,完成数据库迁移
docker exec -it shiori shiori migrate
相比而言,方法二适用范围更广,是官方提供的方法;方法一就显得比较笨拙了,这是老苏在看到官方说明前使用的方法;
命令行安装
在群晖上以 Docker 方式安装。
但dockerhub
上的镜像已经超过了 2
年
并不是官方没有发布最新的镜像,而是发布到了 ghcr.io
,从版本看,目前最新的版本是 v1.5.3
用 SSH
客户端登录到群晖后,依次执行下面的命令
# 新建文件夹 shiori
mkdir -p /volume2/docker/shiori# 进入 shiori 目录
cd /volume2/docker/shiori# 拉取镜像
docker pull ghcr.io/go-shiori/shiori
如果没有科学上网,很可能会拉不动,可以试试 docker
代理网站:https://dockerproxy.com/,但是会多几个步骤
# 如果拉不动的话加个代理
docker pull ghcr.dockerproxy.com/go-shiori/shiori# 重命名镜像(如果是通过代理下载的)
docker tag ghcr.dockerproxy.com/go-shiori/shiori:latest ghcr.io/go-shiori/shiori:latest# 删除代理镜像(如果是通过代理下载的)
docker rmi ghcr.dockerproxy.com/go-shiori/shiori
现在可以开始运行了
# 运行容器
docker run -d \--restart unless-stopped \--name shiori \-p 7388:8080 \-e SHIORI_DBMS='mysql' \-e SHIORI_MYSQL_NAME='shiori' \-e SHIORI_MYSQL_USER='shiori' \-e SHIORI_MYSQL_PASS='shiori' \-e SHIORI_MYSQL_ADDRESS='tcp(192.168.0.197:3307)' \ghcr.io/go-shiori/shiori
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
version: '3'services:shiori:image: ghcr.io/go-shiori/shioricontainer_name: shiorirestart: unless-stoppedports:- "7388:8080"environment:- SHIORI_DBMS=mysql- SHIORI_MYSQL_NAME=shiori- SHIORI_MYSQL_USER=shiori- SHIORI_MYSQL_PASS=shiori- SHIORI_MYSQL_ADDRESS=tcp(192.168.0.197:3307)
然后执行下面的命令
# 新建文件夹 shiori 和 子目录
mkdir -p /volume2/docker/shiori# 进入 shiori 目录
cd /volume2/docker/shiori# 拉取镜像
docker pull ghcr.io/go-shiori/shiori# 如果拉不动的话加个代理
docker pull ghcr.dockerproxy.com/go-shiori/shiori# 重命名镜像(如果是通过代理下载的)
docker tag ghcr.dockerproxy.com/go-shiori/shiori:latest ghcr.io/go-shiori/shiori:latest# 删除代理镜像(如果是通过代理下载的)
docker rmi ghcr.dockerproxy.com/go-shiori/shiori# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d
运行
在浏览器中输入 http://群晖IP:7388
就能看到登录界面
初始管理员用户名和密码为
shiori
和gopher
登录成功后
可以创建新的账号
初始账号在数据库中是查不到的,插件登录只能用新建账号
插件
目前支持 Chrome
和 firefox
插件, Chrome
插件可以在 https://github.com/go-shiori/shiori-web-ext 下载,然后在 Chrome
的扩展程序页面打开「开发者模式」把下载的文件拖进去即可。
设置服务器地址、账号、密码就可以开始使用了
只要出现 Active session
就算登录成功了
收藏的时候有时候会报错
没有去深究,可能还有隐藏的问题
实际上已经成功了
Shiori
的使用教程非常多,老苏就不打算再写使用篇了
参考文档
go-shiori/shiori: Simple bookmark manager built with Go
地址:https://github.com/go-shiori/shiori
Package shiori
地址:https://github.com/go-shiori/shiori/pkgs/container/shiori
Docker Proxy 镜像加速
地址:https://dockerproxy.com/
shiori/Usage.md at master · go-shiori/shiori
地址:https://github.com/go-shiori/shiori/blob/master/docs/Usage.md