Skip to content

ikxin/markhub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Markhub

Markhub 是一个基于 Gin 的小型图片代理服务,用于代理头像和网站图标。网站图标会通过 govips 调用 libvips 进行标准化处理。

环境要求

  • Go 1.25 或更高版本
  • libvips 和 pkg-config

macOS:

brew install vips pkg-config

Debian/Ubuntu:

apt-get update
apt-get install -y libvips-dev pkg-config

开发

启动服务,默认地址为 http://localhost:3000:

go run ./cmd/markhub

可以通过 HOSTPORT 覆盖监听地址:

HOST=127.0.0.1 PORT=8080 go run ./cmd/markhub

运行测试:

go test ./...

路由

  • GET /github/:id?id
  • GET /github/:username
  • GET /gravatar/:hashOrEmail
  • GET /qq/:number
  • GET /telegram/:user
  • GET /opencollective/:user
  • GET /favicon/:host

响应会设置 Cache-Control: max-age=2592000。服务会先从各 provider 获取高分辨率源图,再默认标准化为 100x100 WebP 图片。

可以通过受支持的后缀指定输出格式: .webp.jpg.jpeg.png.avif.gif。无后缀时,可以通过 formatfmt 查询参数指定输出格式。优先级为: 路径后缀、formatfmt、默认 WebP。非法格式值会继续尝试下一优先级,全部非法时回退为 WebP。

可以通过 sizes 查询参数修改输出尺寸,最大为 2048x2048。上游请求失败时,会返回对应 provider 的 fallback 图片,并使用同样的输出格式规则。

Docker

构建并运行:

docker build -t markhub .
docker run --rm -p 3000:3000 markhub

About

基于 Hono 构建的视觉标识中心,集成多个平台用户头像,为 Web 开发者和开源项目提供统一的标识解决方案。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors