安装网页书签收藏夹Shiori

  • 本文完成于 7 月初,最近工作比较忙,只能发发存稿;
  • 到本文发表为止,Shiori 的正式版依然还是 v1.5.3

什么是 Shiori ?

Shiori 是一款用 Go 语言编写的简单书签管理器,旨在作为 Pocket 的简单克隆。您可以将其用作命令行应用程序或 web 应用程序,支持浏览器扩展,但没有手机客户端。

Shiori 是一款比较 的程序,但是一直还在更新中,其兼具了书签和稍后阅读的功能。

之所以想起写 Shiori 是打算帮朋友看个问题,哪知道安装中遇到了一些坑,顺便就记录了一下,防止遗忘,使用的版本为 v1.5.3

建数据库

Shiori 支持带 SQLite3MySQLPostgreSQL 数据库,既然是群晖所以就选择系统自带的 MariaDB 10

phpMyAdmin 中创建了名为 shiori 的空数据库。

这里假定数据库密码也设为了 shiori

往常应该到这就结束了,容器在启动时应该会自己创建表和导入数据,进行数据的迁移,但是Shiori 并没有。直接安装后,在登录时会显示了下面的错误

老苏尝试过使用 SQLite 也遇到同样的问题

1
failed to fetch accounts: Error 1146: Table 'shiori.account' doesn't exist (500)

从报错看应该是没有创建相应的表,在 phpMyAdmin 看也确实没有表

方法一

手动导入 SQL 脚本,在 https://github.com/go-shiori/shiori/tree/master/internal/database/migrations/mysql 可以找到 MySQL 对应的数据库脚本

你可以下载之后再在 phpMyAdmin 中导入,也可以直接复制

phpMyAdmin 中依次执行 SQL

4 个脚本全部完成后会有 4 张表

方法二

查阅后发现官方在 v1.5.3Breaking changes 中做了说明

在容器启动之后,再执行下面的命令,即可完成数据库迁移

1
docker exec -it shiori shiori migrate

相比而言,方法二适用范围更广,是官方提供的方法;方法一就显得比较笨拙了,这是老苏在看到官方说明前使用的方法;

命令行安装

在群晖上以 Docker 方式安装。

dockerhub 上的镜像已经超过了 2

并不是官方没有发布最新的镜像,而是发布到了 ghcr.io,从版本看,目前最新的版本是 v1.5.3

SSH 客户端登录到群晖后,依次执行下面的命令

1
2
3
4
5
6
7
8
# 新建文件夹 shiori 
mkdir -p /volume2/docker/shiori

# 进入 shiori 目录
cd /volume2/docker/shiori

# 拉取镜像
docker pull ghcr.io/go-shiori/shiori

如果没有科学上网,很可能会拉不动,可以试试 docker 代理网站:https://dockerproxy.com/,但是会多几个步骤

1
2
3
4
5
6
7
8
# 如果拉不动的话加个代理
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

现在可以开始运行了

1
2
3
4
5
6
7
8
9
10
11
# 运行容器
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 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: '3'

services:
shiori:
image: ghcr.io/go-shiori/shiori
container_name: shiori
restart: unless-stopped
ports:
- "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)

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 新建文件夹 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 就能看到登录界面

初始管理员用户名和密码为 shiorigopher

登录成功后

可以创建新的账号

初始账号在数据库中是查不到的,插件登录只能用新建账号

插件

目前支持 Chromefirefox 插件, 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