阿拉平平
读完需要
分钟
速读仅需 3 分钟
之前看过一篇报道:日本一名御宅从女性偶像发于社交媒体的照片中提取出眼球反射的车站影像,并与谷歌街景做对比,匹配出受害者常去的车站,然后蹲守并尾随受害者,最终锁定了受害女性的住处。在吐槽四斋蒸鹅心之余,我不禁想问这一切的背后到底是道德的沦丧,还是人性的扭曲?
不好意思,不小心走错片场了。言归正传,从这篇报道可见,照片所包含的信息其实远不如表面所见,而隐私信息很有可能在不经意间已经曝光。对于个人私密照片,发布到社交网络或者存放到移动设备/云盘并不是一种安全的做法。那么我们应该如何妥善地保管这些照片呢?
这就引出今天的主题了,我们可以在自己的服务器上搭建一个私有相册系统 PhotoPrism[1] 来规避信息泄露的风险。在这篇文章中,我将介绍如何安装并使用 PhotoPrism。
1. 下载安装
安装完成后下载 docker-compose.yml 文件:
wget https://dl.photoprism.org/docker/docker-compose.yml
这里需要调整登录的密码以及数据库连接的配置。以下是我的配置文件,大家可以根据实际情况来修改:
version: '3.5'
services:
photoprism:
# 使用 photoprism/photoprism:preview 来尝试抢先版
image: photoprism/photoprism:latest
# 设置重启策略
restart: unless-stopped
security_opt:
- seccomp:unconfined
- apparmor:unconfined
ports:
- 2342:2342
environment:
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # 设置管理员密码,至少包含四个字符
PHOTOPRISM_HTTP_PORT: 2342 # 内部监听端口
PHOTOPRISM_HTTP_COMPRESSION: "gzip" # 是否开启文件压缩,开启可以提升文件传输速度 (选项:none or gzip)
PHOTOPRISM_DEBUG: "false" # 是否开启 debug 模式
PHOTOPRISM_PUBLIC: "false" # 认证开关
PHOTOPRISM_READONLY: "false" # 只读开关
PHOTOPRISM_EXPERIMENTAL: "false" # 是否开启实验特性
PHOTOPRISM_DISABLE_WEBDAV: "false" # 是否禁用 WebDAV 服务
PHOTOPRISM_DISABLE_SETTINGS: "false" # 是否禁用页面设置
PHOTOPRISM_DISABLE_TENSORFLOW: "false" # 是否禁用 TensorFlow 进行图片分类
PHOTOPRISM_DARKTABLE_PRESETS: "false"
PHOTOPRISM_DETECT_NSFW: "false" # 是否将令人感到不适的照片标记为私有
PHOTOPRISM_UPLOAD_NSFW: "true" # 是否允许上传可能让人感到不适的文件
# PHOTOPRISM_DATABASE_DRIVER: "sqlite" # 使用 SQLite 作为数据库,已内置无需创建实例
PHOTOPRISM_DATABASE_DRIVER: "mysql" # 使用 MariaDB (或 MySQL) 代替 SQLite 来提升性能
PHOTOPRISM_DATABASE_SERVER: "mariadb:3306" # 设置 MariaDB 服务 (hostname:port)
PHOTOPRISM_DATABASE_NAME: "photoprism" # 设置 MariaDB 库名
PHOTOPRISM_DATABASE_USER: "photoprism" # 指定 MariaDB 的用户
PHOTOPRISM_DATABASE_PASSWORD: "photoprism" # 设置 MariaDB 用户密码
PHOTOPRISM_SITE_URL: "http://localhost:2342/" # PhotoPrism 访问地址
PHOTOPRISM_SITE_TITLE: "PhotoPrism"
PHOTOPRISM_SITE_CAPTION: "Browse Your Life"
PHOTOPRISM_SITE_DESCRIPTION: ""
PHOTOPRISM_SITE_AUTHOR: ""
# 如果 docker 或 NAS 未设置用户,可以添加环境变量来设置,示例如下:
# UID: 1000
# GID: 1000
# UMASK: 0000
# 取消注释来指定用户
# user: "1000:1000"
volumes:
# 图片与视频的原生目录,文件上传后先存放在这里
- "~/Pictures:/photoprism/originals"
# 原生目录下的子目录,按照实际需求来挂载
# - "/mnt/Family:/photoprism/originals/Family" # [folder_1]:/photoprism/originals/[folder_1]
# - "/mnt/Friends:/photoprism/originals/Friends" # [folder_2]:/photoprism/originals/[folder_2]
# 挂在导入目录,如果该目录中存在文件会自动导入
# - "~/Import:/photoprism/import"
# 缓存目录 (请勿删除):
- "./storage:/photoprism/storage"
mariadb:
image: mariadb:10.5
restart: unless-stopped
security_opt:
- seccomp:unconfined
- apparmor:unconfined
command: mysqld --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=50
volumes:
- "./database:/var/lib/mysql"
environment:
MYSQL_ROOT_PASSWORD: photoprism
MYSQL_DATABASE: photoprism
MYSQL_USER: photoprism
MYSQL_PASSWORD: photoprism
# 如果需要自动更新镜像,可以取消这段注释
#
# watchtower:
# image: containrrr/watchtower
# restart: unless-stopped
# volumes:
# - "/var/run/docker.sock:/var/run/docker.sock"
运行以下命令启动服务:
docker-compose up -d
服务启动后会监听在 2342 端口上,可以通过浏览器来访问。
2. 使用说明

登录后可以看到,PhotoPrism 默认语言是英语。如果需要更改,可以到「设置」里进行修改:

在上传图片前,需要新建相册。点击「相册」右上角的 + 来添加:

建好相册后,点击右上角的「上传」按钮,勾选刚刚创建的相册,选择需要的图片来上传:

这里我上传了些不同风格的图片进行测试,可以看到 TensorFlow 对其进行了分类并列出了相关的信息:

再上传视频进行测试,可以看到 PhotoPrism 是支持在线播放的。

除了上述功能,PhotoPrism 还会解析上传文件的时间和经纬度信息,并标识到「日历」和「地点」中,这里就不多做赘述了。
3. 写在最后
References
[1]
PhotoPrism: https://github.com/photoprism/photoprism
原文始发于微信公众号(阿拉平平):PhotoPrism 入门教程:如何搭建私有相册系统
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/287843.html