【工具】搭建个人图床解决方案:Lsky Pro部署与使用指南

1. 项目背景

在写博客、文档或技术文章时,我们经常需要插入图片以增强内容的可读性和吸引力。然而,直接在文章中嵌入大量图片会导致项目体积膨胀,同时也不便于图片的统一管理与复用。

目前主流的解决方案有:

  • 使用第三方图床服务(如SM.MS、ImgBB等)
  • 基于云存储搭建图床(如七牛云、阿里云OSS等)
  • 自建图床服务

其中,自建图床服务具有以下优势:

  • 数据自主可控,无需担心第三方服务停止运营
  • 无容量限制,可根据需要扩展
  • 隐私保护更有保障
  • 可定制化程度高
  • 无需支付持续的服务费用

基于以上考虑,我们决定调研并搭建一套自己的图床系统。

2. 图床方案调研

2.1 需求分析

我们的图床解决方案需要满足以下需求:

  • 支持多种上传方式(Web界面、API接口)
  • 支持与常用的写作工具(如Typora、uPic等)集成
  • 易于部署和维护(最好支持Docker部署)
  • 界面美观,操作友好
  • 支持图片管理功能(分类、删除、重命名等)
  • 支持多种图片链接格式(直链、Markdown等)
  • 可扩展性好,支持多种存储方式

2.2 主流开源图床对比

经过调研,我们对比了几款主流的开源图床解决方案:

特性 Lychee Lsky Pro Chevereto PicGo Server Sapic
uPic支持
Docker部署
存储选项 本地 多种云存储 本地、S3、FTP 多种云存储 本地、云存储
多图上传
复制链接格式 有限 多种格式 多种格式 多种格式 多种格式
图片处理 基本 缩略图、水印 缩略图、编辑 依赖外部 基本
用户系统 ✅ 多用户 ✅ 多用户
相册管理 ✅ 强大 ✅ 基础
API完整度 ⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐
易用性 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐
社区活跃度 中高
维护状态 活跃 活跃 较活跃 不太活跃 较活跃

2.3 方案选择

综合考虑各方面因素,我们选择了Lsky Pro作为我们的图床解决方案,主要原因如下:

  1. 功能全面:支持多种上传方式、图片管理、多用户系统等
  2. 支持多种存储方式:可以灵活选择本地存储或云存储
  3. API设计合理:完全支持uPic等第三方上传工具
  4. Docker部署:有现成的Docker镜像,部署维护简单
  5. 社区活跃:更新维护频繁,Bug修复及时
  6. UI设计美观:用户体验良好

3. Lsky Pro部署方案

3.1 技术选型

  • 容器化部署:Docker + Docker Compose
  • 图床程序:Lsky Pro
  • 数据库:MySQL
  • Web服务器:Nginx(反向代理)
  • 存储方式:本地存储(可扩展至云存储)

3.2 部署环境准备

确保服务器已安装以下软件:

  • Docker (1.13.0+)
  • Docker Compose (1.10.0+)
  • Nginx (可选,用于反向代理)

3.3 使用Docker Compose部署

我们将使用Docker Compose进行部署,以便于管理容器编排。参考jellyfina/lsky镜像进行部署。

3.3.1 创建目录结构
mkdir -p lsky-pro/{uploads,conf,mysql,nginx}
cd lsky-pro
3.3.2 创建docker-compose.yml文件
version: '3'
services:
  web:
    image: jellyfina/lsky:v2.1-latest
    restart: always
    hostname: lsky-pro
    container_name: lsky-pro
    volumes:
      - ./uploads:/var/www/html/storage/app/uploads
      - ./conf:/var/www/html/config
    environment:
      - DB_HOST=mysql
      - DB_PORT=3306
      - DB_DATABASE=lsky
      - DB_USERNAME=lsky
      - DB_PASSWORD=lsky_password
    depends_on:
      - mysql
    ports:
      - "8089:80"
    networks:
      - lsky-network

  mysql:
    image: mysql:8.0
    restart: always
    container_name: lsky-mysql
    volumes:
      - ./mysql:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=root_password
      - MYSQL_DATABASE=lsky
      - MYSQL_USER=lsky
      - MYSQL_PASSWORD=lsky_password
    command: --default-authentication-plugin=mysql_native_password
    networks:
      - lsky-network

networks:
  lsky-network:
3.3.3 启动服务
docker-compose up -d

启动后可以通过 http://服务器IP:8089 访问Lsky Pro的安装页面。

3.4 初始化配置

  1. 访问安装页面,按照向导完成初始安装
  2. 配置数据库信息(与docker-compose.yml中的保持一致)
  3. 设置管理员账号和密码
  4. 完成安装

3.5 Nginx反向代理配置(可选)

如果需要通过域名访问,可以配置Nginx反向代理:

server {
    listen 80;
    server_name img.example.com;

    location / {
        proxy_pass http://localhost:8089;
        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;
    }

    # 上传文件大小限制
    client_max_body_size 20M;
}

3.6 HTTPS配置(可选)

建议为图床服务配置HTTPS,可以使用Let’s Encrypt免费证书:

# 安装certbot
apt install certbot python3-certbot-nginx -y

# 申请证书并自动配置Nginx
certbot --nginx -d img.example.com

4. 使用与集成

4.1 Web界面使用

Lsky Pro提供了直观的Web界面,主要功能包括:

  • 图片上传:支持拖拽上传、多图上传、URL上传
  • 图片管理:支持分组、标签、删除、重命名等操作
  • 相册管理:可创建多个相册对图片进行分类
  • 链接复制:支持多种格式的链接复制(URL、HTML、Markdown等)

4.2 与客户端工具集成

4.2.1 配置uPic上传

uPic 是一款优秀的Mac上传工具,配置Lsky Pro如下:

  1. 打开uPic偏好设置
  2. 添加新的图床服务
  3. 选择"自定义"图床
  4. 填写以下信息:
    • 图床名称:Lsky Pro
    • API地址:https://img.example.com/api/v1/upload(替换为您的域名)
    • 请求方式:POST
    • 文件字段名:file
    • 请求头:Authorization: Bearer [您的Token]
    • 图片URL路径:data.links.url

Token可以在Lsky Pro后台的"个人设置">"API Token"中获取。

4.2.2 配置Typora上传

Typora支持通过自定义命令上传图片:

  1. 打开Typora偏好设置
  2. 选择"图像"
  3. 上传服务选择"Custom Command"
  4. 命令行中填写(使用curl上传到Lsky Pro):
curl -F "file=@$1" -H "Authorization: Bearer YOUR_TOKEN" https://img.example.com/api/v1/upload | grep -o '"url":"[^"]*"' | sed 's/"url":"//g' | sed 's/"//g'

4.3 进阶配置

4.3.1 配置云存储

Lsky Pro支持多种云存储方式,配置步骤:

  1. 登录管理后台
  2. 进入"存储策略"
  3. 点击"添加"
  4. 选择存储类型(如阿里云OSS、腾讯云COS等)
  5. 填写相应的配置信息
  6. 设置为默认(可选)
4.3.2 图像优化设置

可以在管理后台配置图像优化选项:

  1. 进入"系统设置">“图像设置”
  2. 配置水印、缩略图等选项
  3. 设置上传文件大小限制
  4. 配置允许的文件类型

5. 安全与维护

5.1 安全建议

  1. 更改默认端口,避免使用常见端口
  2. 启用HTTPS,保护数据传输安全
  3. 设置强密码,定期更换
  4. 限制上传文件类型和大小
  5. 定期检查并更新系统

5.2 备份策略

建议定期备份数据库和上传的图片:

# 备份数据库
docker exec lsky-mysql sh -c 'mysqldump -ulsky -plsky_password lsky' > backup/lsky_db_$(date +%Y%m%d).sql

# 备份上传的图片
rsync -avz lsky-pro/uploads/ backup/uploads_$(date +%Y%m%d)/

5.3 更新维护

当Lsky Pro发布新版本时,可以通过以下步骤更新:

# 拉取最新镜像
docker-compose pull

# 重新构建并启动容器
docker-compose up -d --build

6. 总结

通过部署Lsky Pro图床,我们实现了一个功能完善、易用性强的图片托管解决方案。这个方案具有以下优势:

  • 数据自主可控,无需依赖第三方服务
  • 支持多种上传方式,适合各种使用场景
  • 部署维护简单,使用Docker一键部署
  • 可扩展性强,支持多种存储方式
  • 界面美观,用户体验好

对于个人博客、团队文档或企业内容管理,Lsky Pro都是一个理想的图床解决方案。

参考资料

  • Lsky Pro官方文档
  • jellyfina/lsky Docker镜像
  • uPic官方文档
  • Docker Compose官方文档

你可能感兴趣的:(运维,运维)