PhotoPrism 入门教程:如何搭建私有相册系统

文章首发于个人公众号「阿拉平平」

之前看过一篇报道:日本一名御宅从女性偶像发于社交媒体的照片中提取出眼球反射的车站影像,并与谷歌街景做对比,匹配出受害者常去的车站,然后蹲守并尾随受害者,最终锁定了受害女性的住处。在吐槽四斋蒸鹅心之余,我不禁想问这一切的背后到底是道德的沦丧,还是人性的扭曲?

不好意思,不小心走错片场了。通过这篇报道,我想说明照片所包含的信息其实远不如我们表面所见,而隐私信息很有可能在不经意间已经曝光。对于个人私密照片,发布到社交网络或者存放到移动设备/云盘并不是一种安全的做法。那么我们如何妥善地保管这些照片呢?

这就引出今天的主题了,我们可以在自己的服务器上搭建一个私有相册系统,存放的照片与视频仅供内部使用。在这篇文章中, 我将介绍开源相册系统 PhotoPrism[1] 的安装与使用方法。

下载安装

这里我采用容器方式来部署,部署前需要安装 docker 和 docker-compose。

安装完成后下载 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 端口上,通过浏览器来访问。

使用说明

访问会跳转到登录页面,这里的密码对应的是配置文件中 PHOTOPRISM_ADMIN_PASSWORD 的值。

可以看到,PhotoPrism 默认语言是英语,我们可以到「设置」里修改为简体中文。

在上传图片前,我们先新建个相册。点击「相册」右上角的 + 来添创建:

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

我上传了些图片进行测试,可以看到 PhotoPrism 借助 TensorFlow 对其进行了分类:

我又上传了视频进行测试,PhotoPrism 是支持播放的:

除了上述功能,PhotoPrism 还会解析上传文件的时间和经纬度信息,并标识到「日历」和「地点」中。

写在最后

正如前言所述,照片所包含的信息远不如表面所见。事实上,PhotoPrism 也利用了文件的时间和经纬度开发了「日历」和「地点」的功能。隐私信息在私有相册上能开发出不错的功能,但暴露在社交网络上则是不安全的。对于私人照片的保管,PhotoPrism 是一个不错的解决方案。

References

[1] PhotoPrism: https://github.com/photoprism/photoprism

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
搭建私有云是指通过使用一些开源的软件和硬件工具来建立自己的云存储和数据同步服务。Ubuntu是一个常用的操作系统,我们可以使用Ubuntu Server版本来搭建私有云。在Ubuntu Server上安装LAMP(Linux、Apache、MySQL和PHP)软件包,其中Apache是用于Web服务器,MySQL是用于数据库管理,PHP是用于服务器端脚本语言。 在安装完LAMP后,我们需要下载并安装ownCloud软件。ownCloud是一个开源的软件,可以提供云存储和文件同步服务。通过ownCloud,我们可以在自己的服务器上搭建类似于Dropbox的云存储服务。 安装ownCloud时,我们需要配置Apache服务器以支持PHP,并创建一个MySQL数据库用于存储ownCloud的数据。在配置完成后,我们可以通过Web浏览器访问ownCloud界面,并进行用户注册和登录。登录后,我们可以上传和下载文件,创建文件夹,进行文件分享和同步等操作。 为了提高私有云的安全性,我们可以配置SSL证书,使用HTTPS协议来保护数据的传输。另外,我们还可以设置用户权限,限制用户对文件和文件夹的访问和操作。 搭建私有云的优点是可以拥有自己的数据,不依赖于第三方云服务提供商,并且可以在任何时间、任何地点访问和同步数据。此外,私有云还可以提供更高的安全性和隐私保护,因为所有的数据都存储在自己的服务器上。 然而,搭建私有云也有一些限制和挑战,比如需要购买和维护服务器硬件和软件,需要有一定的技术知识来进行配置和管理,以及可能会受到网络连接和带宽的限制。 总而言之,搭建私有云可以提供灵活、安全和可控的数据存储和同步服务,适用于个人和小型团队使用。不过,在搭建前需要充分了解和准备相关的技术和资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值