Photonix:
一个极简、AI 驱动的智能相册,专为现代 Web 设计。它集成了 PWA、流式加载、多数据库架构和高性能缓存,旨在提供极致的浏览体验和智能的交互方式。

主要特性:
🎭 AI 智能交互
- • AI 画中密语:AI 扮演照片人物,沉浸式对话体验
- • 多模型支持:兼容 OpenAI、Claude、Gemini 等主流视觉模型
- • 自定义提示词:支持多种AI角色设定,从温馨对话到私密互动
- • 异步任务处理:AI内容生成采用 BullMQ 队列机制,避免阻塞用户界面
- • 智能缓存:AI生成内容 Redis 持久化缓存,降低 API 成本
- • 任务去重:相同图片自动复用已有结果,优化性能
- • 提示词模板:内置多种对话风格模板,可参考 AIPROMPT.md
🖼️ 图片管理
- • 流式图片加载:大相册极速响应,懒加载优化
- • 智能缩略图:自动生成多尺寸缩略图,支持失败重试机制
- • 视频处理:自动视频优化,支持多种格式转码
- • 双图片布局:响应式瀑布流/网格模式,自适应屏幕尺寸
🔒 安全防护
- • 一键全局模糊:键盘单击 B && 三指触摸屏幕
- • 密码保护:可选密码访问,支持公开/私有模式切换
- • 路径校验:严格的文件路径安全检查
- • 速率限制:API访问频率控制,防止滥用
🚀 性能优化
- • 多数据库架构:主数据库、设置数据库、历史记录数据库、索引数据库分离
- • Redis 高性能缓存:AI内容与搜索结果持久缓存
- • Worker 线程池:缩略图生成、AI处理、索引重建多线程并发
- • 智能索引:SQLite FTS5全文搜索,支持模糊匹配
📱 用户体验
- • PWA 支持:可安装、离线访问,移动端手势切换
- • 响应式设计:完美适配桌面端和移动端
- • 触摸手势:移动端滑动切换图片/双指缩放/三指模糊
- • 键盘导航:桌面端键盘快捷键操作
- • 搜索历史:智能搜索历史记录,快速重复搜索
🛠️ 运维友好
- • Docker 部署:一键部署,环境隔离
- • 健康检查:容器健康状态监控
- • 日志系统:结构化日志,便于问题排查
- • 数据迁移:自动数据库迁移,平滑升级
安装
Docker Compose
services:
app:
image: heizi**/photonix:latest
container_name: Photonix
ports:
- 12080:13001
environment:
- PORT=13001
- NODE_ENV=production
- LOG_LEVEL=info
- PHOTOS_DIR=/app/photos
- DATA_DIR=/app/data
- REDIS_URL=redis://redis:6379
- JWT_SECRET=OSGvnF4dZ5YUyv3WwSHQhKHGhRd2lL5w
- ADMIN_SECRET=RdKqLIQ3MOOOmJN1qo25Q621tH9K8A1f
volumes:
- ./photos:/app/photos
- ./photonix_data:/app/data
restart: unless-stopped
depends_on:
- redis
redis:
image: redis:7-alpine
container_name: Photonix-redis
command: redis-server --appendonly yes
volumes:
- ./redis_data:/data
restart: unless-stopped
参数说明(更多参数建议去看文档)
:::tips
PORT(环境变量):服务监听端口
NODE_ENV(环境变量):运行模式
LOG_LEVEL(环境变量):日志级别
PHOTOS_DIR(环境变量):媒体库根目录
DATA_DIR(环境变量):日志级别
REDIS_URL(环境变量):Redis 连接地址
JWT_SECRET(环境变量):替换为 32+ 位强随机字符串
ADMIN_SECRET(环境变量):管理员密码,替换为 32+ 位强随机字符串
:::
使用
浏览器中输入 http://NAS的IP:12080
就能看到界面

将图片放入映射的图片目录(可创建文件夹进行分类管理)

图片将自动生成缩略图并加载展示

支持两种布局切换:网格布局和瀑布流布局

点击打开照片的展示效果

点击页面右上角,打开设置弹窗

安全,如果是放到外网分享,建议启用访问密码

其他人访问就需要输入密码才能查看

AI 密语,这也是整个项目最特别的地方了,按要求填写 AI 配置(调用的模型需要支持视觉)

开启 AI 功能后,图片底部就多了一个对话按钮

AI 会自动识别图片内容并提供交互,如果后面可以加上对话就回复更有意思了

系统状态,如果照片不显示可以在这里重新同步和设置

生成缩略图时,资源占用情况

扩展
因为我打包的镜像后面不会持续一直更新,如果需要构建项目,可以参考下面的步骤
来到 Github 下载项目:https://github.com/li88iioo/Photonix

解压 ZIP 文件,打开 env.production 文件

修改一下密钥和口令(生成一个 32 位字符串即可)

将整个文件夹,上传到 NAS 设备上

重命名 env.production 文件为 .env

创建项目,选择上面的文件夹路径,会自动导入模板

修改一下相册存放路径,这里我就放到当前目录

其他默认即可,点击确认

如果容器一直重启,可能权限问题,可以递归一下权限(还是不行,修改配置模版给最高特权)
sudo chmod -R 777 /vol1/1000/docker/photonix

总结
Photonix 作为一款极简风格的 AI 驱动智能相册,和我所遇到的其他所有相册都不同,别人的 AI 功能都是人脸识别,场景分类。而它的核心优势在于 AI 交互,同时也抓住了展示内容方向为写真集,这个一搭配属于是 1+1>2 的效果了。通过 AI 赋予照片中人物 “对话能力”,让静态写真焕发互动生命力。当然由于功能还比较简单,期待后续版本能够集成上传图片和管理功能,以及加强 AI 交互能力可以实现实时对话,那将是开辟另外一个照片交互体验。
综合推荐:⭐⭐⭐⭐(写真集,多了一个好去处)
使用体验:⭐⭐⭐⭐(属于是打开新世界大门)
部署难易:⭐(非常简单)