威联通折腾篇十九:Calibre-web

借助 QNAP(威联通)的 Container Station 功能,可以展开无限想象,之前也已经分享 过很多的使用 Docker 镜像来安装的教程了。所以今天不展开讲,主要就是来分享一下,最近安装的 calibre-web。因为之前七零八落的收集了很多电子书,文件分散在磁盘的各个地方,一直没有好好整理,正好趁着这个机会把所有的文件都放到一个地方了。

docker

主要是用的镜像是 technosoft2000 制作的 calibre-web:

我尝试了 linuxserver 发布的 calibre-web,也不错,不过缺少了在线预览功能。然后还看到有几个中文的镜像,还没来得及尝试。

源码主要在 https://github.com/janeczku/calibre-web 这里。

docker create --name=calibre-web --restart=always \
-v <your Calibre books folder>:/books \
[-v <your Calibre Web application folder>:/calibre-web/app] \
[-v <your Calibre Web kindlegen folder>:/calibre-web/kindlegen`]
[-v <your Calibre Web config folder>:/calibre-web/config \]
[-e USE_CONFIG_DIR=true \]
[-e APP_REPO=https://github.com/janeczku/calibre-web.git \]
[-e APP_BRANCH=master \]
[-e SET_CONTAINER_TIMEZONE=true \]
[-e CONTAINER_TIMEZONE=<container timezone value> \]
[-e PGID=<group ID (gid)> -e PUID=<user ID (uid)> \]
-p <HTTP PORT>:8083 \
technosoft2000/calibre-web

批量导入书籍

注意下方命令中的 --library-path 需要指定 Calibre 库的位置。

calibredb add --library-path=/books -r /path/to/your/book_dir_you_want_to_add

使用该方法添加的书籍会在原始位置,而 metainfo 则会添加到 Calibre 库中,也就是上面一行的 /books 目录中。

更多关于 calibredb 命令的使用可以参考官网

Goodreads API

获取 Goodreads API

批量导入 Calibre

在 Calibre 界面中可以快速的导入一个目录,但是在 Web UI 里面暂时不能做到,所以借用 Bash 命令 1

if [ "$(ls -A /[autoaddfolder])" ]; then
	 calibredb add -r "/[autoaddfolder]" --library-path="/[calibrelibraryfolder]"
fi

Others

talebook

亮点是支持从豆瓣获取数据,不过我使用的 technosoft2000 的镜像也是支持的。

talebook-calibre-web

gshang2017

豆瓣 API

在最早使用 Calibre-web 的时候还自带豆瓣图书的数据源,可以一键将图书的 metadata 信息补充完整,但后来豆瓣把 API 关闭了,所以可以借助如下的项目来将此部份模块替换,使用 Python 爬取豆瓣的数据。

延伸

  • Komga 另一个可以自行搭建的图书管理
  1. https://github.com/janeczku/calibre-web/issues/412 


2020-02-08 qnap , calibre , calibre-web , linux , docker , qnap-tutorial

威联通折腾篇二十:自带 Apache Web 服务器及 SSL 配置

折腾一下威联通自带的 Web 服务器。

vhost

在界面上修改虚拟主机配置,比如 Create New Virtual Host:

  • Host name: blog.nas.com
  • folder: /share/Web/wp
  • protocol: HTTP
  • port number: 80

对应的修改会保存到如下文件:

/etc/config/apache/extra/httpd-vhosts-user.conf

点击应用,QNAP 会应用修改,然后因为我是局域网用,所以修改了我本地 /etc/hosts,把域名 blog.nas.com 指到 QNAP 的局域网地址。

/etc/init.d/Qthttpd.sh reload

然后在自己机器上就能通过域名 (blog.nas.com) 访问 NAS 中 /share/Web/wp 目录。

vhost 配置解析

在 QNAP 上查看 vhost 配置文件 /etc/config/apache/extra/httpd-vhosts-user.conf,可以看到:

NameVirtualHost *:80
<VirtualHost _default_:80>
		DocumentRoot "/share/Web"
</VirtualHost>
<VirtualHost *:80>
<Directory "/share/Web/wp">
		Options FollowSymLinks MultiViews
		AllowOverride All
		Require all granted
</Directory>
		ServerName blog.nas.com
		DocumentRoot "/share/Web/wp"
</VirtualHost>

解释:

  • DocumentRoot 配置了服务器根目录
  • Options MultiViews 使用”MultiViews”搜索,即服务器执行一个隐含的文件名模式匹配,并在其结果中选择。
  • ServerName 主机名字

SSL 配置

reference


2020-02-08 qnap , qnap-tutorial , linux , apache , web-server

NextCloud 和 Joplin 完美合作

今天不经意打开了 NextCloud 管理后台,然后看提示有 App 更新就顺手进去看了一下,然后就发现了宝藏,这一年多来不过把 NextCloud 作为 Dropbox 代替品,做为文件同步工具,没想到后台已经发展出各种“玩法”,安装插件可以在 NextCloud 中启用 Calendar,Contacts,甚至还有视频通话插件,然后通过插件可以将 NextCloud 扩展成 RSS 阅读器,可以变成看板,可以变成电子书阅读器等等。不过让我眼前一亮的是其中有个插件叫做 Joplin Web API。不过该插件目前并不完善,还在 beta 阶段,不过不妨展开想象,如果未来可以借助 NextCloud,那么分享 Joplin 中的笔记,甚至对同一个笔记展开协同合作也不是不可能的。

WebDAV

NextCloud 默认已经启用了 WebDAV, 所以可以在 Joplin 设置,同步设置中直接配:

http://[ip]:[port]/remote.php/dav/files/USERNAME/Joplin

记得 Joplin 文件夹要创建好。

二步验证

开启二步验证后需要在后台生成一个密码,而不能用自己的用户名和密码来同步。

reference


2020-02-08 nextcloud , joplin , file-sync , note , note-taking , open-source

在线目录列表程序

最简单的 index 就是开启 Apache,或者 Nginx 的 Directory Index Listing。

location /somedirectory/ {
	autoindex on;
}

不过有些简陋而已。

ZFile

[[ZFile]] 是一款基于 Java 的在线网盘程序,支持对接 S3,OneDrive,SharePoint,又拍云,本地存储,FTP 等等,支持在线浏览图片、播放音视频、文本文件等等。

docker run -d --name=zfile --restart=always \
    -p 8080:8080 \
    -v /root/zfile/db:/root/.zfile/db \
    -v /root/zfile/logs:/root/.zfile/logs \
    zhaojun1998/zfile

或者参考我的 docker-compose

FileBrowser Enhanced

Nginx docker

Nginx index 套了一层皮肤

PanIndex

[[PanIndex]] 是一个使用 JavaScript 实现的网盘目录列表,支持天翼云、teambition, 阿里云盘,OneDrive 等等

演示:

![[screenshot-area-2021-10-28-111720.png]]

OLAINDEX

[[OLAINDEX]] 是一个可以将 OneDrive 中的内容展示出来的目录列表程序。基于 PHP 框架 Laravel ,界面也不错。

OneDrive directory listing application

从 DockerHub 拉取Docker镜像:

docker run -d --init --name olaindex -p 80:8000 xczh/olaindex:6.0

现在,访问http://YOUR_SERVER_IP/,可以看到你的OLAINDEX应用了。

当然你也可以选择从 Dockerfile 自行编译Docker镜像,切换到项目根目录执行:

docker build -t xczh/olaindex:dev .

docker run -d --init --name olaindex -p 80:8000 xczh/olaindex:dev

或者也可以使用这个镜像:

OneDrive 的目录程序还有 PyOne,OneIndex, [[OneList]]

h5ai

h5ai 是一个 PHP 实现的简单在线列表程序,将源码放到目录下,使用 PHP 就能打开列表,不过源码已经很久没有更新了。

zdir

依赖:

  • PHP

特色功能:

GoIndex

[[GoIndex]] 是一个使用了 Cloudflare Workers 的 Google Drive 列表程序。在不需要自己的服务器的情况下就可以使用 GoIndex 来展示 Google Drive 中的内容。

onedrive-vercel-index

样例

Snap2HTML

Snap2HTML 是一个生成一个静态 HTML 页面展示文件列表的程序。

filestash

[[filestash]]

alist

[[alist-file-list]]

DirectoryLister

[[DirectoryLister]] 是一个简洁的文件目录程序,需要依赖 PHP,Nginx。

其他网盘程序

  • [[2018-04-08-nextcloud NextCloud]]
  • [[CloudReve]]
  • [[SeaFile]]
  • [[KODExplorer]]
  • [[OwnCloud]]

2020-02-07 nginx , server , php , linux , index

关于 .git 目录你需要知道的一切

之前也总结过不少的关于 git 使用的文章,但都很少提及 .git 目录,都知道在 git init 之后,git 会在目录下创建一个 .git 目录,该目录中保存着 git 的一切。昨天在 Twitter 上正好有人分享了三篇文章,今天就顺便学习一下。

初识 git 目录

展开 git 目录,大致是这样的:

├── HEAD
├── branches
├── config
├── description
├── hooks
│ ├── pre-commit.sample
│ ├── pre-push.sample
│ └── ...
├── info
│ └── exclude
├── objects
│ ├── info
│ └── pack
└── refs
 ├── heads
 └── tags

其中的每一个文件和目录都是有意义的,下面就一个一个看看。首先是 HEAD 文件,这个不陌生吧,git 中一个非常重要的概念,后面展开。

conf

conf 文件中包含着 repository 的配置,包括 remote 的地址,提交时的 email, username, 等等,所有通过 git config .. 来设置的内容都在这里保存着。如果熟悉甚至可以直接修改该文件。

description

被 gitweb(github 之前) 用来描述 repository 内容。

hooks

hooks,国内通常被翻译成钩子,git 中一个比较有趣的功能。可以编写一些脚本让 git 在各个阶段自动执行。这些脚本被称为 hooks, 脚本可以在 commit/rebase/pull 等等环节前后被执行。脚本的名字暗示了脚本被执行的时刻。一个比较常见的使用场景就是在 pre-push 阶段检查本地提交是否遵循了 remote 仓库的代码风格。

info exclude

该文件中定义的文件不会被 git 追踪,和 .gitignore 作用相同。大部分情况下 .gitignore 就足够了,但知道 info/exclude 文件的存在也是可以的。

commit 中有什么?

每一次创建一些文件,提交,git 都会压缩并将其保存到自己的数据结构中。压缩的内容会拥有一个唯一的名字,一个 hash 值,该 hash 值会保存到 object 目录中。

在浏览 object 目录之前我们要问自己一个问题,什么是一次提交 (commit)?一次提交是当前工作目录的一个快照,但又不止于此。

事实上,当使用 git 提交时,git 为了创建工作区的快照,只做了两件事:

  1. 如果文件没有改变,git 将压缩的文件名 (the hash) 保存到快照
  2. 如果文件改变了, git 会压缩该文件,然后将压缩的文件保存到 object 目录,最后将 hash 保存到快照

一旦快照被创建,压缩的内容和名字都会到 object 目录中:

├── 4c
│ └── f44f1e3fe4fb7f8aa42138c324f63f5ac85828 // hash
├── 86
│ └── 550c31847e518e1927f95991c949fc14efc711 // hash
├── e6
│ └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391 // hash
├── info // let's ignore that
└── pack // let's ignore that too

上面的内容是新建了一个空文件 file__1.txt 并提交后 object 目录的结构。需要注意的是,如果 hash 是 4cf44f1e...,那么 git 会将内容保存到 4c 子目录中,然后将文件命名为 f44f1...。这样就使得 object 目录缩小了,最多只会有 00-ff 这些目录。

commit 由四部份组成:

  • 工作区快照名 hash
  • comment
  • 提交者信息
  • hash 的父 commit

如果解压一个 commit 文件,可以查看到这些内容。

// by looking at the history you can easily find your commit hash
// you also don't have to paste the whole hash, only enough
// characters to make the hash unique

git cat-file -p 4cf44f1e3fe4fb7f8aa42138c324f63f5ac85828

可以看到:

tree 86550c31847e518e1927f95991c949fc14efc711
author Pierre De Wulf <test[@gmail.com](mailto:pie@gmail.com)> 1455775173 -0500
committer Pierre De Wulf <[test@gmail.com](mailto:pie@gmail.com)> 1455775173 -0500

commit A

两个重要的内容:

  1. 快照 hash 86550 同样是一个 object, 可以在 object 目录中找到
  2. 因为是第一个提交,所以没有 parent

查看具体的快照内容:

git cat-file -p 86550c31847e518e1927f95991c949fc14efc711

100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 file_1.txt

这里就找到了上面提到的三个 object 中的另外一个,这个 object 是 blob, 后文在展开。

branch, tags, HEAD 他们都一样

到目前为止你已经知道了 git 中的一切都可以通过正确的 hash 来获取。现在然我们来看看 HEAD.

cat HEAD
ref: refs/heads/master

然而,HEAD 不是一个 hash, 那也 OK,之前的文章在介绍 HEAD 时都将 HEAD 比喻成一个指针,指向当前工作的分支。让我们来看看 refs/heads/master

cat refs/heads/master
4cf44f1e3fe4fb7f8aa42138c324f63f5ac85828

熟悉吧,这就是第一次提交的 hash. 这就显示了 branchs, tags, 都是指向 commit 的指针。这也就意味着你可以删除所有的分支,所有的 tags,但所有的提交依然还在。如果还想了解更多,可以查看 git book

reference


2020-02-06 git , linux , programming , coding

威联通折腾篇十八:Gogs Docker 容器备份及恢复

年前我的 NAS 系统盘挂掉,数据倒是没丢,但让我的很多配置都要重来。

已经总结了:

剩下的其他就是应用数据的恢复和备份了。这里再总结一下 Gogs 数据的备份和恢复。

之前使用的是 Qnap club 上面 qpkg 文件来安装的 Gogs, 这次迁移到 Docker 中。

Gogs 的主要数据和其他很多应用类似,主要是数据库和本地配置文件。

数据库备份

关于 MySQL 数据库的备份就不再多说了,之前也有总结过文章。

本地数据

使用 qpkg 文件安装的 QNAP 应用都会将数据存储在 /share/CACHEDEV1_DATA/.qpkg/ 目录下,找到该目录下的 /share/CACHEDEV1_DATA/.qpkg/Gogs/ 文件夹,如果不知道要备份该目录下的哪一个文件,笨办法就是把整个目录打包备份。

不过如果简单的查看一下 Gogs 的 Docker 镜像使用 就知道

# Pull image from Docker Hub.
$ docker pull gogs/gogs

# Create local directory for volume.
$ mkdir -p /var/gogs

# Use `docker run` for the first time.
$ docker run --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs

# Use `docker start` if you have stopped it.
$ docker start gogs

在 Gogs 的 Docker 镜像中 Gogs 只挂载了 /data 目录,所有的数据都保存在该目录中。

/var/gogs
|-- git
|   |-- gogs-repositories
|-- ssh
|   |-- # ssh public/private keys for Gogs
|-- gogs
	|-- conf
	|-- data
	|-- log

观察该目录,就能看到主要是三个目录,结构一目了然。但是 QNAP 应用中结构就不那么清晰了。

/git/gogs-repositories 目录对应着 /home/gogs-repositories 目录,里面保存着所有 git 仓库文件。等启动 Docker 容器后,可以将该目录中的文件全部拷贝到 Docker 容器挂载的目录,比如我就是 /share/gogs/git 目录。

拷贝后可能还有权限问题,使用 chown user:group -R * 来解决一下(这里的 user group 要换成你系统中对应的)。

另外注意 /gogs/conf/ 目录下的配置文件,这是一个全局的配置,非常重要。

ERROR

Docker 启动过程中可能遇到如下错误:

error: kex_exchange_identification: client sent invalid protocol identifier

初步判断就是 Docker 端口配置错误,我之前配置 的 Gogs 服务,监听的两个端口分别是 10080 和 10022,所以在 Container Station 中配置的时候改一下即可。

External

Gitea 是一个 Gogs 的社区 fork 1,看对比 是一个 Gogs 极好的代替品。

  1. https://blog.gitea.io/2016/12/welcome-to-gitea/ 


2020-02-05 qnap , 威联通 , gogs , git , gitlab , github , docker , container

再见公有云

2019 年一整年都在履行着一件事情,那就是把以前所有用过的云服务替换成自己部署的私有云服务。

文件同步

我是很多年 的 Dropbox 用户,至今为止所有的设备上也都安装着 Dropbox, 很多经常性使用的文件,配置也都在同步着,除了有些时候的网络问题,绝大部分使用完全没有问题。但之后陆续接触了一些其他文件同步工具,比如 pCloud,知道了原来可以端到端同步让文件同步更加安全;知道了 NextCloud,原来可以把数据交付给自己,让自己的数据更加安全;之后又知道了 Syncthing,原来可以让数据交换不像 NextCloud 那样走中心节点,可以自己实现一套分布式的文件同步系统,甚至这套系统部署节点越多,同步速度越快,并且不用互联网也能用。

所以最后的结果就是我彻底放弃了中心化的同步工具 (Dropbox, Google Drive),转而使用分布式的 Syncthing,并且让 Syncthing 同步原来的 Dropbox 文件夹,无痛迁移。

代码托管

代码托管倒是没太多可谈的,毫无疑问 GitHub,最多在配置一下 mirror, 定期从 GitHub repository 中备份到 GitLab 或者自建的 Gogs 中。

另外 Gogs 的社区 fork 版本 Gitea 也不错。

笔记

笔记是另一个重头,之前从 Evernote 叛逃 到 WizNote,陆陆续续也续了三年会员,但一直也非常担心 WizNote 做不下去,所以一直留着一手,方便快速导出走人。

不过前不久再次发现 Joplin,作为一款本地笔记应用非常完美,唯独缺少同步功能,不过 Joplin 依赖本地文件,那么用上面提到的文件同步工具就完美地解决了同步问题。

另外 leanote 似乎也是一个自建不错的选择,不过目前我没尝试。

reference


2020-02-05 cloud , nextcloud , qnap , dropbox , notebook

搭建自己的导航页面

最近 QNAP 后台换了内存后起了很多应用,已经到了完全记不住端口的地步,为了不用每次都登录后台查看,只能用记事本记着,略感不方便,所以想起了能不能搞一个导航页给我自己用。所以就找到了 webstack,webstack 看到有好几个实现,不过其他的都需要数据库,不如纯文本来的方便,所以直接搞 Jekyll 的。

侧边栏调整

让其初始化就是缩小状态。


2020-02-01 navigation , jekyll , website , self-host

威联通折腾篇十七:Docker 安装的 NextCloud 升级、备份及恢复

之前有文章写过如何在 Qnap 上使用 Container Station 来安装 NextCloud,之前重度使用 NextCloud,里面已经存了近 70G 的文件内容,这次系统重建后,下载新的镜像,然后重新恢复,费了一番时间,主要是恢复数据库,然后还有本地挂载的文件,以及升级版本。

从备份的角度来看,也正是这三个部分比较重要:

  • 数据库备份
  • 本地数据备份,也就是 /var/www/html 挂载的目录,我的是 /share/NextCloud
  • Docker 镜像备份

以上三个内容,前两个需要完全备份,否则会造成数据丢失。第三个则可以从 Docker Hub 上拉下来。

docker pull nextcloud:latest

我是从 13.0.4 版本的镜像升级到 14.0.9 版本,升级后重启容器,出现了如下的错误:

AH00169: caught SIGTERM, shutting down

调查发现,NextCloud 在升级过程中将自己变成了维护状态,这个配置在数据目录下的 config/config.php 文件中,打开该文件,搜索 maintenance:

'maintenance' => true

将 true 改成 false, 然后重启容器,即可进入 NextCloud 应用。

从 17 升级到 18 版本

使用同样的方式,将 NextCloud 从 17 版本升级到 18 版本。

访问 ip/status.php 会看到:

{"installed":true,"maintenance":true,"needsDbUpgrade":true,"version":"18.0.11.2","versionstring":"18.0.11","edition":"","productname":"Nextcloud","extendedSupport":false}

升级过程中发现数据库表字段问题

报错内容:

InvalidArgumentException: Column name “oc_flow_operations”.”entity” is NotNull, but has empty string or null as default.

解决方法,见 issue,因为我使用的是 MariaDB 所以:

alter table oc_flow_operations add column entity character varying(256) not null;

如果是其他数据库可能需要对应的 SQL 语句。

从 18 版本升级到 19 版本

从 NextCloud 18 升级到 NextCloud 19 没有遇到什么坑。

从 19 版本升级到 20.0

将 Nextcloud docker 镜像升级到 20.0 没有遇到问题。

从 20.0 升级到 21

同样也没有遇到问题。


2020-01-16 qnap , qnap-tutorial , nextcloud , file-sync , dropbox , backup , restore , mysql , sql

威联通折腾篇十六:为 Container Station 更换镜像

都知道其实 QNAP 的 Container Station 就是 Docker,所以桌面版可以修改的国内镜像地址,QNAP 系统上也能够修改,可以快速提高镜像的下载速度。

其实在网页管理段也能够手动添加,在 Container Station 属性中,Registry 服务器可以手动添加。

或者我们可以 SSH 登录到后台,然后手动编辑配置文件,docker 的路径是 /share/CACHEDEV1_DATA/.qpkg/container-station/

然后在该目录下有 etc/docker.json 文件,手动修改该文件:

{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

然后重启 Container Station 服务:

/etc/init.d/container-station.sh restart

可用的镜像地址,可以参考我另外一篇文章。

备份一下用的 Docker Container

bookstack

version: "2"
services:
  bookstack:
	image: linuxserver/bookstack
	container_name: bookstack
	environment:
	  - PUID=1000
	  - PGID=1000
	  - DB_HOST=10.0.3.1:3306
	  - DB_USER=bookstack
	  - DB_PASS=password
	  - DB_DATABASE=bookstack
	volumes:
	  - /share/Container/bookstack_config:/config
	ports:
	  - 6875:80
	restart: unless-stopped

FileRun

version: '2'

services:
  filerun:
    image: afian/filerun
    container_name: filerun
    environment:
      FR_DB_HOST: 10.0.3.1
      FR_DB_PORT: 3306
      FR_DB_NAME: filerun
      FR_DB_USER: filerun
      FR_DB_PASS: password
      APACHE_RUN_USER: www-data
      APACHE_RUN_USER_ID: 1000
      APACHE_RUN_GROUP: www-data
      APACHE_RUN_GROUP_ID: 100
    ports:
      - "30080:80"
    volumes:
      - /share/filerun/html:/var/www/html
      - /share/filerun/user-files:/user-files
    restart: unless-stopped

Calibre-web

docker run --name=calibre-web --restart=always \
-v /share/vol4Book/CalibreBooks:/books \
-v /share/Container/calibre-web/app:/calibre-web/app \
-v /share/Container/calibre-web/kindlegen:/calibre-web/kindlegen \
-v /share/Container/calibre-web/config:/calibre-web/config \
-e USE_CONFIG_DIR=true \
-e APP_REPO=https://github.com/janeczku/calibre-web.git \
-e APP_BRANCH=master \
-e SET_CONTAINER_TIMEZONE=true \
-e CONTAINER_TIMEZONE=Asia/Shanghai \
[-e PGID=100 -e PUID=1000 \]
-p 8083:8083 \
technosoft2000/calibre-web

Nextcloud

docker run -d \
    -v /share/NextCloud:/var/www/html \
	-p 20080:80 \
    nextcloud

Gogs

docker run --name=gogs \
-p 10022:22 \
-p 10080:3000 \
-v /share/gogs:/data \
gogs/gogs

TT RSS

Tiny Tiny RSS

docker run -d --name ttrss --restart=unless-stopped \
-e SELF_URL_PATH=http://192.168.2.200:181 \
-e DB_HOST=10.0.3.1 \
-e DB_PORT=5432 \
-e DB_NAME=ttrss \
-p 181:80 \
wangqiru/ttrss

全文插件:

docker run -d \
--name=mercury-parser-api \
-p 3080:3000 \
wangqiru/mercury-parser-api

weblate

version: '3'
services:
  weblate:
    image: weblate/weblate
    volumes:
      - /share/Container/weblate/weblate-data:/app/data
    env_file:
      - ./environment
    restart: always
	ports:
	  - 5080: 8080
    depends_on:
      - database
      - cache
  database:
    image: postgres:11-alpine
    env_file:
      - ./environment
    volumes:
      - /share/Container/weblate/postgres-data:/var/lib/postgresql/data
    restart: always
  cache:
    image: redis:4-alpine
    restart: always
    command: ["redis-server", "--appendonly", "yes"]
    volumes:
      - /share/Container/weblate/redis-data:/data

还需要把这个项目 中的 environment 文件拷贝过来,然后再:

docker-compose build
docker-compose up

rrshare

docker run -d \
--name rrshare \
-p 3001:3001 \
-v /share/rrshare:/opt/work/store \
oldiy/rrshare64:latest

Lychee

docker run -d \
--name=lychee-laravel \
--restart always \
-v /share/Container/lychee/conf:/conf \
-v /share/Picture/Lychee:/uploads \
-e PHP_TZ=Asia/Shanghai \
-e PHP_MAX_EXECUTION_TIME=600 \
-e DB_CONNECTION=sqlite \
-e DB_DATABASE=/conf/lychee.db \
-p 90:80 \
80x86/lychee:latest

flexget

docker run -d \
    --name=flexget \
    -p 3539:3539 \
    -v /share/Container/flexget/data:/data \
    -v /share/Container/flexget/config:/config \
    -e FG_WEBUI_PASSWD=password \
    -e FG_LOG_LEVEL=info \
    -e PUID=1000 \
    -e PGID=1000 \
    -e TZ=Asia/Shanghai \
    wiserain/flexget

2020-01-16 qnap , qnap-tutorial , linux , docker , mirror

电子书

最近文章

  • macOS 自定义系统设置记录 因为电脑空间告警,所以用 Clean Me 这个应用对系统进行了一次清理,没想到的是,可能在我误操作的情况下把我系统的设置和全部软件的设置都给清空了。我所有的系统配置都恢复了初始的状态,让我使用起来非常变扭,我在之前有写过一篇 MacBook 初始化和应用安装 的文章,但是那篇文章写的比较啰嗦,索性就重新整理一下。
  • EV Hosting 共享邮件服务 过去的一个月里面 EV Hosting 陆陆续续更新了共享主机服务,域名注册服务,现在因为我自己使用域名邮箱一直也在使用域名邮箱,所以现在也推出了域名邮箱服务。
  • 《非暴力沟通》读书笔记 怎么知道的这一本书
  • Drift 一个开源可以自托管的 Gist Drift 是一个可以自行架设的 Gist 代替。使用 [[Next.js]] 13 和 React Server Components 编写。
  • Google Analytics 代替产品对比 虽然我把其他服务陆陆续续从 Google 迁移出来,但 Google Analytics 一直都运行良好所以也没有怎么管,但 Google Analytics 到今年年中的时候会强行升级 GA4,看了一下升级的过程和 Google Analytics 的操作实在太复杂,就诞生了迁移出 Google Analytics 的想法。简单地了解了一下目前的 Google Analytics 的代替品,收费的,自行架设的还很多选择。这篇文章就简单地对比一下。