← 返回项目库

中文自托管图床与图片管理|PicHost

给站长、内容团队和NAS用户搭建自己的中文图床:在浏览器上传图片、搜索图库、查看尺寸与链接,并把图片和SQLite数据保留在自己的存储中。

PicHost是一套可自托管的中文图片上传与管理应用。本次固定原版本1.4.1源码,使用Node.js22构建真实Nuxt/Nitro应用,SQLite与图片存放在独立Docker数据卷。 已通过真实浏览器首次创建管理员、上传两张本地生成演示图、图库回读、文件详情与链接、中文标签创建及文件名搜索;同一应用容器重启后图片与标签仍可回读。交付源码包另在不同目录重新构建并重复验证,上架配图来自本次实际操作。 按原依赖允许范围升级Nuxt、sharp与Tiptap并关闭开发工具;生产镜像移除直接开发依赖;修复中文文件名被ASCII白名单替换为下划线的问题,保留路径剥离与危险字符过滤。依赖审计结果为本次运行记录,不替代全面安全审核。 当前验证使用本地存储和单管理员账号。外部对象存储、验证码、多人隔离、恢复迁移和Twikoo均未验收;默认只绑定本地地址,正式外网使用需配置HTTPS、访问控制和备份。原GPL-3.0-only许可证保留,不含额外商业授权。

真实界面

项目截图

共 9 张

中文图片上传工作台:原生中文上传入口与本地存储设置。
两张图片上传成功:两张演示图经真实上传控件写入存储。
中文图库与文件列表:图库回读两张真实上传图片。
图片详情与链接:详情显示真实图片尺寸和链接。
创建中文标签:实际创建营销素材标签。
按名称搜索图片:输入活动海报后显示匹配的一张图片。
本地图片持久化存储:实际本地存储配置与使用情况。
实际图片操作日志:回读真实操作产生的日志。
重启后图片与数据保留:应用容器重启后图片与标签仍可回读。

Capabilities

核心功能

✓图片上传:通过实际文件选择控件上传本地SVG演示图并写入存储。
✓图库浏览:显示真实文件、存储位置与上传信息。
✓文件名搜索:输入活动海报后仅显示匹配的图片。
✓图片详情:查看实际尺寸、格式、大小及可用图片链接。
✓中文标签:创建营销素材标签并通过数据库接口回读。
✓持久化存储:图片和SQLite保存在独立数据卷,容器重启后数据保留。
✓操作记录:查看真实图片上传与中文标签创建产生的日志。

适用场景

站长维护博客或网站配图,在自己的存储中保留图片与链接。
内容团队按文件名查找活动海报与产品展示素材。
NAS用户部署本地中文图片管理入口。
开发者基于固定源码扩展上传或图库界面。

适合谁

希望自建图片存储的站长、内容运营团队、NAS使用者,以及需要基于真实源码定制图床流程的开发者。

商业化思路

可提供自托管部署、中文页面配置、图片管理流程定制和备份运维服务;商用及分发需履行原GPL-3.0-only义务,本交付不承诺额外授权。

你会拿到什么

  • ✓源码下载包:固定提交的实际源码、GPL-3.0-only许可证、兼容依赖锁、Dockerfile、持久化Compose与中文部署说明。
  • ✓项目页配图:本次真实业务操作的原始中文截图,独立于源码ZIP保存。
  • ✓独立验收资料:冻结包校验、不同目录构建、实际依赖审计及业务状态记录,不声称全部打入源码ZIP。

部署流程

  1. 1安装Docker及Compose,解压源码并保留完整目录。
  2. 2执行 docker compose -f qingshen-compose.yaml up -d --build,等待源码构建和服务启动。
  3. 3访问 http://127.0.0.1:18349/,按中文引导创建自己的管理员账号和强密码。
  4. 4上传一张图片并打开图库,检查文件可见与链接可用。
  5. 5通过具名卷保存/data下SQLite与图片;停止只使用down,删除卷会丢数据。
  6. 6外网使用前配置HTTPS反向代理、访问控制、域名与备份。

真实验证结果

2026-09-28,固定提交6cc4f27f7d5ad525243c587ac61d66f952f4e2c2,原版本1.4.1;Docker Node22实际构建,冻结包不同目录npm ci重新构建。已验证单管理员初始化、两张演示图UI上传、图库、搜索、详情、标签创建及同容器重启持久化;实际冻结包构建镜像npm audit --omit=dev为0;中文文件名安全白名单修复另通过9项针对性回归,图片类型校验和HTML输出转义保留。 正式修复交付版本 verified-run-2982 已走受保护发布,公开项目及九图已独立回读。

部署前须知

• GPL-3.0-only需履行许可义务,不包含额外商业授权。 • 只验收本地存储与单管理员;S3/OSS/R2、Turnstile、多用户隔离、Twikoo及备份恢复迁移未验收。 • 首次构建需要获取Node22镜像和npm依赖;默认只绑定本地地址。 • 图片与SQLite为持久化数据,升级或迁移前应备份,不能直接删除数据卷。 • 依赖审计通过不等于经过全面安全渗透测试。

部署难度

中等

最低配置

支持 Docker 与 Compose;使用 Node.js 22 镜像,首次构建需联网,图片与 SQLite 使用具名卷持久化 /data。

开源许可证

GPL-3.0-only

最后验证

2026-09-28

技术栈

Node.js 22Nuxt 4.5.2Vue 3SQLiteDocker Compose原生中文

授权说明

已检测到原项目许可证文件:LICENSE;发布前仍需人工复核署名和商用边界。

Release notes

版本记录

1 个已发布版本

verified-run-2982

2026-09-28:固定PicHost上游1.4.1提交6cc4f27f7d5ad525243c587ac61d66f952f4e2c2。按兼容范围升级Nuxt4.5.2、sharp0.35.5与Tiptap3.31.3,关闭devtools、移除直接开发依赖;修复中文文件名被ASCII白名单替换为下划线的问题,保留路径剥离/危险字符过滤及图片类型校验/HTML转义,9项针对性回归通过。冻结包异目录源码构建后实际完成管理员初始化、两图UI上传0→2、图库/详情、中文标签0→1、按文件名搜索、2条上传+1条标签操作日志、同一容器重启后数据保留与列表切换;九张原始中文配图逐张独立审核与公开SHA回读一致。最终运行镜像npm audit --omit=dev为0,不替代全面安全审计。修改来源与文件SHA见包内qingshen-adaptation.json。

部署要求:支持Docker与Compose;源码使用Node.js22构建,首次需要联网获取镜像与npm锁定依赖。解压后执行docker compose -f qingshen-compose.yaml up -d --build,访问http://127.0.0.1:18349/按引导创建自己的管理员和强密码。SQLite及图片保存在具名卷/data;应用重启可保留,不要执行down -v。外网部署需自行配置HTTPS反向代理、域名、访问控制与备份。

已知问题:仅验收本地存储和单管理员;S3/OSS/R2、验证码、多用户隔离、备份恢复/迁移及Twikoo未验收。9图为项目页配图及独立验收资料,不声称全部包含在源码ZIP。GPL-3.0-only许可证与作者信息保留,分发/修改/商用须履行原许可义务,不含额外商业授权。依赖审计0不等于已完成全面渗透或生产安全验证。

登录后领取