Lsky图床是什么?

Lsky图床是一个开源的图像托管服务,主要用于图片上传、存储和管理。它提供了一个简洁的 Web 界面,允许用户方便地上传、管理和分享图片文件。Lsky图床通常被用于博客、论坛、社交媒体等平台,用来方便地存储和引用图片资源。

特点:

  • 开源与自托管:Lsky图床是开源的,用户可以自由部署到自己的服务器上,完全掌控自己的数据。

  • 多种上传方式:支持通过Web界面、API、拖拽等方式上传图片。

  • 支持外链:上传的图片可以通过生成外链进行分享,适合博客和社交平台使用。

  • 支持图片管理:提供图片的删除、重命名和查看等管理功能。

  • 支持多种存储后端:可以配置不同的存储后端,如本地存储、阿里云、七牛云等。

部署:

  • 可以通过 Docker 镜像快速部署。

  • 支持 MySQL SQLite 数据库存储。

本教程简介:

lsky图床搭建本地存储,存储到本地的NAS,本教程使用的是端口映射,有动态公网的操作。

必须有一个系统可以安装docker或者1panel ,所以需要nas支持或者建一个虚拟机用来跑这些服务

  • 你的nas支持安装docker,可以直接安装在nas中。

  • 我的这个NAS是windows server(x99)不能直接安装docker(windows的不好用)或1panel管理面板,我在NAS中安装了Ubuntu虚拟机来运行这些服务。

使用的是虚拟机或docker版本的应用,本地存储成为一个问题。

为了解决这个问题,我使用Alist来连接NASLsky Pro

Alist可以帮助我挂载SMB共享,使得在虚拟机中的服务能够访问NAS中的文件。

这样,Lsky Pro可以通过Alist来利用NAS的存储空间,实现图床应用的功能。

必要条件:

家庭网络 动态公网,可以使用ddns将lsky pro映射出来

我的本地环境如下:

  • 路由ikuai(免费的系统,可用来ddns和端口映射)也可以使用自己的方案,如:openwrt,Nginx Proxy Manager,异曲同工

  • 域名阿里云

  • NAS:支持常见共享协议即可,smb,nfs,我这里使用的是SMB

  • 虚拟机系统ubuntu sever 22.04 lts

  • 服务器管理面板1panel 专业版(用来搭建服务反向代理

  • Alist:使用1panel一键安装的docker应用 (用来挂载smb)

  • Lsly pro:使用1panel一键安装的docker应用(图床应用,使用webdav添加Alist存储作为存储策略)

须知:

省略的步骤

  • NAS 如何开启共享

  • 虚拟机的如何安装

  • 1panel如何安装

只有的步骤

  • Alist如何配置

  • Lsky pro 如何配置

  • ikuai如何配合1panel使用反向代理

  • 反向代理注意事项

  • halo如何添加lsky pro

一、Alist增加本地SMB存储

这里不局限于这一个存储类型,网盘,oss等各种适合自己的方式均可,详情看alist文档,哪个支持webdav即可

1、我使用的是windows server开启的smb

需要注意的是 共享名协议



2、Alist挂载SMB

点击存储

  • 驱动SMB (上方的协议)

  • 挂载路径:/smb(这个地方是alist的目录路径)”此路径相当于挂载了E:\backup\smb ,比如新建了一个文件夹/smb/lsky 则等于E:\backup\smb\lsky“

  • 用户名:登录账号

  • 密码:登录密码

  • 分享名称:(上面的共享名)





挂载成功后状态为work



前端可以看到挂载目录 则代表成功



二、Lsky pro 配置

这里如何安装不累赘了,我使用的方式是1panel一键安装,简单省事

1、先反代lsky

一:使用ikuai先添加动态域名

这里我使用的是阿里云,待会使用端口映射将服务映射出去



二:在1panel中创建一个反向代理

  • 域名:上方第一步的动态域名

  • 端口号:想映射出去的端口(填你喜欢的即可)

  • 代理地址:lsky服务的地址

(如果你是当前1panel一键创建的服务则可以使用127.0.0.1地址,如果你使用的是其他服务器创建的请使用内网地址,如:192.168.1.xx:端口)

我这里是同一个1panel里面的服务,所以使用的是127.0.0.1:40027



三:反向代理 开启https

证书部分不再赘述,因为1panel提供了一键申请的功能,如果对此不熟悉,可以查阅1panel的官方文档,详细了解证书申请和配置的过程。



需注意要在配置文件改一下ssl端口,不然你的44444端口不是ssl





四:使用ikuai将端口映射出去

内网地址:服务所在的内网地址

内网端口:第二步刚新建的反向代理的内网端口

外网地址:你绑定解析动态域名的那条线路

外网端口:外网通过哪个端口可以访问,为了防止混乱,我比较喜欢统一



这这个时候你已经可以通过外网地址和映射的端口访问到Lsky pro服务了。

但还远远不够

2、lsky 增加webdav 作为存储策略


一:存储策略里面创建一个新的存储策略



  • 名称:我这里就叫webdav 这个无关紧要

  • 存储策略:WebDav

  • 访问域名:当前lsky域名+一个目录 以后你存在下面的文件访问地址为https://xxxx:端口/lsky/XXXX.png

  • 链接地址:alist访问地址 可以是内网的地址,我的内网alist地址为http://10.255.255.242:5244 可以不用反代出来,lsky是内网应用,alist当然可以内网使用,不需要映射出来

  • 认证方式:basic

  • 路径:根据文档可以看到webdav的挂载为 http[s]:地址:端口/dav, 而根据上方alist挂载的地址来看,我新建了一个lsky目录,则挂载地址就是/dav/smb(挂载路径)/lsky(路径下的文件夹地址)



WebDAV | AList文档 (nn.ci) 如果有不懂得就看文档



  • 用户名:alist用户名(要有webdav权限)

  • 密码:alist密码






这个时候已经在lsky中可以成功上传了,上传的地址是没有问题



坑点1:lsky反向代理需增加一个请求头

如果不增加这个请求头,你就会遇见一个访问https:xx.xxx.com:44444 自动302 跳转为 https:xx.xxx.com 不带端口的地址,这是带端口反向代理会出现的问题,任何服务都需要注意

需在反向代理的位置 源文 增加一条请求头

proxy_set_header X-Forwarded-Host $http_host;





设置好以后,你就可以通过域名+端口正确的访问Lsky pro

坑点2:要注意反向代理alist直链

这个时候你会出现一个问题,可以成功上传,但是无法正常显示,,访问地址有问题!

你需要通过 https://域名:端口/图片地址 访问图片,你会发现图片点开就是404,但缩略图是正常的,这时候添加到halo中,可以上传,但无法正确加载图片


这个情况还需添加一条 反向代理 代理alist地址的配置代码

在1panel中刚才的建的反向代理,点一下网站的配置文件

location /lsky 这个/lsky 是下图这个位置,根据自己自定义的来



然后增加一条反向代理,代理至Alist的地址即可。为了方便访问,你可以使用内网地址,如 http://X.X.X.X:端口/alsit直链地址,其中 X 是你的Alist服务所在的机器的内网IP地址,`端口` 是Alist服务的端口号。


代码如下

location /lsky { proxy_pass http://10.255.255.242:5244/d/smb/lsky; # 映射到 Alist 直链目录 }




这个时候显示就正常了

坑点3:alsit不要开启签名

开启会出现401错误,要验证证书



三、halo配置

1、安装lsky pro插件



2、新增存储策略



3、根据教程填写策略

ichenhe/halo-lsky-pro: 集成 Lsky Pro 兰空图床作为 Halo 的存储后端。 (github.com)