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