[开源] PicHost - 自托管个人轻量图床

1538 字
8 分钟
[开源] PicHost - 自托管个人轻量图床

博客写久了,配图是刚需。市面上图床功能越堆越满——相册、社交、付费套餐——对我这种只给自己和评论区用的场景来说反而太重。我更在意几件事:数据在自己手里不绑某家图床的政策和续费自己不删就尽量一直在

PicHost 就是为此做的:个人轻量图床,图片放好,管理也要顺手。从最早蹭 Cloudflare R2 的实验版,到推倒重来的 Docker 自托管,再到现在的 v1.4.0——标签、备份、多后端、Twikoo 兼容都齐了,一条 docker run 就能跑。部署细节、环境变量、API 字段见 用户文档;这篇只聊它是什么、为什么值得试、现在长什么样

O96u
/
PicHost
Lightweight self-hosted image hosting — Docker, multi-user, gallery & API, local disk or S3-compatible storage.
GPL-3.0
TypeScript

它解决什么问题#

阶段当时的痛点PicHost 的回应
v0(CF 版,已归档)博客配图,想蹭 CF 免费额度R2 + Worker 双域出图,Referer 防盗链
接上 Twikoo评论发图不想绑收费官方图床EasyImage 2.0 兼容 + 独立上传 Token
v1.0CF Dashboard 运维成本高、配置易被 deploy 覆盖Docker 零配置引导、本地盘 + SQLite、多用户
v1.1–v1.2想接回对象存储,目录模型要收拢S3 多后端、双域名分离、统一 images/
v1.3–v1.4(当前)图多了要分类、数据要能整包带走标签打标、.phost.tar.gz 备份恢复、跨后端同步

CF 版教会我防盗链和双 Token;Docker 版让我把图床和数据一起挂在 NAS 或 VPS 上,不必再跟 Cloudflare Dashboard 较劲cloudflare 分支仍保留 R2 专版,在线演示见 pic.roven.cc


现在长什么样#

后台基于 Nuxt 4 + Nuxt UI 4,默认暗黑、中英文切换。登录支持本地滑块、Cloudflare TurnstileCap 人机验证——管理员在设置里一键切换。上传区支持拖拽、点击、Ctrl+V 粘贴;入库前 sharp 转 WebP,体积稳得住。

上传#

上传完一键复制直链 / Markdown / HTML;卡片背面可调客户端预压缩、自动复制链接、按用户自动删除——写博客时少切几次窗口。

PicHost 上传页
PicHost 上传页

图库#

/gallery 替代了旧版统计页:网格 / 列表切换,按存储、来源、标签筛选(OR / AND),批量删除与批量打标;点图弹出详情层,尺寸、上传方式、多格式链接一目了然。

PicHost 图库
PicHost 图库

标签#

v1.4 的重头戏。每用户独立标签、彩色标记;上传后单张或批量打标,设置页里新建、改色、合并、删除。图库堆了几百张截图之后,按标签筛比按文件名搜省心太多。

PicHost 标签管理
PicHost 标签管理

存储与备份#

本地磁盘和 S3 兼容后端(R2 / COS / OSS / AWS)可混用;存储页导出整站 .phost.tar.gz、从备份恢复、跨后端同步,任务中心看进度。换机器或升大版本,整包带走比对着旧目录手工 migrate 踏实——v1.3 起遗留迁移 CLI 已移除,备份恢复是官方推荐路径。

PicHost 存储管理
PicHost 存储管理

设置、API 与日志#

Referer 白名单、单域 / 双域名分离、全局与个人 API Token 都在设置里;API 页带在线调试。操作日志记录上传、删除、登录、设置变更、标签操作等,管理员可按用户、日期、来源筛选——偶尔查「谁删了这张图」有用。

PicHost 系统设置
PicHost 系统设置

PicHost API 页
PicHost API 页

PicHost 操作日志
PicHost 操作日志

首次部署走 Web 引导创建管理员,也支持从备份包直接恢复——不用预先写密钥,容器起来就能用。

PicHost 首次设置
PicHost 首次设置


几个我自己用得上的点#

  • 多用户:管理员可开放注册,普通用户只看到自己的图;每人独立 API Token,脚本上传归属清晰。
  • Twikoo 评论配图POST /api/index.php 兼容 EasyImage 2.0,评论发图和正文配图走同一套图床;Referer 白名单记得把博客域名(含 www)都加上。
  • 双域名分离:管理域和图片域拆开,中间件自动隔离;配错了有 clear-domains CLI 兜底。
  • 服务端 WebP + 防盗链:入库压缩 + 可选 Referer 白名单,个人博客量级够用了。
  • GPL-3.0 开源github.com/O96u/PicHost 欢迎 Star、Issue 和 PR。

想试的话#

Terminal window
docker run -d \
--name pichost \
-p 6892:6892 \
-v ./data:/data \
--restart unless-stopped \
muxui/pichost:latest

浏览器打开 http://<主机IP>:6892,按引导完成设置即可。反代、HTTPS、双域名、Twikoo 对接、cURL 示例——统统在 用户文档,不在这篇重复抄说明书。


版本轨迹#

  1. 2026-09-09
    v1.4.0

    标签系统:每用户独立标签、彩色标记;上传后单张/批量打标;图库 OR/AND 筛选;操作日志扩展至登录、设置变更、标签操作;API 支持标签 CRUD 与 tagIds

  2. 2026-09-07
    v1.3.0

    整站导出/恢复 .phost.tar.gz;跨后端同步与任务中心;setup 未初始化时可从备份恢复。移除遗留 migrate CLI,由备份恢复与启动索引同步替代。

  3. 2026-09-01
    v1.2.6–v1.2.8

    设置/图库/存储/API 页 UI 重构;登录验证支持 Turnstile / Cap;双域名保存风险确认与 clear-domains CLI。

  4. 2026-08-31
    v1.2.5

    图库页(/gallery)替代原统计导航;图片详情弹层、全选/反选;移除 /stats 路由。

  5. 2026-08-30
    v1.2.2

    双域名设置保存误清空管理域、未知 Host 绕过隔离等修复;文档站新增更新日志。

  6. 2026-08-29
    v1.2.1

    登录滑动拼图验证;VitePress 文档站发布至 o96u.github.io/PicHost

  7. 2026-08-28
    v1.2.0

    本地图片统一进 data/images/;启动时自动扫描补索引。

  8. 2026-08-26
    v1.1.0

    S3 多后端、/storage 存储管理页;操作日志与上传限流。

  9. 2026-08-23
    v1.0

    Docker 自托管首发:多用户、Web 引导、Twikoo 兼容、服务端 WebP。CF R2 版归档至 cloudflare 分支。

  10. 2025 前后
    v0(CF 版,已归档)

    Nuxt + R2 + Worker;运维成本高,后推倒为 Docker 版。


写在最后#

PicHost 的演进很直白:先为博客配图再为 Twikoo 评论配图把运维成本打下来把目录和备份模型理顺最后用标签让图库真正能管

若你也在 Firefly + Twikoo 这条路上,或者只是想找一套能 docker run、数据能整包带走的自托管图床,去 GitHub 点个 Star,部署遇到问题文档站里有答案,也欢迎 Issue 或评论区聊。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

[开源] PicHost - 自托管个人轻量图床
https://muxui.com/posts/pichost-cloudflare-r2-image-host/
作者
Muxui
发布于
2026-08-03
许可协议
CC BY-NC-SA 4.0
随机文章随机推荐

评论区

Profile Image of the Author
Muxui
写代码、记笔记,把折腾过的东西留给未来的自己。
公告
欢迎来到我的博客!这是一则示例公告。
统计
分类
标签
站点统计
文章
23
分类
3
标签
28
总字数
56,129
运行时长
0
天气预报
定位中...
----
高温 --°C / 低温 --°C
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.6
文章许可
CC BY-NC-SA 4.0