收起左侧

别让写真集躺平在 NAS 里!部署 Photonix 让照片 “开口说话”!

4
回复
167
查看
[ 复制链接 ]

30

主题

8

回帖

0

牛值

fnOS系统内测组

社区上线纪念勋章

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 交互能力可以实现实时对话,那将是开辟另外一个照片交互体验。

综合推荐:⭐⭐⭐⭐(写真集,多了一个好去处)

使用体验:⭐⭐⭐⭐(属于是打开新世界大门)

部署难易:⭐(非常简单)

收藏
送赞
分享

14

主题

114

回帖

195

牛值

共建版主

社区上线纪念勋章社区共建团荣誉勋章

lol本宅狂喜

4

主题

18

回帖

0

牛值

江湖小虾

**

3

主题

435

回帖

0

牛值

社区共建团

对这类应用总有点不放心,怕数据被上传。。。

4

主题

18

回帖

0

牛值

江湖小虾

不能用

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则