飞牛NAS搭建图床服务:Lsky Pro部署
为什么要自建图床?
写博客、做笔记、管理个人网站素材时,图床是绕不开的话题。公共图床要么限速、要么审核严格、要么随时可能跑路。利用飞牛NAS的高可用存储和Docker生态,我们可以轻松部署一个完全自控的图床服务——Lsky Pro(兰空图床)。它支持本地存储、对象存储、多用户管理、图片压缩等功能,配合飞牛NAS的硬件,性能完全够用。
本文将手把手带你在飞牛NAS上通过Docker部署Lsky Pro,并使用Nginx反向代理绑定域名,实现HTTPS访问。
准备工作
在开始之前,请确保你的飞牛NAS满足以下条件:
- 已安装飞牛NAS系统(fnOS 0.8.10及以上版本,建议更新到最新)。
- 已开启SSH功能,或能直接使用飞牛NAS的“终端”应用。
- 预留至少2GB的磁盘空间(用于存储图片和数据库)。
- 有一个可解析到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_password 和 lsky_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安装页面,按以下步骤操作:
- 选择“MySQL”数据库类型。
- 数据库地址填写
mysql(因为使用了--link别名)。 - 端口填写
3306(容器内部端口)。 - 数据库名、用户名、密码填写你创建MySQL时设置的
lsky、lsky、lsky_password。 - 设置管理员邮箱和密码。
- 点击“安装”按钮。
安装完成后,系统会生成一个随机密钥,请务必保存好。然后进入后台,默认登录地址是 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已经从一个简单的存储设备,升级为一个功能完整的图床服务器。享受私有云带来的便利吧!
暂无评论,来说两句吧