8.4 KiB
Photoview 是一款简单易用的照片画廊,专为摄影师设计,旨在提供一种快速简便的目录导航方式,支持数千张高分辨率照片。
您可以在文件系统中的某个目录中配置 Photoview 来查找照片和视频。扫描器会自动检测您的媒体,并生成缩略图以使浏览速度极快。
当您的媒体被扫描后,它们会在网站上显示出来,组织方式与文件系统中的相同。
如果您有关于安装或开发的问题,欢迎加入 Discord 服务器 https://discord.gg/jQ392948u9
演示站点
用户名: demo 密码: demo
内容
主要功能
- 紧密关联文件系统 。网站展示服务器本地文件系统中的图片,目录映射为相册。
- 用户管理 。每个用户在本地文件系统中创建一个路径,该路径内的照片可以被该用户访问。
- 分享 。相册以及单个媒体内容可以轻松通过公共链接分享,链接可以选配密码保护。
- 专为摄影设计 。Photoview 是为摄影师打造的,因此支持 RAW 文件格式和 EXIF 解析。
- 视频支持 。支持许多常见的视频格式。视频会自动优化以适应网络播放。
- 人脸识别 。照片中会自动检测人脸,相同人物的照片会被归类在一起。
- 性能出色 。会自动生成缩略图,照片在屏幕上可见时才会加载。在全屏模式下,会先显示缩略图,直到高分辨率图片完全加载完毕。
- 安全 。所有媒体资源都使用了 cookie-token 保护,所有密码都进行了妥善哈希处理,API 使用了严格的 CORS 策略 。
支持的平台
为何再添一个自托管照片画廊
已经存在很多开源的自托管照片画廊了。这里列举几个,仅作参考。
那么为什么还要再做一个呢?我喜欢拍照,并且把所有的照片都存储在我的本地文件服务器上。这样很好,因为我可以直接在文件系统上组织我的照片,方便移动或备份。
然而,问题是 RAW 格式的照片从文件服务器上导航起来非常麻烦,即使是局域网内也是如此。
我的服务器上有很多旧的家庭照片,我也希望我的家人能够访问这些照片。还有一些照片,我希望可以直接分享给其他人,而不需要他们先注册账号。
因此,我需要一个解决方案,能够做到以下几点:
- 基于扫描的自动整理照片的方法
- 支持 RAW 和 EXIF 解析
- 支持多个用户,并且可以分享相册和照片,也可以公开分享
- 简单快速易用
所有的照片画廊都能做到我需要的很多事情,但没有一个能全部做到。
开始使用 - 使用 Docker 部署
本节描述了如何在服务器上使用 Docker 部署 Photoview。请确保您的服务器上已安装并运行了 Docker 和 docker-compose。
- 在您的计算机上创建一个新的
docker-compose.yml文件,并将 docker-compose.example.yml 文件的内容复制到新文件中。 - 编辑
docker-compose.yml,找到以Change This:开头的注释,并更改相应的值,以正确匹配您的设置。如果您只是本地测试,无需进行任何更改。 - 通过运行以下命令启动服务器
$ docker-compose up -d
如果 docker-compose.yml 文件中未更改端点或端口,则 Photoview 现在可以通过 http://localhost:8000 访问
初始设置
如果一切设置正确,在首次访问网站时,你应该会被呈现一个初始设置向导。
请输入一个新的用户名和密码。
对于照片路径,请输入 Docker 容器中存放照片的路径。这个路径可以在 `docker-compose.yml` 文件下的 `api` -> `volumes` 中设置。默认位置是 `/photos`。
将会创建一个新的管理员用户,该用户可以访问初始设置中提供的路径下的照片。
照片在显示之前需要进行扫描,你可以通过导航到设置并点击扫描所有来手动开始扫描
设置开发环境
本地设置
- 安装本地 MySQL 服务器,并创建一个新的数据库
- 将
/api/example.env重命名为.env,并更新MYSQL_URL字段 - 将
/ui/example.env重命名为.env
启动 API 服务器
确保安装了 golang
一些 C 库需要编译 API,请参阅 go-face 要求 以获取更多详细信息。这些库可以按照以下方式安装:
# Ubuntu
sudo add-apt-repository ppa:strukturag/libheif
sudo add-apt-repository ppa:strukturag/libde265
sudo apt-get update
sudo apt-get install libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg-turbo8-dev libheif-dev
# Debian
sudo apt-get install libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg62-turbo-dev libheif-dev
# macOS
brew install dlib libheif
然后运行以下命令:
cd ./api
go install
go run server.go
启动 UI 服务器
请确保 node 已安装。在新的终端窗口中运行以下命令:
cd ./ui
npm install
npm start
现在可以访问站点:localhost:1234。GraphQL Playground 可以在:localhost:4001
赞助商
| @ericerkz | @robin-moser | @Revorge | @deexno | @FKrauss | @jupblb |

