Photoview:
一个简单且用户友好的照片画廊项目,专为摄影师打造,旨在提供一种便捷、快速的方式来浏览包含数千张高分辨率照片的目录。

主要特点:
- • 与文件系统紧密关联:网站展示服务器本地文件系统中的图像,目录映射为相册。
- • 用户管理:每个用户创建时会关联本地文件系统的一个路径,该用户可访问该路径下的照片。
- • 分享功能:相册和单个媒体文件可通过公共链接轻松分享,链接还可选择设置密码保护。
- • 为摄影而生:支持 RAW 文件格式和 EXIF 解析。
- • 视频支持:支持多种常见视频格式,并会自动为网络优化视频。
- • 人脸识别:自动检测照片中的人脸,将同一人的照片分组。
- • 高性能:自动生成缩略图,照片仅在屏幕上可见时才加载,全屏模式下先显示缩略图,直至高分辨率图像完全加载。
- • 安全性:所有媒体资源均受 cookie 令牌保护,密码均经过适当哈希处理,API 使用严格的 CORS 政策。
在线演示站点:
网址:https://photos.qpqp.dk
用户名:demo
密码:demo
安装
Docker Compose(SQLITE 数据库)
services:
photoview:
image: photoview/photoview:2
container_name: photoview
user: root
ports:
- 8008:80
environment:
- PHOTOVIEW_DATABASE_DRIVER=sqlite
- PHOTOVIEW_SQLITE_PATH=/home/photoview/database/photoview.db
- PHOTOVIEW_MEDIA_CACHE=/home/photoview/media-cache
- PHOTOVIEW_LISTEN_IP=0.0.0.0
- PHOTOVIEW_LISTEN_PORT=80
volumes:
- /vol1/1000/docker/photoview/cache:/home/photoview/media-cache
- /vol1/1000/docker/photoview/database:/home/photoview/database
- /vol1/1000/docker/photoview/photos:/photos
- /etc/localtime:/etc/localtime
restart: unless-stopped
参数说明(更多参数设置建议去看文档)
:::
PHOTOVIEW_DATABASE_DRIVER(环境变量):数据库类型(mariadb、sqlite 或 postgres)
PHOTOVIEW_SQLITE_PATH(环境变量):SQLITE 数据库路径
PHOTOVIEW_MEDIA_CACHE(环境变量):缓存路径
PHOTOVIEW_LISTEN_IP(环境变量):监听地址
PHOTOVIEW_LISTEN_PORT(环境变量):监听端口
MAPBOX_TOKEN(环境变量,可选):Mapbox 地图网站的 token,用于照片位置标注
:::
启动有可能会提示不能初始化,这是权限问题导致的
sudo chmod -R 777 /vol1/1000/docker/photoview

查看数据库映射路径,有文件就说明没问题了

TIP:
上面是使用 SQLITE 数据库,如果想用 MYSQL 数据库的可以用这个模板,当然也可以用官方的模板参数会更加详细。
Docker Compose(MYSQL 数据库)
services:
photoview:
image: photoview/photoview:2
container_name: photoview
user: root
depends_on:
- mariadb
ports:
- 8008:80
environment:
- PHOTOVIEW_DATABASE_DRIVER=mariadb
- PHOTOVIEW_MYSQL_URL=photoview:photosecret@tcp(mariadb)/photoview
- PHOTOVIEW_MEDIA_CACHE=/home/photoview/media-cache
- PHOTOVIEW_LISTEN_IP=0.0.0.0
- PHOTOVIEW_LISTEN_PORT=80
volumes:
- /vol1/1000/docker/photoview/cache:/home/photoview/media-cache
- /vol1/1000/docker/photoview/photos:/photos
- /etc/localtime:/etc/localtime
restart: unless-stopped
mariadb:
image: mariadb:lts
container_name: mariadb
environment:
- MARIADB_DATABASE=photoview
- MARIADB_USER=photoview
- MARIADB_PASSWORD=photosecret
- MARIADB_ROOT_PASSWORD=superphotosecret
volumes:
- /vol1/1000/docker/photoview/database:/var/lib/mysql
- /etc/localtime:/etc/localtime
restart: unless-stopped
使用
浏览器中输入 http://NAS的IP:8008
就能看到界面

首次进入需要先注册账号,下面的存储照片路径填写“/photos”

来到设置,修改语言为中文

为了更好的截图效果,我将主题设置为深黑

将图片放入照片路径

如果没有出现图片,可以手动点击扫描(如果没有显示左下角任务,有可能权限问题导致不行)

时间线,按照时间顺序排序,用来显示照片还是挺不错的

图片详情,可以看到图片的信息,也可以分享图片链接给其他人

打开照片浏览

相册,根据文件夹进行分类(这点还是挺符合个人使用习惯的)

TIP:
这里是用人脸识别的训练数据集作为测试的,一共 5 个人,各 100 张照片。大家如果有兴趣,也可以试试自己的识别率,这里分享测试数据照片: https://pan.baidu.com/s/1cqO_eJbL7acYSHi_dujxTg?pwd=1234
人物,可以调用 CPU 进行人脸识别(核显也行,不过这里没有配置),识别准确率一般般,但是起码是基本将人脸都识别出来了

对比飞牛的识别率(默认设置识别太低,改成了宽松一点)

设置,支持简单的多用户管理

总结
Photoview 是一款轻量实用的照片画廊,只需要映射相册目录即可快速体验,支持人脸识别功能和多用户管理。虽然存在些许局限 —— 如缺乏网页直接上传图片功能、人脸识别准确率有待提升、用户管理功能较简单等,但作为轻量级图片展示工具,其核心的展示与分享能力足够满足需求,尤其适合注重简洁体验、以展示分享为主要需求的用户。
综合推荐:⭐⭐⭐(适合展示和分享)
使用体验:⭐⭐⭐(简洁流畅,功能简单)
部署难易:⭐⭐(简单)