基于docker自建图床之兰空图床

介绍

Lsky Pro 是一个用于在线上传、管理图片的图床程序,中文名:兰空图床,你可以将它作为自己的云上相册,亦可以当作你的写作贴图库。
兰空图床始于 2017 年 10 月,最早的版本由 ThinkPHP 5 开发,后又经历了数个版本的迭代,在 2021 年末启动了新的重写计划并于 2022 年 3 月份发布全新的 2.0 版本。

功能很强大,可以到官网上面自行查看,下面进入安装教程

安装

涉及的项目

  1. github原项目地址:https://github.com/lsky-org/lsky-pro
  2. docker镜像地址:https://hub.docker.com/r/dko0/lsky-pro

环境搭建

  • 服务器:性能不能太低,推荐内存在1G以上
  • 系统:没有特殊要求,作者使用功能的事ubuntu 18.04
  • 域名:需要解析到服务器ip,方便后续使用
  • 安装好dockerdocker-compose,参考教程

开始搭建

搭建

注意: 前文提起vps性能不能太低,如果太低可以设置下SWAP,一般设置大小为内存的1-1.5倍,可以让运行更流畅(作者vps内存1G,设置SWAP大小为2G)

设置SWAP可以用脚本

1
2
wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh && chmod +x box.sh && clear && ./box.sh

https://easy.fxx6.top/i/2024/06/05/664c645af294c.png

初次运行选择1、添加swap,数值自行填入

1
2
3
sudo apt-get update

sudo apt-get upgrade #升级下packages

创建安装目录和数据存储目录

1
2
3
4
5
mkdir -p /root/data/docker_data/lsky-pro

cd /root/data/docker_data/lsky-pro

vim docker-compose.yml

docker-compose文件贴入以下内容并保存

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
version: '3'
services:
lsky-pro:
container_name: lsky-pro
image: dko0/lsky-pro
restart: always
volumes:
- /root/data/docker_data/lsky-pro/lsky-pro-data:/var/www/html #映射到本地
ports:
- 7791:80
environment:
- MYSQL_HOST=mysql
- MYSQL_DATABASE=lsky-pro
- MYSQL_USER=lsky-pro
- MYSQL_PASSWORD=lsky-pro

mysql:
image: mysql:8.0
container_name: lsky-pro-db
restart: always
ports:
- 3306:3306
environment:
- MYSQL_DATABASE=lsky-pro
- MYSQL_USER=lsky-pro
- MYSQL_PASSWORD=lsky-pro
- MYSQL_ROOT_PASSWORD=lsky-pro
volumes:
- /root/data/docker_data/lsky-pro/db:/var/lib/mysql

项目需要使用到7701端口,可以先输入命令检查是否被占用

1
lsof -i:7791  #查看7791端口是否被占用,如果被占用,重新自定义一个端口

确认无误后运行docker-compose开始安装

1
docker-compose up -d 

完成安装后在浏览器访问http:服务器ip:7701即可

注意:若访问不了自行检查下服务器防火墙是否开放了这个端口

更新 & 卸载

更新可使用系统内部的升级按钮进行升级

https://easy.fxx6.top/i/2024/06/05/664c67a282ef9.png

卸载命令

1
2
3
4
cd /root/data/docker_data/lsky-pro  # 进入docker-compose所在的文件夹
docker-compose down # 停止容器,此时不会删除映射到本地的数据

rm -rf /root/data/docker_data//root/data/docker_data/lsky-pro # 完全删除映射到本地的数据

初始化安装

访问http:服务器ip:7701进入初始化页面

注意:初始化的地址会影响后面使用api上传的地址

比如你是用ip地址初始化安装后,后面用api地址只能是ip加端口形式,如果是用域名访问,后面api就是端口

作者看了原git库的issue里面提到过这个问题,api地址是在初始化安装就决定了,后期不能更改,所以初始化安装前就可以做好反代工作。

这是我自己的一份nginx配置,并且配置了ssl证书。证书大家可以自行搜索,各个云服务器开发商都能申请,作者使用的是certbot这个工具,安装很简单,在官网选择代理服务器的类型和vps系统类型就能一键安装了,这个工具可以实现申请和续签证书,很方便。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
server {
server_name xxx.example.com; # 解析到服务器的域名
location / {
proxy_pass http://127.0.0.1:7791;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

}

listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/lsky.fxx6.top/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/lsky.fxx6.top/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

}
server {
if ($host = xxx.example.com) {
return 301 https://$host$request_uri;
}

listen 80;
server_name xxx.example.com;
return 404;
}

安装界面

点击下一步,进入数据库填写界面,地址填写上面docker-compose.yml中的mysql地址lsky-pro-db,端口不用写,其他也都是按配置中填入 lsky-pro,管理员账号密码按自己的填。

如果你在docker-compose文件自定义了自己的名字,那就按上面的填写即可

安装完成

登录

右上角登录,填入初始化的管理员账号密码

进入系统之后就可以配置存储策略、角色权限、接口等功能了

接入Qexo(hexo博客后台管理)

图床主要是为了写东西方便,博客中之前提到了hexo搭建的教程(地址),现在我们就来接入我们搭建的图床

首先我们要获取token

postman或者网上在线post工具发起请求

https://easy.fxx6.top/i/2024/06/05/664d59c04df58.png

拿到token后在Qexo后台按如下格式填入进去

{"Authorization":"Bearer 1|BnEWflCUuXXihWB4YDSu9e4sdfaeecadsbbcsdff"}

注意空格,冒号后面没有空格,Bearer后面的空格自己复制后到文本编辑器中粘贴看是不是正常的空格,看到Qexo的github上有人提到了这个问题

这样的就是不对的,需要删掉NBSP自己输入一个空格然后再粘贴到Qexo

https://easy.fxx6.top/i/2024/06/05/664d5a5e9020c.png

填入完成后再测试下

https://easy.fxx6.top/i/2024/06/05/664d5b26c4fab.png

完美完成,可以愉快的适用了!~

参考文章

https://blog.laoda.de/archives/docker-compose-install-lskypro


基于docker自建图床之兰空图床
https://blog.fxx6.top/posts/docker-lsky-dep/
作者
fxx
发布于
2024年5月21日
许可协议