Featured image of post Lsky Pro (兰空图床) + Cloudflare R2 Docker 部署指南

Lsky Pro (兰空图床) + Cloudflare R2 Docker 部署指南

Lsky Pro (兰空图床) + Cloudflare R2 Docker 部署指南

本教程基于 Docker Compose 部署 Lsky Pro,并使用 Cloudflare R2 作为后端存储,实现10G可用空间、全球加速的私有图床。

一、 环境准备

  • 服务器/NAS:支持 Docker 和 Docker Compose (x86 或 ARM 均可)。
  • 存储:Cloudflare R2 账号(已创建 Bucket,获取了 Access Key, Secret Key 和 Endpoint)。
  • 域名:已绑定到 R2 的自定义域名(如 https://img.your.website)。(如果没有自己的域名,使用cloudflare分配的也可以,不过不好看)

二、 部署步骤

1. 创建目录与配置文件

在服务器上创建一个文件夹(例如 lsky),并在其中创建 docker-compose.yml 文件。

1
2
3
mkdir -p lsky/web lsky/mysql/data lsky/mysql/conf lsky/mysql/log
cd lsky
touch docker-compose.yml

2. 编写 docker-compose.yml

复制以下内容填入文件。这是经过修正、兼容性最好的版本(使用 MariaDB 替代 MySQL 以避免架构兼容性问题)。

 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
30
31
32
33
34
35
36
version: '3'
services:
  lskypro:
    image: halcyonazure/lsky-pro-docker:latest
    restart: unless-stopped
    hostname: lskypro
    container_name: lskypro
    environment:
      - WEB_PORT=8089  # 容器内部端口,不要改
    volumes:
      - ./web:/var/www/html/ # 映射网站代码目录
    ports:
      - "9080:8089" # 宿主机端口:容器端口,访问用 http://IP:9080
    networks:
      - lsky-net
    depends_on:
      - mysql-lsky

  mysql-lsky:
    image: mariadb:10.5 # 使用 MariaDB,兼容性更好
    restart: unless-stopped
    hostname: mysql-lsky
    container_name: mysql-lsky
    volumes:
      - ./mysql/data:/var/lib/mysql
      - ./mysql/conf:/etc/mysql/conf.d
      - ./mysql/log:/var/log/mysql
    environment:
      MYSQL_ROOT_PASSWORD: lAsWjb6rzSzENUYg  # 【注意】数据库密码,可自行修改
      MYSQL_DATABASE: lsky-data              # 数据库名
    networks:
      - lsky-net

networks:
  lsky-net:
    driver: bridge

三、 网页初始化安装

浏览器访问 http://你的NAS_IP:9080 进入安装向导。

1. 环境检测

点击下一步,直到进入“配置数据库”页面。

2. 数据库配置(这里最容易填错

请严格按照下表填写,不要填 127.0.0.1

设置项 填入内容 说明
数据库类型 MySQL 5.7+ (MariaDB 兼容 MySQL)
数据库连接地址 mysql-lsky 重点! 必须填 docker-compose 里定义的服务名
数据库连接端口 3306 默认端口
数据库名称 lsky-data 对应 yml 里的MYSQL_DATABASE
数据库用户名 root 默认超管用户
数据库密码 lAsWjb6rzSzENUYg 对应 yml 里的MYSQL_ROOT_PASSWORD

设置好管理员账号邮箱和密码,点击安装。


四、 配置 Cloudflare R2 存储

进入 Lsky 后台 -> 存储策略 -> 添加存储策略 -> 选择 AWS S3

1. 填写参数

参数 填写说明 示例/注意点
AccessKeyId R2 提供的 Key ID 9fb2a1...
SecretAccessKey R2 提供的 Secret Key 4b2854...
连接地址 (Endpoint) R2 的 S3 API 地址 https://xxxx.r2.cloudflarestorage.com

结尾不要带 /

不要带桶名
区域 (Region) auto 填 auto 即可
存储桶名称 你的 R2 Bucket 名字 selfname-img
访问域名 对外展示的域名 https://img.your.website

❌ **只填域名!**不要填{year}/{month}等变量

2. 启用策略

保存后,在存储策略列表中:

  1. 开启 该策略。
  2. 点击 “设为默认” (这一步不做,图片还是会存到本地硬盘)。

五、 关键设置修正(避坑指南)

1. 为什么显示总容量只有 500MB?

Lsky Pro 默认给每个用户组(包括管理员)设置了配额限制。

  • 路径:后台 -> 用户管理 -> 角色组
  • 操作:编辑“管理员”组(以及其他用户组)。
  • 修改:将 “总容量” 改为一个很大的数字(如 1024000 MB)或留空(视版本而定)以解除限制。

2. 文件名路径规则

  • Lsky Pro 自动归档:Lsky 会自动按 日期/随机文件名 存储,不需要像 PicGo 那样手动设置路径规则。
  • 访问域名错误:如果在“访问域名”里填了路径变量,生成的链接会变成 https://域名/{year}/... 导致无法访问。请保持访问域名纯净。

六、 配合 PicGo 使用(可选)

如果你想在桌面端快捷上传:

  1. PicGo 插件设置搜索安装 lsky-pro 插件。

  2. 配置插件

    • Server Url: http://你的IP:9080/api/v1 (注意 /api/v1 后缀)
    • Token: 在 Lsky 后台 -> 个人中心 -> 接口 -> 复制 Token。
    • Strategy ID: 留空(默认走后台设置的默认策略)。
  3. 现在你可以用快捷键截图,自动上传到 Lsky 并同步到 R2 了

使用 Hugo 构建
主题 StackJimmy 设计