30分钟部署一个高颜值的兰空图床(美化版)

基于 Lsky Pro 的美化增强版,含暗色模式、OAuth 登录、Token 权限管理

一直想要一个自己的图床。之前看过兰空图床(Lsky Pro),功能挺全,但官方说停止维护了,界面也偏朴素。直到在 LiuShen’s Blog 上看到一篇深度美化的文章——有一位开发者 willow-god 基于原版做了一个大改版,界面重做、加了暗色模式、OAuth 第三方登录、Token 精细化权限管理,连后台自定义 CSS/JS 都有。

更关键的是,它提供一个开箱即用的 Docker 镜像,部署起来极其简单。

如果你也想要一个好看的私有图床,这篇教程手把手带你跑通。

美化版长什么样

这次美化不是简单换个颜色,而是实打实的大改:

  • 双主题 — 亮色/暗色模式一键切换
  • 登录页重做 — 不再是大白板,左侧加了图床信息和说明
  • 控制台翻新 — 浅色 UI,卡片化设计,圆角阴影统一
  • Token 管理 — 网页端直接创建/管理 API 密钥,支持按能力分配权限
  • OAuth 登录 — 支持第三方账号登录/绑定、PKCE
  • 自定义 CSS/JS — 后台直接配置,不用改源码

原版 ⮕ 美化版,属于”用过就回不去”的那种提升。

前置准备

  • 一台服务器(我用的腾讯云轻量,系统 Debian/Ubuntu 均可)
  • Docker & Docker Compose 已安装
  • 1Panel 面板(方便管理数据库和反代,非必需但推荐)
  • 一个域名(可选,用于反代访问)

第一步:部署容器

SSH 登录服务器,直接走起:

1
cd ~ && mkdir -p lsky && cd lsky

创建 docker-compose.yml,内容如下:

1
2
3
4
5
6
7
8
9
services:
lsky:
image: willowgod/lsky-liushen:latest
container_name: lsky-pro
restart: unless-stopped
ports:
- "8089:8089"
volumes:
- ./data/html:/var/www/html

💡 为什么是 8089:8089?
这个镜像的 Apache 监听的是容器内部的 8089 端口(HTTP),不是默认的 80。我第一次也踩了这个坑,docker-compose.yml 写 8089:80 结果连不上,查了 Apache 配置才发现。

启动容器:

1
docker compose up -d

等拉取镜像完成,检查容器是否正常运行:

1
docker ps | grep lsky

看到状态为 Up 就说明启动成功了。

第二步:配置数据库

有两种方式:

方案 A:用 1Panel 安装 MySQL(推荐)

如果你和我一样装了 1Panel,直接在它应用商店装一个 MySQL 8.0,然后在 数据库 页面新建一个数据库:

字段 填写
数据库名 lsky
用户名 lsky
密码 随便设一个

新建完记下数据库名、用户名和密码。

方案 B:在 docker-compose.yml 里一起起 MySQL

在 compose 文件里加上 MySQL 服务,适合没有 1Panel 的纯 Docker 环境:

1
2
3
4
5
6
7
8
9
10
11
12
services:
mysql:
image: mysql:8.0
container_name: lsky-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: root_pass
MYSQL_DATABASE: lsky
MYSQL_USER: lsky
MYSQL_PASSWORD: lsky_pass
volumes:
- ./db:/var/lib/mysql

第三步:安装向导

浏览器访问 http://你的服务器IP:8089

首次进入会弹出安装页面,按顺序填:

① 环境检测 → 直接点下一步(PHP 扩展基本都满足)

② 数据库配置:

字段 填写内容
数据库地址 MySQL 的内网 IP 或容器名
端口 3306
数据库名 刚才建的(如 lsky
用户名 刚才设的(如 lsky
密码 你设的密码

需要 MySQL 的内网 IP?在服务器上跑:

1
docker inspect $(docker ps -q --filter name=mysql) | grep '"IPAddress"' | head -1

③ 管理员账号 → 设一个邮箱和密码(登录用)

④ 点击完成 → 跳转登录页

第四步:Nginx 反代 + 域名

直接访问 IP:8089 能用,但不安全也不好看。用 1Panel 反代很简单:

  1. 域名 DNS 解析指向服务器 IP
  2. 1Panel → 网站创建网站反向代理
  3. 填入你的域名
  4. 代理地址http://127.0.0.1:8089
  5. 自动申请 SSL 证书(Let’s Encrypt)

搞定之后就可以用 https://你的域名 访问了。

安全提醒: 反代配好后,去防火墙关掉 8089 端口的外网访问,只留 443(HTTPS)和 80(HTTP 重定向)。

第五步(可选):换 Favicon

默认图标可能不太合意,我自己换了一个”龙”字主题的:

1
2
3
4
cd ~/lsky/data/html/public

# 把 favicon.ico 丢进去覆盖
cp /path/to/your/favicon.ico favicon.ico

覆盖后强制刷新浏览器(Ctrl+Shift+RCtrl+F5)即可看到新图标。浏览器会缓存 favicon,普通刷新无效,必须强制刷新或清空站点缓存。

日常维护

更新版本

1
2
3
4
cd ~/lsky
docker compose down
docker pull willowgod/lsky-liushen:latest
docker compose up -d

备份数据

1
2
# 备份整个 lsky 目录就够了
tar -czf lsky-backup-$(date +%Y%m%d).tar.gz ~/lsky

数据库也建议从 1Panel 定期导出备份。

总结

整个部署下来也就二三十分钟,体验上比原版好了不止一个档次。如果你手头有服务器,又确实需要一个图床来存图片,这个美化版绝对值得一试。

这个时代的好处是,借助 AI 和 Docker,部署一个像样的服务已经不需要太多运维知识了——能看懂命令,就能跑起来。


相关链接: