一、介绍

Chevereto 是一个功能强大且快速的图像托管脚本,可让您在几分钟内创建自己的全功能图像托管网站。
Chevereto 是目前最好的图床之一,功能也非常强大。其免费版和收费版的区别,在于收费版多了硬盘扩展,社交分享功能和技术支持。硬盘扩展指的是使用外部存储,例如:Amazon S3、Google Cloud、阿里云 OSS 等。Chevereto 的安装也非常简单,并且支持简体中文。

个人主要使用Chevereto的目的
一、图片上传到自己的NAS(云存储要钱)
二、缩略图,可以加速访问 (云存储也有,相对麻烦点)
三、水印(这个功能应该不常用,消耗nas 性能,如果以后访问量大了,可以设置。)

二、安装

2.1 安装docker

NAS 套件中心 搜索docker 并安装

2.2 安装Chevereto

docker 注册表 搜索 Chevereto

2.3 设置 Chevereto

2.3.1 图片文件和配置文件挂载出来

文件夹 挂载路径 说明
docker/chevereto/images /var/www/html/images 图片存放设置
docker/chevereto/php.ini /usr/local/etc/php/php.ini php配置文件

图片文件夹 docker/chevereto/images 创建

默认 chevereto 支持不大于 2M 的图片文件,如果你的文件超过这个值,需要建一个 php.ini 文件,并在文件中加入下面的内容

upload_max_filesize = 20M
post_max_size = 20M
memory_limit = 2048M

  • 注意 对 php.ini 设置为只读(安全)

2.3.2 端口

找一个不冲突的端口

2.4 数据库

Chevereto需要一个 Mysql 数据库来存储它的信息。您可以使用Mysql或MariaDB容器来托管它。

通过上面解释的环境变量将有关数据库连接的信息提供给容器。

这边使用的是自建数据库 MySQL 5.7 (因为比较熟悉)
也可以使用docker MySQL 没有去研究,所以就不折腾了。

mysql 安装 自己百度下

1
2
3
CREATE DATABASE chevereto DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

grant all privileges on chevereto.* to chevereto@'192.168.%.%' IDENTIFIED BY 'chevereto';
可变
CHEVERETO_DB_HOST 默认为 db,改为数据库 IP
CHEVERETO_DB_USERNAME 默认为 chevereto
CHEVERETO_DB_PASSWORD 默认为 chevereto
CHEVERETO_DB_NAME 默认为 chevereto
CHEVERETO_DB_PREFIX 默认为 chv_
CHEVERETO_DB_PORT 默认为 3306

2.5 启动

启动容器

2.6 报错

这个错误是数据库相关配置不对,检查下。


原因是 PHP 用户 www-data 对文件夹 images 没有写入的权限。
解决办法
用 SSH 客户端登录到群晖

1
2
3
4
# 进入到 chevereto 目录
cd /volume1/docker/chevereto/
# 修改权限,网上很多资料都是777 不靠谱。
sudo chown www-data.www-data images -R

或者 在file station 对文件夹 images 增加everyone 可写的权限

注意: 这个是不会的ssh 的人操作的,和777权限是一样的,过于危险,不建议这么做。

再刷新页面,应该就可以开始设置了

2.7 设置


选择个人 personal
点 Install Chevereto 就可以了


点 admin dashboard 进入管理界面

设置中文

设置访客关闭

拉到最下面

三、使用

3.1 上传图片

把需要上传的图片往上拖

生成的图片会带有地址,首页显示这些,图片就可以使用缩略图,优化网站。


原图
http://IP:端口/images/2022/04/07/1.png
缩略图
http://IP:端口/images/2022/04/07/1.th.png
中等图
http://IP:端口/images/2022/04/07/1.md.png

3.2 配合 PicGo

先获取api 和 key

仪表板 –> 设置 –> API

记录 秘钥

路由端口要设置下
对外的端口 - 映射 - 内网nas-IP:端口

插件一、chevereto

在 插件设置 中搜索 chevereto

http://IP:端口/api/1/upload

注意: 使用chevereto插件有个弊端, 就是无法自定义URL。就是上传完是直接返回上传地址+图片名的。
这样会直接暴露自己的NAS地址,不安全。
正常会把自己的nas设置成源站,在配合使用cdn来访问这些资源。既能加速访问,也能很好的隐藏自己的NAS服务器。

插件二、自定义web图床(增加图片URL前缀)

在 插件设置 中搜索 web 找到 自定义web图床(增加图片URL前缀) 并安装

第一、配置自定义web图床(增加图片URL前缀)

API地址: http://IP:端口/api/1/upload
post参数:source
JSON路径:image.filename # 获取文件名
自定义body: {“key”:”xxxxx”, “user”:”user”, “album”:”相册ID”} # “user”:”user”, “album”:”相册ID” 可选项,传到自己指定的相册去,这个还要去修改文件/var/www/html/app/routes/overrides/route.api.php
参考 https://blog.csdn.net/qq_25005601/article/details/110532477
自定义图片URL前缀:https://xxx.com/images/ # images 是上传的路径

第二、设置chevereto

注意: 存储方式 选择默认,即直接上传到 image 目录文件夹下面,如果选择日期,就会多三层日期目录。正常是日期目录比较好,但我们这个返回的参数没办法获取到这个日期路径,所以只能退一步写死路径。

参考资料

https://www.bilibili.com/read/cv15042019
https://blog.csdn.net/wbsu2004/article/details/119747750
https://registry.hub.docker.com/r/nmtan/chevereto/
https://v3-docs.chevereto.com/api/#api-response