AI智能摘要
Afilmory是一个使用React和TypeScript构建的个性化照片画廊网站项目,具有高性能WebGL渲染、EXIF信息显示及缩略图生成功能。支持从S3、GitHub等多存储源自动同步照片,并提供HEIC/HEIF、TIFF、Live Photo及HDR图像格式的支持。借助Fujifilm模拟设置、文件系统自动标签及并发处理,实现便捷管理。地理可视化方面,支持通过MapLibre显示带GPS坐标的照片。该项目可通过配置文件进行自定义,并使用Docker或Docker Compose部署和运行。
— 此摘要由AI分析文章内容生成,仅供参考。
项目地址:Afilmory/afilmory: A personal photography website celebrating the art of capturing moments with a nostalgic, retro vibe. Blending aperture, film, and memory.
项目介绍
使用 React + TypeScript 构建的现代照片库网站,支持来自多个存储源(S3、GitHub)的自动照片同步,具有高性能 WebGL 渲染、EXIF 信息显示、缩略图生成等功能。
功能特性
图像处理
- 🔄 HEIC/HEIF 格式支持 – 自动转换 Apple 设备 HEIC 格式
- 📷 TIFF 格式支持 – TIFF 格式的自动转换
- 🖼️ 智能缩略图生成 – 多尺寸缩略图,优化加载性能
- 📊 EXIF 信息显示 – 完整的拍摄参数,包括相机型号、焦距、光圈等
- 📱 Live Photo 支持 – 检测和显示 iPhone Live Photos
- ☀️ HDR 图像支持 – 显示 HDR 图像
高级功能
- 🎛️ Fujifilm Recipe – 读取和显示 Fujifilm 相机胶片模拟设置
- 🏷️ File System Tags – 基于文件系统自动生成的标签
- ⚡ 并发处理 – 多进程/多线程并发处理支持
- 🗂️ 多存储支持 – S3、GitHub 和其他存储后端
- 📷 共享图像 – 将图像共享到社交媒体或将 iframe 嵌入您的网站
- 🗺️ 交互式地图浏览器 – 使用 MapLibre 对来自 EXIF 数据的照片进行带有 GPS 坐标的地理可视化
界面预览

安装部署
fork项目到你的仓库
1.修改配置文件
config.json
{
"name": "Your Photo Gallery", // 网站名称
"title": "Your Photo Gallery", // 页面标题
"description": "Capturing beautiful moments in life", // 网站描述
"url": "https://", // 个人 URL
"accentColor": "#fb7185", // 主题色
"author": {
"name": "Your Name",
"url": "https://your-website.com",
"avatar": "https://your-avatar-url.com/avatar.png"
},
"social": {
"twitter": "@yourusername"
},
"extra": {
"accessRepo": true
}
}
builder.config.json
{
"storage": {
"provider": "s3",
"bucket": "my-photos",
"region": "us-east-1",
"prefix": "photos/",
"customDomain": "https://cdn.example.com",
"endpoint": "https://s3.amazonaws.com"
}
}
.env
S3_ACCESS_KEY_ID=your_access_key_id S3_SECRET_ACCESS_KEY=your_secret_access_key
2.构建 Docker 镜像
git 工程文件到本地(默认在root下),并进入目录打开终端,然后构建即可
git clone https://github.com/Afilmory/docker.git #下载压缩包 cd docker #进入目录
docker build -t iris-gallery .
3.运行容器
docker run -p 3000:3000 iris-gallery
或者使用 Docker Compose,注意compose.yml文件、.env文件和config.json文件放在同一个目录下
version: '3.8'
services:
iris-gallery:
build: .
ports:
- '3000:3000'
environment:
- NODE_ENV=production
volumes:
- ./config.json:/app/config.json
- ./builder.config.json:/app/builder.config.json
- ./.env:/app/.env
端口号可自行修改。
发布者:木木,转载请注明出处:https://blog.huzz.cn/8849.html
微信
支付宝