LitePic:一个写给自己的图床

惭愧得很,这个程序我断断续续更新了差不多一年。如果不是 LitePic.io 域名提醒续费,我差点又把它忘了。查了一下,域名是 2025-05-30 注册的——那时我刚学会用 VS Code 配 Copilot 改代码。从开始到现在大约两万行,是时候再拿出来说一说。中间功能加了又减、页面和后台也翻过几轮;到 3.7 已经能开可选多用户,不再只是「我和朋友两人用的私货」。
说程序之前先说我自己。我大抵是有点毛病:任何想法敲第一行代码之前,一定要先注册域名。.com / .net 不行就最低 .ai / .io,再不行才轮到 .sb、.ga 这类。趣域、SAV、Cloudflare、Name.com、腾讯云、阿里云加起来三百多个域名,这么多年好像一个都没卖出去——当然我也没认真卖过,倒是买域名花了不少钱。
现在文章更新频率很低,每天忙着用 AI 做程序员的梦。做外贸没吃的苦,全特么吃到这儿了:熬夜是小事,思路卡住就拽头发,感觉都快秃了。公司外贸从订单到销售的整套系统、自己的博客 Utterlog、图床平台
toimg.com、单机/自托管图床
LitePic,再加上别的零碎,
projects 里三十多个项目。每天除了固定几块,逮着哪个顺眼就完善哪个。除了 WordPress 插件,主题我一个都还没开源。
再说这张图床。其实我自己真正「重度用图床」的场景并不多。项目大概从去年下半年开始写,很长一段时间都是个人版:上传、转格式、压缩、外链,主要是我和 菲克 在用。中间大大小小修了几十次;印象里连同这次,整体推倒重来级别的大改也有好几轮——页面风格、目录结构、队列和存储,动起来都不小。
好景不长的是:刚改完一版,睡一觉又能把自己否定掉。五一前后又折腾过一轮;平时周五早上四五点起来写也是常态。最近为了把架构和交互再捋顺,Codex、Claude 轮着上——审查、大段实现、再核查——token 烧得很凶。按标价算很吓人,还好多半是订阅,真实成本没那么夸张;但到发这篇的时候,也还谈不上「完全收工」,后面大概还得继续磨。
中间也试过让别的模型「简单改改就行」。AI 太主动:加功能容易臃肿,一说删又删出一串问题,再回头修。后来基本是 Codex 扛实现、再交叉检查,比单靠一个模型稳一点。
LitePic 是什么
轻量自托管图床:PHP + SQLite,推荐 FrankenPHP(内置 Caddy)一条命令跑起来;也支持 Nginx / 宝塔(记得配伪静态)。默认仍是单管理员;需要时再在设置里打开多用户。
设计上坚持先入库,再处理:上传只把原图安全落下,缩略图、压缩、WebP/AVIF、水印、远程同步进队列异步做。某个环节挂了,原图和库里的记录也不至于一起丢。



功能概览(按现在的 3.7)
上传
- 点击 / 拖拽 / 粘贴上传
- 多文件队列,失败可单独重试
- 上传后即时返回链接
- 常见图片格式:JPG、PNG、GIF、WebP、AVIF、HEIC、SVG、ICO、BMP、TIFF 等
- 允许格式与处理策略可在后台改
- 磁盘文件名随机化,原名仅作展示
图片处理(异步队列)
- 缩略图、压缩(TinyPNG / ImageMagick / GD)
- 自动转 WebP / AVIF,可保留或丢掉原图
- 文字水印 / PNG 水印,可上传字体
- Worker:请求后 drain / Cron / 后台手动触发
图库与相册
- 图库批量选择、删除、侧栏信息
- 相册:公开 / 未列出 / 私密 / 密码;宫格或瀑布流公开页
- 访问次数统计(可选)
- 复制 URL / HTML / Markdown / BBCode
多用户(可选,默认关)
- 关闭:和以前一样,管理员密码 + Passkey
- 邀请制 / 开放注册:每人独立图库、相册与配额
- 可选 Google / GitHub 登录、SMTP 发邀请邮件
- 设置 → 基础 → 多用户模式,保存后再配用户 / 邀请码 / 登录 / 邮件
远程存储
- S3 兼容:Cloudflare R2、AWS S3、MinIO、B2 等
- WebDAV 客户端(坚果云 / Nextcloud / 群晖等;不是搭 WebDAV 服务端)
- 远程备份(本地为主)或云端存储(链接走远端公网域名)
- 同时只启用一种后端;本地删除后远端延迟清理
Telegram
- Bot 白名单发图入库、可归到相册
- 适合自己给自己「聊天即上传」
API 与后台
/api/v1:上传、导出、队列 drain 等- API Key / Bearer Token(多用户下也可发用户自己的 Token)
- 设置页路径化 + PJAX;配置落在 SQLite(不再依赖改
.env) - SQLite 热备份、残留清理、在线更新
- Passkey / WebAuthn、登录限速、CSRF、MIME 校验、Referer 防盗链
部署与体验
- 自定义图片链接前缀(如
/img/) - 亮色 / 暗色 / 跟随系统
- Tailwind CSS v4,响应式后台
更细的安装说明、宝塔伪静态、升级注意,写在官网文档和 GitHub README 里了。
我还算听劝,时间也还挤得出一点。有意见直接说,能当天改的我尽量当天改,别不好意思。为了方便及时反馈,可以评论或者加LitePic 用户交流反馈QQ群:1041444750
页面加载完成后异步读取仓库信息。