搭建自己的私人图床 兰空图床 Lsky Pro搭建部署教程

搭建自己的私人图床 兰空图床 Lsky Pro搭建部署教程

hash070 1,741 2022-06-12

简介

Lsky Pro 是一个用于在线上传、管理图片的图床程序,中文名「兰空图床」,你可以将它作为自己的云上相册,亦可以当作你的写作贴图库。

兰空图床的上传支持多图上传、队列排队、拖拽上传、预览图片、粘贴上传、快捷复制链接等特点,页面简洁实用,上传页面还支持切换不同的储存,同时管理员还可以对游客、用户进行精确控制上传的图片大小、类型、上传频率、图片审核等限制。

在开始决定使用图床之前,确保你的图床服务器和对应的域名稳定且能长期使用,否则就是在给自己挖坑。

部署Lsky Pro

我强烈推荐在Docker中运行LskyPro,因为即使你的服务器有安装php,安装过所有所需的插件,LskyPro还需要执行一些危险的php命令,这需要你在配置文件中手动解除这些命令的限制,麻烦不说,会对你服务器上其他站点的安全性造成影响。

我所使用的兰空Docker镜像:

容器镜像地址:https://hub.docker.com/r/halcyonazure/lsky-pro-docker

容器GitHub地址:https://github.com/HalcyonAzure/lsky-pro-docker

附:Docker与Docker Compose环境配置

运行容器

下面两种方法,喜欢哪个用哪个。

方法一、用Docker Compose描述文件部署

创建一个文件夹,用于存放文件。

mkdir -p ~/docker/lsky && cd  ~/docker/lsky

用vim等文本编辑器将下面的文本写入docker-compose.yaml

version: '3.3'
services:
  lsky-pro-docker:
    container_name: lsky-pro
    restart: always
    ports:
      - '127.0.0.1:9080:80'
    volumes:
      - './data:/var/www/html'
    image: 'halcyonazure/lsky-pro-docker:latest'

容器操作命令:

~/docker/lsky文件夹执行docker-compose命令以控制容器的启动与停止。

启动容器:docker-compose up -d
停止并删除容器:docker-compose down

方法二、Docker命令部署

直接在服务器终端中执行以下命令:

docker run -d \
    --name lsky-pro \
    --restart unless-stopped \
    -p 9080:80 \
    -v /usr/local/lsky-pro:/var/www/html \
    halcyonazure/lsky-pro-docker:latest

其中-p 9089:80参数指的是将容器的80端口映射到你服务器的9080端口上

-v /usr/local/lsky-pro:/var/www/html参数指的是将容器的数据文件映射到你服务器上的/usr/local/lsky-pro文件夹上。

这两个参数可以根据自己的需求更改。

更详细的Docker用法可以看我的这篇文章:https://hash070.top/docker-note.html

如果容器拉取失败,可以尝试Docker换源:https://hash070.top/docker-change-mirror.html

容器运行起来后就可以通过IP+端口号的方式进入容器了,这里我们先不急着进容器,先把反向代理与https搞好再进去。

配置Nginx反向代理

兰空对Nginx没有什么特殊的要求,不需要WebSocket

反代到本地的http://127.0.0.1:9080即可,我的Nginx反代内容如下

location /
{
    proxy_pass http://127.0.0.1:9080;
    proxy_set_header Host $host:$server_port;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-Proto https;
    add_header X-Cache $upstream_cache_status;
}

图床设置

设置帐号与数据库

首次进入兰空时会要求设置管理员邮箱与密码,还有配置数据库

数据库我推荐直接使用SQLite数据库,不建议使用MySQL,理由如下

  1. SQLite数据库本身性能足够好,它的并发写入性能虽然不如MySQL,但并发查询效率不比MySQL弱,而且SQLite数据库理论上最大可以达到140T,足以支撑一个人或一个小团队用。
  2. 使用SQLite方便迁移数据。

配置存储策略链接

进入仪表盘,找到打开默认存储策略

image-20220611091403201

确保这里的链接是正确的,比如如果你配置了SSL证书,那么链接前缀应该为https,如果你使用非常规端口,那么端口应该写对

image-20220611091650755

注意,新增的用户组必须在存储策略这里选中所有用户组然后点一下保存,否则可能会因为角色组未绑定存储策略而导致无法上传图片。

系统设置

如果是自用的图床且没有接入审核机制的话,如果路人上传一些奇怪的图片就不好了,所以建议关闭注册功能游客上传功能

image-20220611092745065

由于现在的兰空图床暂时没有后台直接添加用户的功能

想添加用户的话可以暂时打开注册功能,然后自己手动注册,注册完关掉就行。

设置帐号存储空间限制

帐号默认限制500M的图片上传,我们可以在用户管理中更改这一项

image-20220611092105115

找到自己的帐号,往右边拉,点击右边的编译按钮

总容量后面多加几个0然后保存就行了

image-20220611092215947

图片上传设置

进入后台->设置可以看到如下界面

image-20220611091924723

推荐把图片粘贴后动作改为直接上传,方便使用

默认权限改为私有,防止上传的图片被路人看到

图片上传限制与固定链接设置

首先图床上传默认有限制,作为图床的Owner当然不希望自己被限制了,而且图片上传后会生成一个相应的链接,默认比较长,且带了上传日期等信息

我们可以在角色组中更改这些设置

进入后台,找到自己所在的角色组

image-20220611093237176

前面几行是关于上传限制的数据,每个值后面都加几个0

嫌链接太长的话可以把路径命名规则这一项删掉

image-20220611093530331

2022-8月新更新:兰空图床现已经支持图片压缩功能,如果你的图床是博客专用的,则强烈推荐开启图片压缩!可以大幅节省服务器带宽和存储空间,并提升访客图片的加载速度

推荐的压缩格式为webp

1666490403251.webp

如果有时候不想让图片压缩,则可以通过开小号的方式解决

然后点击保存即可

搭配Typora实现图片自动上传功能

有了兰空图床,我们可以在Typora里实现图片粘贴自动上传的功能,这样写博客就更方便了。

获取Token

使用在线的网站发送请求的方法我觉得不够安全,这里我使用apifox来发送请求与获取token

首先打开接口,找到接口url

image-20220611094905421

然后按下面的文档所示,发送post请求,填写相关参数,即用户名和密码

链接应该写为接口url+相关路径

例如要想获取token,我们的url应该写成

https://你的图床域名/api/v1/tokens

image-20220611095031886

如上图文档所示,我们在Body中填写正确的emailpassword字段,然后发送post请求即可获取token

那么在ApiFox中这样发送请求即可

image-20220611095655100

获取的token应该长这样:1|1bJbwlqBfnggmOMEZqXT5XusaIwqiZjCDs7r1Ob5

然后在前面加一个Bearer ,组合为:Bearer 1|1bJbwlqBfnggmOMEZqXT5XusaIwqiZjCDs7r1Ob5

就可以用了

安装和配置PicGo

我们需要借助PicGo来实现图片上传服务

GitHub下载链接:https://github.com/Molunerfinn/PicGo/releases

备用下载链接:https://dr.yun.hash070.top:66/s/aAIx

安装后可以在插件设置中搜索lankong就能找到这个插件(安装插件时需要管理员权限)

如果插件安装失败的话,你需要退出然后以管理员的方式打开PicGo,再尝试安装这个插件。

安装成功后在图床设置中找到lankong,按图示填写

其中第一项选V2

第二项Server指的是你的图床网址,如https://mylankong.xxx.com

第三项是我们刚刚获取到的Token

第五项是忽略证书错误,如果你的图床没有配置合法证书,或者是自签证书的话可以勾选上

第六项是同步删除

填完点保存

image-20220611100517153

然后在上传区选择lankong,随便粘贴一个图片上去试试,看看能不能用

然后打开Typora的文件-> 偏好设置,按如图所示设置

image-20220611101110299

然后就大功告成了,去新建一个markdown往里面粘贴图片试试把,你会发现粘贴的图片会自动上传到图床并把链接转换为图床外链的,这样复制到博客的时候就不用担心图片无法显示了。