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。如果你想支持更大的图片或短片,需要在两处同时修改:

- Nginxclient_max_body_size 100M;(已在上面配置)。

- Lsky Pro:在 docker-compose.yml 中加入环境变量 PHP_UPLOAD_MAX_FILESIZE=100MPHP_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 和存储换成云服务即可。

自建图床的好处不必多说:数据可控、免广告、不会因为平台政策变动而失效。希望这篇文章能帮你快速搭建属于自己的图床,让以后上传图片再也不是件头疼的事。如果在部署过程中遇到任何问题,欢迎在评论区留言,我们一起排查。祝你们玩得开心!