1. 兰空图床与其他图床的横向对比
目前比较主流的自建图床就只有 Lsky Pro 兰空、Chevereto 和 ImgURL Pro 这三款,而其他的图床像 Telegraph-Image 由于没有稳定的盈利模式,在我看来都不适宜长期使用。
项目 | Lsky Pro 兰空图床 | Chevereto | ImgURL Pro |
---|---|---|---|
开源 | ✅ 有开源版本 | ✅ 有开源版本 | ✅ 有开源版本 |
价格 | 付费版本:233.33 元(永久) | 付费版本:59 美元(大版本) | 专业版:198 元(每域名) |
支持用户注册、上传 | ✅ 支持 | ✅ 支持 | ✅ 支持 |
支持接口操作图片 | ✅ 支持 | ✅ 支持 | ✅ 支持 |
支持 Docker 部署 | ✅ 第三方支持 | ✅ 官方支持 | ✅ 官方支持 |
配置要求 | ✅ 2H2G | ❓未知 | ❓未知 |
风评 | ✅ 良心 | ❌吃香难看 | ✅ 不错 |
我的首要需求是自用、支持接口操作图片,其次是稳定,最后是文档齐全和便宜。三个图床做的都不错,最终在 选择了国人开发的风评较好的 Lsky Pro 兰空图床。
2. 使用 Docker 部署兰空图床
2.1 使用 Docker 启动
这里使用的第三方的 Docker 容器镜像:HalcyonAzure/lsky-pro-docker,Dockerfile 在我看来安全性方面是没有问题的,因此这里直接使用 Docker Hub 上对应的托管镜像了。当然你也可以 Fork 后阅读源码自己构建。
使用 Docker 启动较为简单,首先在宿主机上创建用以存储图床数据的目录:
mkdir -vp /ceshiku/docker/lsky/data
之后启动容器:
docker run -d \
--name lsky_pro \
-p 9080:80 \
-v /ceshiku/docker/lsky/data:/var/www/html \
--restart unless-stopped \
halcyonazure/lsky-pro-docker:latest
接着访问服务器 http://IP:9080 就可以访问图床的安装界面了。
2.2 图床安装
第一步是检测运行环境,由于使用的是 Docker 容器镜像,因此环境一定是完备的:

第二步配置数据库,我图方便就选 SQLite 了,生产环境推荐使用 MySQL 或 PostgreSQL:

之后等待安装完成即可:


2.3 开启 HTTPS 访问
我这里选的是白嫖 Cloudflare 的 SSL 证书,当然你也可以通过其他方式配置 HTTPS 访问:

之后配置下 Nginx 反代 9080 端口的图床:
vi /etc/nginx/nginx.conf
....
....
keepalive_timeout 65;
types_hash_max_size 4096;
# 允许上传最大 20mb 的文件
client_max_body_size 20m;
include /etc/nginx/mime.types;
...
...
# 反代配置
# === img.ceshiku.cn ===
server {
listen 80;
server_name img.ceshiku.cn;
location / {
proxy_pass http://127.0.0.1:9080;
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 REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-Proto https;
add_header X-Cache $upstream_cache_status;
}
}
...
...
nginx -s reload
service nginx restart
保存后稍等片刻直到 DNS 生效,再通过域名访问就能看到 HTTPS 生效了:

2.4 图床基础配置
关闭访客注册、上传:

配置域名:


2.5 测试图片上传功能
回到首页拖拽上传:

上传成功后可以看见各个格式的引用代码:

3. macOS 下配置 uPic 实现一键上传
参考文章:Lsky 兰空图床升级 V2 指南
App Store 购买地址:uPic: 强大的图床工具
作者的 V2EX 主页:gee1k
注意:uPic 上可选的 Lsky Pro 配置项只支持 v1.0 版本的兰空图床,我们上面部署的是 v2.0 以后的版本,因此只能选择自定义图床上传配置!
基础配置如下:

点击其他字段
按钮打开进阶配置,主要用于填写用户的 Token 等登陆信息:

获取用户信息:
curl -X POST -F "[email protected]" -F "password=xxxxxxxx" https://img.ceshiku.cn/api/v1/tokens
# 响应
{"status":true,"message":"success","data":{"token":"1|FWzOLxTGKhlT51m2oxxxxxxxxxxxxxxx"}}
开始配置,选择 Headers 数据:
- Content-Type: multipart/form-data
- Accept: application/json
- Authorization: Bearer 1|FWzOLxTGKhlT51m2oxxxxxxxxxxxxxxx
Authorization 的值填写格式:Bearer + token 字段的数据,注意中间有个空格。

选择图床后,上传测试:


可以成功上传,结束。
4. 后记
上传后的图片文件目录为:
/ceshiku/docker/lsky/data/storage/app/uploads/
后续需要通过 Rclone 等工具进行备份。