三大开源自建相册深度测评:Photoview、PhotoPrism与PiGallery2的Docker部署指南
本期将分享并对比几款适合在NAS上通过Docker一键部署的开源照片墙与相册管理项目。
笔者认为,主流品牌NAS自带的官方照片服务已基本能满足日常需求,作为“NAS全家桶”的标配功能,它们经过持续迭代并引入了AI能力,变得愈发易用。
然而,也许您渴望一种更酷炫的照片展示方式?或者,您设备中存有大量精彩影像,希望无需复杂操作即可轻松分享?在这些场景下,官方套件可能略显保守。
目前有三个相对成熟的开源项目可供选择:Photoview、PhotoPrism以及PiGallery2。就个人体验而言,笔者更偏好PhotoPrism。
关于近期热门的Immich相册工具,部分朋友问及,争取近期出一篇威联通NAS上的部署流程。
在断断续续试用完这三个项目后,对数据库配置部分颇有感触,因此也计划再撰写一篇关于数据库配置的专题分享。
本文全程使用威联通TS-464C作为演示设备。

⚠️ 提示:由于涉及多个服务的介绍与对比,本文内容可能较长。
1. Photoview:轻量灵活的照片墙
Photoview 主打对RAW格式文件的支持和EXIF信息解析。它支持人脸识别(速度较快),并包含简体中文、繁体中文在内的多语言界面。官方介绍其专为摄影师打造,但对普通用户同样友好。该软件也支持常见视频格式,比较遗憾的是不支持苹果的Live Photo。它兼容PostgreSQL、MariaDB和SQLite多种数据库,部署上灵活性更高。
项目描述:
Photoview 是一款简洁易用的相册程序,专为摄影爱好者设计,旨在提供一种快速、直观的方式来浏览硬盘中数以千计的高清照片。您只需配置好扫描目录,它便会自动查找其中的照片与视频,生成缩略图,使浏览过程更加流畅。媒体文件扫描完成后,即可在网页端直接查看,并会依照原始文件夹结构进行分类展示,清晰且便于管理。
Photoview 效果展示
对于轻量级使用需求而言,它没有什么大问题。

照片元数据页面,提供不同尺寸的下载选项以及可生成分享链接。


Docker 一键部署
这里仅展示使用MariaDB的部署方式,其他数据库配置请参考项目官方文档。 以下Docker Compose配置可同时部署Photoview主服务与MariaDB数据库:
services:
# 初始化 media-cache 目录权限
photoview-prepare:
image: photoview/photoview:2
container_name: photoview-prepare
user: root
entrypoint: []
command: /bin/bash -c "sleep 1 && chown -R photoview:photoview /home/photoview/media-cache"
cap_add:
- CHOWN
environment:
- TZ=Asia/Shanghai
volumes:
- /etc/localtime:/etc/localtime:ro
- /share/Container/photoview:/home/photoview/media-cache # 缓存路径
# Photoview 主容器
photoview:
image: photoview/photoview:2
container_name: photoview
restart: unless-stopped
ports:
- "8797:80" # 浏览器通过 http://NAS_IP:8797 访问
depends_on:
photoview-prepare:
condition: service_completed_successfully
db:
condition: service_healthy
environment:
- TZ=Asia/Shanghai
- PHOTOVIEW_DATABASE_DRIVER=mysql
- PHOTOVIEW_MYSQL_URL=photoview:photoview@tcp(db:3306)/photoview # 注意数据库连接参数
- PHOTOVIEW_LISTEN_IP=0.0.0.0
# - MAPBOX_TOKEN=your_mapbox_token # 可选,用于地图功能
# - PHOTOVIEW_VIDEO_HARDWARE_ACCELERATION=qsv # 可选,视频硬件加速
volumes:
- /etc/localtime:/etc/localtime:ro
- /share/Container/photoview:/home/photoview/media-cache
- /share/Phone/picture:/photos:ro # 只读映射您的照片目录
# MariaDB 数据库容器
db:
image: mariadb:10.6
container_name: photoview-db
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- MYSQL_ROOT_PASSWORD=rootpassword # 请更改为安全的密码
- MYSQL_DATABASE=photoview # 为Photoview创建的数据库名
- MYSQL_USER=photoview # Photoview使用的数据库用户名
- MYSQL_PASSWORD=photoview # 对应用户的密码
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5
volumes:
- /share/Container/photoview/mysql:/var/lib/mysql
此外,项目还支持配置GPU以加速图片处理和视频硬解码等功能,具体配置请查阅项目页面。

Photoview 使用
部署完成后,在浏览器中输入NAS_IP:8797即可访问。
首次使用需要创建一个管理员用户,默认照片路径可填写/photos,这些设置后续均可修改。

登录后进入设置界面,大部分管理功能都集中在此。

可以设置定时扫描任务,首次登录建议手动触发一次全量扫描。 扫描完成后,照片和视频便会显示在界面中,支持在线预览。系统识别到的人脸会自动归类到专属合集。


2. PhotoPrism:面向个人与家庭的相册中心
如开头所述,若追求功能全面与长期使用,笔者更倾向于推荐PhotoPrism。它部分高级功能需要付费订阅,但其社区版功能已相当强大。与其说它是一个“照片墙”,不如说它是一个独立的、功能完备的私人相册服务中心。
项目描述:
PhotoPrism是一款功能强大的照片视频管理工具,可自动分类并识别人脸,提供强大的搜索、元数据索引和地图轨迹记录功能。它兼容RAW格式、能检测重复文件并支持多种视频格式与Live Photo播放。支持手机后台同步与WebDAV访问,采用PWA(渐进式Web应用)界面,可在各类设备上获得接近原生应用的体验,非常适合个人或家庭用户使用。
需要注意的是,PhotoPrism对设备性能有明确要求:建议4GB内存起步,CPU也有一定要求。但官方手册也提及了对树莓派的支持,因此大多数NAS设备应该足以应对。
部分效果展示
Live Photo的播放效果和主照片墙视图。

左侧导航栏提供了丰富的分类筛选选项。

后台提供了非常详尽的可配置项目。

Docker一键部署
请注意Docker Compose格式的正确缩进,现阶段可借助AI工具辅助检查语法错误。
services:
mariadb:
image: mariadb:10.11
container_name: mariadb
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=rootpassword # 请务必更改为强密码
- MYSQL_DATABASE=photoprism
- MYSQL_USER=photoprism
- MYSQL_PASSWORD=photoprism
volumes:
- /share/Container/photoprism/mariadb:/var/lib/mysql
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-buffer-pool-size=512M
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
retries: 5
start_period: 30s
photoprism:
image: photoprism/photoprism:latest
container_name: photoprism
depends_on:
mariadb:
condition: service_healthy
restart: unless-stopped
ports:
- "2344:2342" # 冒号左侧为NAS宿主机端口,可按需修改
environment:
- PHOTOPRISM_ADMIN_PASSWORD=admin # 首次登录密码,建议立即修改
- PHOTOPRISM_DATABASE_DRIVER=mysql
- PHOTOPRISM_DATABASE_SERVER=mariadb:3306
- PHOTOPRISM_DATABASE_NAME=photoprism
- PHOTOPRISM_DATABASE_USER=photoprism
- PHOTOPRISM_DATABASE_PASSWORD=photoprism
- PHOTOPRISM_SITE_URL=http://192.168.200.132:2344/ # 若修改了端口,此处需同步更新
- PHOTOPRISM_ORIGINALS_PATH=/photoprism/originals
- PHOTOPRISM_IMPORT_PATH=/photoprism/import
- PHOTOPRISM_STORAGE_PATH=/photoprism/storage
- TZ=Asia/Shanghai
volumes:
- /share/Phone/picture:/photoprism/originals # 映射您的照片目录
- /share/Container/photoprism/import:/photoprism/import
- /share/Container/photoprism/storage:/photoprism/storage
- /etc/localtime:/etc/localtime:ro
部署过程可能需要等待较长时间,此处不再展示部署过程截图。
PhotoPrism 使用
根据上述配置,在浏览器中输入NAS_IP:2344即可访问。其语言支持非常全面。若未修改环境变量,默认管理员账户和密码均为admin。

在登录界面即可选择中文,但系统内部可能需要再次设置,类似于威联通NAS的操作逻辑。

可以创建相册并上传图片。根据个人体验,其索引和扫描速度表现不错。


上传并索引后,系统会自动为照片进行分类(如地点、人物等)。

关于 Live Photo 的说明
在此功能上的体验,感觉不如威联通自家的Qumagie相册流畅。
Live Photo由一张JPEG/HEIC格式的静态图像和一段QuickTime AVC/HEVC格式的视频组成,播放时需要两者协同工作。
官方建议使用PhotoSync这类专用应用将Live Photo上传至PhotoPrism,因为通过iOS网页直接上传通常只会提交HEIC图像文件而缺失视频部分。
不过,用户也可以利用威联通NAS的官方相册同步机制来导入照片,从而免去安装额外上传工具的步骤。
3. PiGallery2:注重原始文件夹结构的查看器
PiGallery2 是一个轻量级的、可容器化的相册服务。它支持常见的图片与视频格式(同样不支持苹果Live Photo),可直接读取文件夹结构,也可结合数据库实现快速搜索与分享。它具备缩略图缓存、地图显示、人脸元数据标注、响应式UI以及视频缩略图生成等功能,适合资源有限但又追求简洁浏览体验的用户。
作为一个出于兴趣和实用目的创建的项目,开发者更专注于实现符合自身需求的功能(遗憾的是其业余时间有限)。作者并无意将项目商业化,也未提供任何捐赠渠道,因此这款应用可能并不具备满足绝大多数用户需求的属性。
经过轻量体验后,个人不是特别推荐此项目。但如果您的主要诉求是严格保留并展示原始的文件夹层级结构,那么它值得优先考虑。
部署流程
其部署配置相对最为简短,如下所示:
services:
pigallery2:
image: bpatrik/pigallery2:latest # 项目有其他分支版本,可按需选择
container_name: pigallery2
environment:
- NODE_ENV=production # 运行模式,可切换到开发模式等
ports:
- "8585:80" # 冒号左侧宿主机端口可自定义
volumes:
- "/share/Container/pigallery2/config:/app/data/config"
- "/share/Container/pigallery2/db:/app/data/db" # 内置SQLite数据库路径
- "/share/Phone/picture:/app/data/images:ro" # 只读映射您的照片路径
- "/share/Container/pigallery2/tmp:/app/data/tmp"
restart: always
等待容器部署完成即可。
使用介绍
若按上文配置部署,在浏览器中输入NAS_IP:8585即可访问。
界面也支持中文,默认管理员账户和密码为admin。

首次登录后会提示创建新用户。是的,它不支持在界面内直接修改现有用户的密码。

上传了包含PNG、HEIC、JPG以及一些视频文件进行测试。添加新文件后,需要手动刷新页面才能看到。实际显示效果并不理想,在元数据抓取和图片识别方面都存在一些问题。

4. 总结与对比
三款开源项目各有侧重,均非完美。
Photoview 足够轻量,在提供清晰的时间线视图方面做得不错,但其界面和功能相对固定,自定义选项有限。
PhotoPrism 提供了出色的照片/视频浏览方式,支持文件夹视图,并集成了大量现代化功能。它更偏向于一个完整的相册管理中心,因此从单纯的“照片墙”角度来看,它是功能最全面但也最“繁重”的选择。
PiGallery2 在精确展示原始文件夹结构方面近乎完美,但在实际图片渲染、元数据识别等方面存在一些不足。可能需要对照片进行一定的预处理才能获得更好的显示效果。它更适合作为特定需求(如严格的目录展示)下的补充工具。