用的笔记软件Obsidian每次插入图片都会是保存到本地,虽然可以通过插件让图片根据笔记标题重命名,但感觉还是有点不好管理。这样还有个好处,就是笔记里书写完后可以直接复制内容发布到自己的个人博客等,不用再去考虑文章里面配图的问题。于是刚开始换了smms免费图床,速度虽然不稳定,但胜在白嫖免费,免费的存储空间有5G,稍微有点小。

更担心的是哪天突然不能用了,那所有的图片可就全没有了,出于这种情况考虑,觉得还是自己弄个备份图床更好点。家里有个nas,反正是自用,也就没那么多考虑,直接用群晖docker套件搭建。

环境搭建

会用到下面两个套件,在群晖套件里搜索一下就能找到,查找到后安装好这两个套件就可以。

MariaDB 10

phpMyAdim

###phpMyAdim添加数据库信息

进入管理页面后点击账户选项,然后点击新增用户账户。

添加数据库

填写数据库用户名和密码,勾上创建与用户同名数据库并授予所有权限,检查下信息后点击执行,这里记下新增数据库信息的用户名和密码,下面会用到。

数据库信息

MariaDB 10设置

这个要设置的内容不多,安装好套件后打开,把 “启用TCP/IP连接” 选项勾选上,记一下端口号,后面也会用到。

启用TCP/IP连接

搭建Chevereto

先在File Station里面docker文件夹下面创建一个chevereto文件夹,再在这个文件夹下面新建configdata两个文件夹,用来映射chevereto容器的配置信息和图片文件夹,方便管理。

chevereto文件夹

准备工作就差不多了,接着就可以去docker注册表里搜索chevereto映像文件下载,然后开始搭建图床了。我这里选择的是linuxserver/chevereto版本,如果你需要中文那选择1.4.1或者1.4.2,后面的新版本已经没有中文。

下载Chevereto图床镜像

映像文件下载完成后,去映像选项双击下载的映像文件安装chevereto,弹出创建容器框后点击高级设置。

设置

存储空间设置

选择存储空间选项,点击添加文件夹,选择前面docker文件夹下面chevereto里面新建的文件夹,按下图配置输入。

存储空间设置

端口设置

将容器的443和80端口映射到本地端口

端口设置

然后点击应用,创建容器框里点击下一步 -》应用,如果配置没问题的话,在docker -> chevereto文件夹下面的config、data里面分别都有内容。

映射文件夹

连接数据库

在浏览地址栏输入 群晖ip + 端口号,比如我这里用的是前面端口设置的50080端口。会打开页面让连接到数据库,这就需要用到前面创建的数据库了。

Database host:数据库地址

Database name:数据库名

Database user:数据库用户名

Database user password:数据库用户密码

连接数据库

开始安装

设置图床的管理员账号信息

Admin username:管理员用户名

Admin email:管理员邮箱

Admin password:管理员密码

From email address和Incoming email address随意填写邮箱

Website mode:模式

因为是自用备份,所以我这里选择的是个人,都确认没问题后点击安装,安装会需要往数据库里写入内容,稍微等一下就可以。

管理员账户信息

安装完成后点击里面的链接跳转到登陆页面,输入安装时设置的管理员的用户名或者邮箱和密码登录就可以

安装完成

登录页面

登录进入页面后会发现是英文页面,点击右上角的用户名,选择settings设置,下面的语言选择简体中文,然后点击保存即可。

settings

语言选项

到这里就差不多了,后面就是一些设置了,可以点击用户选择仪表盘设置图床的一些设置

图床设置

进一步设置图床

到现在已经可以上传使用了,不过会发现文件上传有限制,存储空间容量也很小,只有256MB,完全不够用,都已经nas上自建了那肯定需要更大容量才舒服。

容量大小

解除图片上传2M大小限制和存储容量限制

更改docker -》chevereto -》config -》php文件夹里的php-local.ini配置文件

php-local文件

1
2
3
4
5
date.timezone = 
upload_max_filesize = 50M
post_max_size = 50M
max_execution_time = 30;
memory_limit = 4000M;

upload_max_filesize:最大的文件上传

post_max_size:最大的执行大小

max_execution_time:最大的执行时间

memory_limit:图床存储容量大小

更改完成后

php-local.ini配置文件修改完后还需要去仪表盘设置 -》图片上传,将最大上传文件大小更改为50,然后点击保存修改, 这样就完成图片大小上传限制了,你也可以随时按需求更改。

最大上传

更改API默认游客上传

如果有API上传需求的话会发现上传的图片都是游客上传(比如搭配Picgo使用),没法上传到指定用户自己创建的相册里,不方便管理图片。

打开运行中的图床容器,选择终端机,点击新增,然后输入下面的指令,在容器文件系统中查找名为 route.api.php 的文件,并列出找到的文件路径。

1
find / -name "route.api.php"

终端机

输入指令后已经知道文件路径了,现在需要将route.api.php文件复制到routes/overrides文件夹下面,输入下面指令。

1
cp $work/app/chevereto/app/routes/route.api.php $work/app/chevereto/app/routes/overrides

然后检查一下看是否成功复制,输入下面指令,如果路径下文件存在会返回文件路径,否则报错。

1
ls $work/app/chevereto/app/routes/overrides/route.api.php

检查文件复制成功后,现在需要修改route.api.php文件了。输入:

1
vi $work/app/chevereto/app/routes/overrides/route.api.php

文件编辑

打开文件以后按需要按下 i 键来切换到插入模式,然后你就可以开始输入内容了,在下图位置插入。

变量

1
$user = $_REQUEST['user'];                                               $album = $_REQUEST['album'];

插入信息

1
$uploaded_id = CHV\Image::uploadToWebsite($source, $user, array('album_id'=>$album));

编辑完成后,按下 Esc 键返回命令模式,然后输入 :wq 并按下回车键来保存并退出文件。然后重启图床容器。

PicGo

安装好web-uploader插件,按下面设置

API地址:http://群晖ip + 端口号/api/1/upload

POST参数名:source

JSON路径:image.url

自定义Body:{“key”:”自己图床的api”, “user”:”用户名”, “album”:”相册id”}

image-20240207220217761