NAS chevereto图床搭建
一、介绍
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 | CREATE DATABASE chevereto DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; |
| 可变 | 值 |
|---|---|
| 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 | # 进入到 chevereto 目录 |
或者 在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

注意: 使用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

