Lsky Pro 自建图床全流程
大家好,今天想跟你们聊聊怎么用自己的服务器搭一个图床。现在的网络环境里,图片托管服务说关就关,自己手头要是没有一个稳定的图床,写博客、做项目甚至发朋友圈都会受限。之前我一直用免费的各种图床,结果要么限流,要么突然宣布收费,真是折腾够了。于是决定自己动手,选用 Lsky Pro 这款开源的轻量级图床程序,整个过程不到半小时就能跑通,而且功能还挺全——支持 API、鉴黄、多种存储后端(本地、OSS、OSS兼容的 S3 等),界面也相当简洁。今天就把完整的部署流程分享出来,希望能帮到想自建图床的朋友。
---1. 前期准备:选机器、装系统
首先你得有一台 VPS 或者自己的服务器。配置不需要太高,1 核 1 G 内存就足够跑 Lsky Pro(当然如果你要跑鉴黄或者大文件存储,CPU 和硬盘可以适当提升)。操作系统推荐 Ubuntu 20.04/22.04 或者 CentOS 8,因为这两者对 Docker 的兼容性最好,安装过程也最省心。
> 小提示:如果你已经有宝塔面板或者 1Panel,直接在面板里装 Docker 也行,后面的 docker‑compose 仍然适用。
在机器上打开终端,先确认系统已经更新:
# Ubuntu / Debian
sudo apt update && sudo apt upgrade -y
CentOS
sudo yum update -y
确保 curl、git 已经装好,后面的操作会用到。
---2. Docker 环境一键搭建
Lsky Pro 官方推荐使用 Docker 部署,一来省去手动编译的麻烦,二来以后升级、迁移都非常方便。我们只需要装好 Docker 与 Docker Compose(docker‑compose)即可。
2.1 安装 Docker
# 官方一键脚本(Ubuntu/Debian/CentOS 通用)
curl -fsSL https://get.docker.com | sh
启动并设为开机自启:
sudo systemctl start docker
sudo systemctl enable docker
2.2 安装 Docker Compose
大多数发行版的官方仓库已经包含 docker‑compose,直接安装即可:
# Ubuntu/Debian
sudo apt install -y docker-compose
CentOS
sudo yum install -y docker-compose
安装完毕后,验证一下:
docker --version # 应显示 Docker 版本
docker-compose --version # 应显示 docker-compose 版本
这一步搞定后,你的服务器已经有了跑容器的完整环境。
---3. 部署 Lsky Pro
3.1 创建项目目录
mkdir -p ~/lsky-pro && cd ~/lsky-pro
3.2 编写 docker‑compose.yml
官方提供的镜像名称是 lsky/lsky-pro,我们只需要把 MySQL(或其他数据库)和 Lsky Pro 本身一起编排。下面是一个最小化、可直接使用的配置示例:
version: "3.8"
services:
lsky-pro:
image: lsky/lsky-pro:latest
container_name: lsky-pro
ports:
- "8080:80" # 前面是宿主机端口,后面是容器内部端口
environment:
- WEB_PORT=80
- DB_HOST=db
- DB_PORT=3306
- DB_DATABASE=lsky
- DB_USERNAME=lsky
- DB_PASSWORD=your_strong_password # 改成你自己的密码
volumes:
- ./data:/var/www/html/storage # 持久化上传的图片
depends_on:
- db
restart: unless-stopped
db:
image: mysql:8.0
container_name: lsky-mysql
environment:
- MYSQL_ROOT_PASSWORD=root_password # MySQL root 密码
- MYSQL_DATABASE=lsky
- MYSQL_USER=lsky
- MYSQL_PASSWORD=your_strong_password # 与上面保持一致
volumes:
- ./mysql:/var/lib/mysql
restart: unless-stopped
> 注意:如果你想使用 MariaDB 或者 PostgreSQL,只需要把 db 镜像改掉,并相应修改 DB_DRIVER 环境变量。官方文档里有详细说明。
3.3 启动服务
在 ~/lsky-pro 目录下执行:
docker-compose up -d
容器启动后,访问 http://<你的服务器IP>:8080(如果是本地则是 http://localhost:8080),你应该能看到 Lsky Pro 的安装向导。按照页面提示填写刚才在 docker-compose.yml 中设定的数据库信息、管理员账号密码,点击「安装」即可完成初始化。
> 第一次登录:安装完成后,系统会提示你创建管理员账号,记得保存好账号密码,后续所有图片管理都要靠它。
---4. 域名、HTTPS 与反向代理
4.1 使用 Nginx 反向代理
直接用 IP+端口访问显然不够优雅,我们可以利用 Nginx 把域名指向 Lsky Pro,同时顺便把 HTTPS 配置好。
先安装 Nginx(如果你已经有了,直接跳过):
# Ubuntu/Debian
sudo apt install -y nginx
CentOS
sudo yum install -y nginx
然后新建一个配置文件(比如 /etc/nginx/conf.d/lsky.conf),内容如下:
server {
listen 80;
server_name img.yourdomain.com; # 替换成你的域名
# 自动跳转 HTTPS(后面证书部署完再打开)
# return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name img.yourdomain.com;
ssl_certificate /path/to/fullchain.pem; # 证书路径
ssl_certificate_key /path/to/privkey.pem; # 密钥路径
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
client_max_body_size 100M; # 上传文件大小限制,依据需求调大
location / {
proxy_pass http://127.0.0.1:8080;
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;
}
# 静态资源可以缓存,提升访问速度
location ~* \.(jpg|jpeg|png|gif|ico|svg|webp)$ {
proxy_pass http://127.0.0.1:8080;
expires 30d;
add_header Cache-Control "public, immutable";
}
}
> 证书获取:如果你没有现成的证书,可以使用 Let's Encrypt 免费申请:
>
> sudo certbot --nginx -d img.yourdomain.com
>
> 申请过程会自动写入上面的 ssl_certificate 路径。
配置完成后,测试并重启 Nginx:
sudo nginx -t
sudo systemctl reload nginx
现在打开浏览器访问 https://img.yourdomain.com,应该已经可以看到 Lsky Pro 的登录页,且地址栏显示安全锁。
5. 常见坑与进阶玩法
5.1 上传文件大小限制
默认的 Nginx 和 PHP(容器内部)都限制上传大小为 2 MB。如果你想支持更大的图片或短片,需要在两处同时修改:
- Nginx:client_max_body_size 100M;(已在上面配置)。
- Lsky Pro:在 docker-compose.yml 中加入环境变量 PHP_UPLOAD_MAX_FILESIZE=100M、PHP_POST_MAX_SIZE=100M,或者直接在容器里修改 php.ini。
5.2 存储后端选择
Lsky Pro 支持本地存储、阿里云 OSS、腾讯云 COS、AWS S3 等。如果你想要更高的可靠性,推荐把图片直接上传到 OSS(对象存储),这样即使服务器硬盘挂了,图片依旧安全。配置方式也很简单:在后台「系统设置 → 存储策略」里选择对应的驱动,填入 AccessKey、SecretKey、Bucket、Endpoint 即可。
5.3 开启鉴黄功能
Lsky Pro 内置了基于 NSFW JS 的轻量鉴黄模型,开启后会自动检测上传的图片是否符合公共安全标准。入口在「系统设置 → 安全中心」,打开后可以设置「拦截」或「标记」两种模式。建议先使用「标记」模式,观察几天后再决定是否直接拦截。
5.4 API 调用
如果你想在博客、移动端或其他项目里直接上传图片,Lsky Pro 提供了完整的 RESTful API。常见的使用方式:
# 上传图片(需要先获取 token)
curl -X POST https://img.yourdomain.com/api/v1/upload \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@/path/to/image.jpg"
返回的 JSON 里会包含图片的 URL、尺寸等信息,直接嵌入页面即可。
---6. 小结
到这里,一个完整的 Lsky Pro 自建图床就已经跑起来了。我们从选机器、装 Docker、编写 docker‑compose、启动容器、配置 Nginx 与 HTTPS,再到常见坑的解决和进阶功能(对象存储、鉴黄、API),整个过程基本上是“一键部署 + 少量配置”。如果你只是想自己写博客、存素材,完全可以在一台 5 美元/月的 VPS 上跑得舒舒服服;如果你需要更高的可用性,只需要把 MySQL 和存储换成云服务即可。
自建图床的好处不必多说:数据可控、免广告、不会因为平台政策变动而失效。希望这篇文章能帮你快速搭建属于自己的图床,让以后上传图片再也不是件头疼的事。如果在部署过程中遇到任何问题,欢迎在评论区留言,我们一起排查。祝你们玩得开心!
Lsky Pro 自建图床全流程
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法