之前做过几次公共图床的小活动,都是借用别人的图床。用得多了以后,就一直想做一个真正属于自己的图床。

之前因为发小项目没发到内板,被禁言了三天。也正好趁这几天继续把这个项目完善了一下。

我不是程序员,更多是站在普通用户的角度去打磨这个项目:上传要顺手,外链要好复制,公共上传要能控,相册和图片管理也要够直观。

项目截图

项目简介

OU-Image Hosting,中文名 欧记图床,是一个面向个人创作者、开发者、小团队和自托管玩家的图床项目。

项目地址:https://github.com/cshaizhihao/ou-image-hosting

它不是网盘,也不是一次性临时上传脚本,而是一个偏长期使用的:

  • 自托管图床
  • 图片库
  • 相册管理面板
  • 公共上传入口
  • S3 / Cloudflare R2 图片托管工具

一句话概括:

图片放在自己手里,上传、整理、分享都尽量舒服一点。

为什么要做这个项目

很多朋友玩 VPS、独服、小鸡久了以后,都会遇到类似的问题:

  • 截图、教程图、博客图到底放哪里?
  • 发论坛、写文章、写文档时,图片外链怎么稳定?
  • 免费图床会不会删图、限流、压缩?
  • 对象存储很好,但配置起来是不是太麻烦?
  • 想自己搭一个图床,但不想同时折腾一堆脚本和配置?

所以有了 OU-Image Hosting / 欧记图床

它的定位很明确:给 MJJ、博客作者、开发者和小团队用的轻量自托管图床面板。

核心功能

OU-Image Hosting 目前主要支持这些能力:

功能说明
图片上传支持拖拽、粘贴、URL 上传和公共上传
外链复制支持 URL、Markdown、HTML、BBCode
图片管理支持搜索、筛选、收藏、回收站和批量操作
相册管理支持创建相册、设置封面、填写描述
权限边界支持管理员、子管理员、普通用户和访客
存储后端支持本地存储、Amazon S3、Cloudflare R2、S3-compatible
部署方式支持 Docker Compose 一键部署
运维能力支持更新、备份、恢复、回滚、诊断和日志查看

简单说,它就是一个自己可控的图床面板。

新手常见问题

为什么要自建图床?

主要是为了可控

免费图床刚开始用起来很方便,但时间久了可能会遇到:图片被压缩、加载慢、外链失效、平台限制流量、平台改规则、图片管理不方便、迁移困难等问题。

自建图床的好处是:

  • 数据在自己手里
  • 可以接 Cloudflare R2 / S3
  • 可以绑定自己的域名
  • 可以控制公开和隐藏
  • 可以备份、迁移、恢复
  • 发论坛、写博客、写文档都更稳定

当然,自建也意味着你需要维护服务器和存储。它更适合已经有 VPS,或者准备长期折腾一点点自托管服务的朋友。

Cloudflare R2 适合做图床吗?

比较适合。

R2 的优势是对象存储成本低,而且没有传统 S3 那种公网出口流量费用,对个人图床、博客图床、论坛发图这类场景比较友好。

OU-Image Hosting 支持:

本地存储
Amazon S3
Cloudflare R2
S3-compatible

如果只是自己玩,可以先用本地存储。如果图片比较多,或者希望后续迁移方便,建议直接使用 R2 / S3。

公共上传会不会有风险?

会,所以公共上传一定要有边界。

项目里把后台和公共上传做了分离:

  • 管理员后台是管理员自己的图片库
  • 普通用户只能使用公共图床和查看自己的上传历史
  • 游客上传不会混入管理员个人历史
  • 公共上传可以配置限制

目前公共上传相关能力包括:速率限制、每日额度、人机验证、IP 封禁、审计记录、公开/隐藏切换、上传历史分页和批量删除。

如果不想被坏哥们塞满奇怪图片,刚开始部署时不要无限制开放公共上传,这是血的教训。

适合完全新手吗?

适合有一点点 VPS 基础的新手。

如果你会 SSH 登录服务器:

ssh root@服务器IP

并且能复制一条命令到服务器执行,就可以尝试。

如果遇到网站打不开,也可以先用内置诊断命令:

ouih doctor

它会检查 Docker、端口、DNS、HTTPS、磁盘、内存和配置这些常见问题。

一键安装

在服务器上执行:

curl -fsSL https://raw.githubusercontent.com/cshaizhihao/ou-image-hosting/main/install.sh | bash

安装器会自动处理:

  • 系统依赖
  • Docker 环境
  • 项目配置
  • 反向代理
  • 服务启动

安装完成后,打开脚本提示里的访问地址,创建第一个管理员账号即可使用。

Cloudflare 用户提醒

如果你使用 Cloudflare 代理域名,建议提前确认:

DNS 已指向服务器 IP
SSL/TLS 设置为 Full (strict)
服务器放行 80 / 443 端口

无人值守安装示例:

curl -fsSL https://raw.githubusercontent.com/cshaizhihao/ou-image-hosting/main/install.sh \
  | bash -s -- --yes --origin https://img.example.com --proxy cloudflare --port 3080

日常维护命令

安装完成后,可以使用:

ouih

维护菜单

常用命令:

ouih status     查看服务状态
ouih logs       查看运行日志
ouih update     更新项目
ouih doctor     检查 Docker、端口、DNS、HTTPS、磁盘、内存和配置
ouih backup     创建备份
ouih restore    恢复备份
ouih rollback   回退最近一次成功更新
ouih url        查看访问地址
ouih dir        查看安装目录
ouih uninstall  卸载服务

网站打不开时,建议先跑:

ouih doctor

新手基本使用流程

1. 准备一台服务器

建议准备:

一台 VPS
一个域名,非必须但推荐
服务器开放 80 / 443 端口
SSH 登录权限

如果准备用 Cloudflare R2,也可以提前准备好 R2 存储桶和访问密钥。

2. 配置域名解析

如果你有域名,可以添加一条 DNS 记录:

img.example.com -> 你的服务器 IP

Cloudflare 用户建议把 SSL/TLS 设置为 Full (strict),并确认服务器 80 / 443 端口放行。

3. 执行安装命令

SSH 登录服务器后执行:

curl -fsSL https://raw.githubusercontent.com/cshaizhihao/ou-image-hosting/main/install.sh | bash

脚本会自动安装并启动服务。

安装过程 1

安装过程 2

安装过程 3

4. 创建管理员账号

打开安装完成后的访问地址,首次进入时创建第一个管理员账号。

创建管理员账号

创建完成后,就可以进入后台使用图床功能。

后台首页

5. 上传图片

进入后台后,可以上传图片。支持:

拖拽上传
粘贴上传
URL 上传
公共上传

也支持 HEIC / HEIF,以及 JPEG/HEIC + MOV Live Photo 动态片段这类图片场景。

上传图片

6. 复制外链

上传完成后,可以一键复制:

URL
Markdown
HTML
BBCode

复制外链示例

无论是发论坛、写博客,还是写 Markdown 文档,都会方便很多。

7. 管理图片和相册

后台可以对图片做整理:

搜索
筛选
收藏
回收站
批量操作

也可以创建相册:

设置封面
填写描述
批量加入图片
从图片详情返回原相册

8. 开放公共上传

如果你想给别人使用,可以开启公共上传。

建议同时配置:

速率限制
每日额度
人机验证
IP 封禁
审计记录

公共上传配置

技术栈

项目主要使用:

Next.js 15
React 19
Radix UI
CSS Modules
Fastify
TypeScript
Sharp
Docker Compose
Caddy
Vitest
Playwright
GitHub Actions

推荐使用场景

比较适合:

  • 经常写博客的人
  • 经常发论坛帖子的人
  • 想自己掌控图片外链的人
  • 想用 Cloudflare R2 / S3 做图床的人
  • 想给小团队提供图片上传入口的人
  • 想要一个轻量图片库和相册面板的人
  • 喜欢自托管服务的 MJJ

不太适合:

  • 想要完整网盘的人
  • 想要企业级 DAM 资产管理系统的人
  • 不想维护任何服务器的人
  • 只想临时传一张图就走的人

OU-Image Hosting 目前定位就是:简单、轻量、自托管,偏个人和小团队使用的图床面板。

安全边界

后台和公共上传默认分开。

普通注册用户只能使用公共图床和查看自己的上传历史;游客上传不会混入管理员个人历史,也不会误进后台。

后台不会展示用户密码,只提供重置入口。

公共上传建议配合限制使用,尤其是开放给外部用户时,不建议无限制裸奔。

文档和体验地址

项目文档包括:

部署文档
备份与恢复
安全模型
发布说明

图床体验地址:https://you1.gay/

开源地址:https://github.com/cshaizhihao/ou-image-hosting

欢迎 Star,也欢迎 Fork 二创。如果你正好需要一个自己的图床,希望这个项目能帮你少折腾一点。