进阶技巧

飞牛NAS搭建图床服务:Lsky Pro部署

为什么要自建图床?

写博客、做笔记、管理个人网站素材时,图床是绕不开的话题。公共图床要么限速、要么审核严格、要么随时可能跑路。利用飞牛NAS的高可用存储和Docker生态,我们可以轻松部署一个完全自控的图床服务——Lsky Pro(兰空图床)。它支持本地存储、对象存储、多用户管理、图片压缩等功能,配合飞牛NAS的硬件,性能完全够用。

本文将手把手带你在飞牛NAS上通过Docker部署Lsky Pro,并使用Nginx反向代理绑定域名,实现HTTPS访问。

准备工作

在开始之前,请确保你的飞牛NAS满足以下条件:

  1. 已安装飞牛NAS系统(fnOS 0.8.10及以上版本,建议更新到最新)。
  2. 已开启SSH功能,或能直接使用飞牛NAS的“终端”应用。
  3. 预留至少2GB的磁盘空间(用于存储图片和数据库)。
  4. 有一个可解析到NAS IP的域名(可选,但强烈推荐)。

第一步:创建数据目录

Lsky Pro需要三个主要目录:存储图片的目录、数据库数据目录和配置文件目录。我们统一放在 /vol1/docker/lskypro 下(请根据你的实际存储池路径调整)。

打开SSH终端,执行以下命令:

sudo mkdir -p /vol1/docker/lskypro/data
sudo mkdir -p /vol1/docker/lskypro/db
sudo mkdir -p /vol1/docker/lskypro/config
sudo chown -R 1000:1000 /vol1/docker/lskypro/data
sudo chown -R 1000:1000 /vol1/docker/lskypro/db

这里将目录所有权改为UID 1000,是为了让容器内用户有权限写入。如果你不确定,可以保持默认,后续在容器映射时再处理。

第二步:部署MySQL数据库

Lsky Pro支持MySQL和SQLite。为了稳定性和多用户支持,我们选择MySQL。使用Docker命令行创建MySQL容器:

docker run -d \
  --name lsky-db \
  --restart=always \
  -e MYSQL_ROOT_PASSWORD=your_strong_password \
  -e MYSQL_DATABASE=lsky \
  -e MYSQL_USER=lsky \
  -e MYSQL_PASSWORD=lsky_password \
  -v /vol1/docker/lskypro/db:/var/lib/mysql \
  -p 3306:3306 \
  mysql:8.0

注意将 your_strong_passwordlsky_password 替换为你自己的强密码。如果3306端口被占用,可以改成 53306:3306,后续连接时使用对应端口。

第三步:部署Lsky Pro容器

Lsky Pro官方提供了Docker镜像 halcyonazure/lsky-pro-docker。执行以下命令:

docker run -d \
  --name lsky-pro \
  --restart=always \
  -p 8089:80 \
  -v /vol1/docker/lskypro/data:/var/www/html/storage \
  -v /vol1/docker/lskypro/config:/var/www/html/config \
  --link lsky-db:mysql \
  halcyonazure/lsky-pro-docker:latest

这里将容器的80端口映射到宿主机的8089端口。如果你不想用 --link(已弃用但依然可用),也可以直接使用数据库容器的IP地址,但 --link 更简单。

等待容器启动后,打开浏览器访问 http://你的NAS_IP:8089,你应该能看到Lsky Pro的安装向导。

第四步:Web安装配置

在浏览器中进入Lsky Pro安装页面,按以下步骤操作:

  1. 选择“MySQL”数据库类型。
  2. 数据库地址填写 mysql(因为使用了 --link 别名)。
  3. 端口填写 3306(容器内部端口)。
  4. 数据库名、用户名、密码填写你创建MySQL时设置的 lskylskylsky_password
  5. 设置管理员邮箱和密码。
  6. 点击“安装”按钮。

安装完成后,系统会生成一个随机密钥,请务必保存好。然后进入后台,默认登录地址是 http://你的NAS_IP:8089/admin

第五步:配置存储策略

登录后台后,点击左侧“系统设置” -> “存储策略”。默认已经有一个“本地存储”策略。点击编辑,将“存储路径”设置为 /var/www/html/storage/,这对应我们之前映射的NAS目录。URL前缀可以填写你的域名或IP地址,例如 https://img.example.com

如果你有阿里云OSS、腾讯云COS等,也可以在这里新增策略,Lsky Pro支持多种对象存储。这里以本地存储为例。

第六步:反向代理与HTTPS

直接通过IP加端口访问图床不够专业,也不利于分享。我们使用飞牛NAS自带的Nginx或者Caddy进行反向代理。

如果你有域名并已解析到NAS,可以通过飞牛NAS的“应用中心”安装Nginx Proxy Manager(NPM),然后添加一个代理规则:

  • Domain: img.example.com
  • Forward Hostname: 127.0.0.1
  • Forward Port: 8089
  • 开启SSL,申请Let's Encrypt证书。

如果你不想安装额外应用,也可以在飞牛NAS的“网络设置”中配置端口转发,或者使用群晖风格的反向代理功能(如果fnOS版本支持)。

配置完成后,访问 https://img.example.com 应该能看到图床首页。

第七步:图床日常使用与优化

部署完成后,你可以通过以下方式上传图片:

  • 直接在前台页面拖拽上传。
  • 使用API接口,方便配合Typora等编辑器。
  • 为其他用户开设账号,实现团队协作。

这里分享一个实用技巧:在使用Typora时,安装“Custom Uploader”插件并配置Lsky Pro API。配置示例如下:

{
  "api": "https://img.example.com/api/v1/upload",
  "token": "你的API令牌"
}

API令牌需要在后台“个人设置” -> “API”中生成。

另外,建议在后台开启“图片压缩”功能,能有效节省NAS存储空间。对于大尺寸图片,Lsky Pro会自动生成WebP格式。

总结

通过以上步骤,我们成功在飞牛NAS上部署了Lsky Pro图床服务。整个流程的核心在于利用Docker容器化部署,配合数据目录映射,实现了数据的持久化。自建图床不仅数据完全掌握在自己手中,还能通过飞牛NAS的RAID机制获得数据冗余保护。后续你可以根据需要接入对象存储、配置CDN加速,或者通过API与自己的博客系统深度集成。

至此,你的飞牛NAS已经从一个简单的存储设备,升级为一个功能完整的图床服务器。享受私有云带来的便利吧!

💬 评论区
发表评论

暂无评论,来说两句吧