兰空图床(Lsky Pro)是一款功能完善的开源图床程序,支持本地存储和多种对象存储(S3、OSS、COS 等),提供上传接口,可与博客、文章等平台无缝对接。本文使用 Docker 方式部署,配合 MySQL 数据库,是目前最简洁的部署方案。

本文要点

  • Docker Compose 部署 Lsky Pro + MySQL
  • 存储策略配置(本地 vs 对象存储)
  • Nginx 反代 + SSL
  • 与博客/编辑器对接上传接口

部署前准备

  • 已安装 Docker 与 Docker Compose
  • 准备好域名(图床建议独立域名或子域名),指向 VPS IP
  • 决定存储方案:本地磁盘(简单)或对象存储(容量大、可靠性高)

Docker Compose 文件

创建 /opt/lsky/docker-compose.yml

# /opt/lsky/docker-compose.yml
services:
  mysql:
    image: mysql:8.0
    container_name: lsky_mysql
    environment:
      MYSQL_ROOT_PASSWORD: LskyRootPass123
      MYSQL_DATABASE: lsky
      MYSQL_USER: lskyuser
      MYSQL_PASSWORD: LskyDBPass456
    volumes:
      - mysql_data:/var/lib/mysql
    restart: unless-stopped

  lsky:
    image: lsky/pro:latest
    container_name: lsky
    depends_on:
      - mysql
    ports:
      - "8090:8089"
    volumes:
      - ./storage:/var/www/html/storage
    restart: unless-stopped

volumes:
  mysql_data:
mkdir -p /opt/lsky/storage
cd /opt/lsky
docker compose up -d

storage 目录权限

若页面报文件写入错误,执行 docker exec lsky chown -R www-data:www-data /var/www/html/storage

完成安装向导

访问 http://服务器IP:8090,进入安装向导,填写数据库连接信息(主机名填 mysql,即 Compose 中定义的服务名):

  1. 数据库主机:mysql
  2. 数据库名:lsky
  3. 用户名:lskyuser
  4. 密码:LskyDBPass456
  5. 设置管理员账号与邮箱,完成安装

Nginx 反代 + SSL

申请证书并创建 Nginx 配置 /etc/nginx/conf.d/lsky.conf

certbot --nginx -d img.yourdomain.com
server {
    listen 443 ssl;
    server_name img.yourdomain.com;
    ssl_certificate     /etc/letsencrypt/live/img.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/img.yourdomain.com/privkey.pem;
    client_max_body_size 50m;
    location / {
        proxy_pass http://127.0.0.1:8090;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
    }
}

存储策略配置

存储类型适合场景配置要点
本地磁盘小规模、简单部署挂载 storage 目录即可
AWS S3 / 兼容 API大容量、高可用填写 Endpoint、Bucket、AK/SK
阿里云 OSS / 腾讯云 COS国内访问速度优先填写对应 Bucket 信息

在 Lsky Pro 管理后台→存储策略中添加并设置默认策略。使用对象存储时,图片直接上传到存储桶,服务器只负责处理逻辑,磁盘占用极低。

与博客/编辑器对接

Lsky Pro 提供兼容标准的上传 API,以 Typora 为例:

  1. 在 Typora → 偏好设置 → 图像 → 上传服务 选择"自定义"
  2. 填写上传 URL:https://img.yourdomain.com/api/v1/upload
  3. 在 Header 中添加 Authorization: Bearer 你的API Token
  4. 测试上传,图片链接自动替换

获取 API Token

登录 Lsky Pro 后台,在个人设置→API Token 中生成 Token,复制后在编辑器中配置。

小结

  • Compose 方案将应用与数据库解耦,升级维护方便
  • 对象存储策略让磁盘需求降至最低
  • 反代 + SSL 后,图片链接使用 HTTPS 更安全,适合嵌入博客
  • API 接口与主流写作工具无缝对接

常见问题

Lsky Pro 免费使用吗?

Lsky Pro 提供开源免费版(基础功能)和付费的专业版(多用户、权限管理等高级功能),个人搭建基础版完全够用。

图片可以设置防盗链吗?

付费专业版支持防盗链设置。免费版可通过 Nginx 层的 referer 策略来限制,或配合对象存储自带的防盗链功能实现。

上传图片失败提示 413 怎么办?

这是 Nginx 的请求体大小限制,在 Nginx 配置中将 client_max_body_size 调大(如改为 50m),重载配置后即可。