现代化极简图片管理系统
Photomato 是一款基于 Go 和 React 构建的图片管理应用,支持本地目录和 S3 云存储的统一管理。
- 高性能浏览:虚拟滚动、自适应网格、全屏灯箱
- 多端适配:响应式布局,支持 PWA 安装
- 混合存储:本地目录 + S3 兼容存储(AWS、MinIO、R2 等)
- 热配置:无需重启即可添加/修改存储源
- 主题定制:多套主题色,一键切换
使用 Docker 部署是体验 Photomato 最简单、最快捷的方式,无需配置复杂的开发环境。
确保本地已安装 Docker 及 Docker Compose。
git clone https://github.com/Garonix/photomato.git
cd photomato在项目根目录下执行以下命令:
# 构建镜像
docker build -t garonix/photomato .
# 启动服务
docker compose up -d容器启动后,请在浏览器中访问:http://localhost:8181
注意:
- Docker 部署模式下,服务默认映射至宿主机的
8181端口。- 初次启动会自动创建
config、photos、cache目录。- 你可以直接修改
compose.yaml文件来调整端口映射或数据卷挂载路径。
Photomato 支持常见的图片和视频格式:
| 类型 | 支持的格式 |
|---|---|
| 图片 | JPEG, PNG, GIF, WebP, BMP, TIFF, HEIC/HEIF |
| 视频 | MP4, MOV, AVI, MKV, WebM(需要 FFmpeg 插件) |
Apple 设备(iPhone、iPad)拍摄的照片默认使用 HEIC 格式。Photomato 内置原生 HEIC 解码支持(基于 gen2brain/heic 库),无需安装任何外部依赖。
Docker 和本地源码运行均可直接处理 HEIC 文件。
如果您需要进行二次开发或调试,可以选择本地源码运行。
- Go 1.22 或更高版本
- Node.js 18 或更高版本
git clone https://github.com/Garonix/photomato.git
cd photomato后端服务负责图片扫描、缩略图生成及 API 响应。
# 获取依赖并运行
go mod download
go run cmd/server/main.go服务默认运行在 8080 端口。首次运行会自动创建 photos 目录和 config/app-config.yaml 配置文件。
前端提供用户交互界面。
cd web
npm install
npm run dev访问终端输出的本地地址(通常为 http://localhost:5173)即可开启体验。
配置文件位于 config/app-config.yaml。虽然你可以手动修改此文件,但推荐直接在网页端的「设置」页面进行可视化配置。
配置示例:
version: 1.0.0
theme_color: '#f97316'
port: 8080
aliases:
- name: "我的摄影集"
type: "local"
path: "/Users/username/Pictures/Photography"
- name: "云端备份"
type: "s3"
endpoint: "s3.amazonaws.com"
bucket: "my-backup-bucket"
access_key: "AKIA..."
secret_key: "Secret..."
region: "us-east-1"Copyright © 2026 Photomato. All rights reserved.