• 安装网页书签收藏夹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 也遇到同样的问题

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

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

    查阅后发现官方在 v1.5.3Breaking 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
    
    • 1

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

    命令行安装

    在群晖上以 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    如果没有科学上网,很可能会拉不动,可以试试 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    现在可以开始运行了

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

    也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

    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

    然后执行下面的命令

    # 新建文件夹 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    运行

    在浏览器中输入 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

  • 相关阅读:
    MySQL日期和字符相互转换方法
    Spring源码:Bean生命周期(终章)
    Redis-事物
    【MyBatis笔记05】MyBatis中常见的几种查询结果类型介绍
    网格搜索和交叉验证
    现代企业架构框架-应用架构
    05. Java多线程机制
    MySQL数据库期末考试试题及参考答案(05)
    Springboot+Vue项目-基于Java+MySQL的网上购物商城系统(附源码+演示视频+LW)
    测试八股文-Selenium
  • 原文地址:https://blog.csdn.net/wbsu2004/article/details/126742879