使用 Docker 搭建属于自己的个人相册,让美好不会丢失!

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 使用 Docker 搭建属于自己的个人相册,让美好不会丢失!

前言


随着数码设备的普及,许多人都积累了大量的照片和视频。如何高效地管理、浏览和分享这些数字资产成了一个重要问题。

PhotoPrism 是一款开源的照片管理应用,它通过先进的图像识别技术和用户友好的界面,帮助用户轻松地管理和分享照片。

本篇文章将详细介绍如何使用 Docker 搭建属于自己的 PhotoPrism 个人相册。

image.png

特性

PhotoPrism 具备以下主要特性:

  1. 1. 强大的搜索功能:支持按地点、日期、相册、标签等多种条件进行搜索,快速定位目标照片。
  2. 2. 图像识别技术:通过 AI 技术自动识别和分类照片中的内容,如人脸、物体、场景等。
  3. 3. 多格式支持:支持多种图像和视频格式,包括 JPEG、PNG、HEIF、RAW、MP4 等。
  4. 4. 隐私保护:用户数据完全由自己掌控,支持私有部署,确保照片的安全和隐私。
  5. 5. 多平台访问:支持网页浏览,移动端适配良好,可以在手机、平板和电脑上无缝使用。
  6. 6. 开源免费:PhotoPrism 是一个开源项目,免费供个人和团队使用,并且可以根据需要进行定制和扩展。

应用场景

PhotoPrism 适用于以下场景:

  1. 1. 个人相册管理:帮助用户整理日常生活中的照片,按时间、地点、事件等分类,方便回顾和分享。
  2. 2. 摄影师作品集:摄影师可以使用 PhotoPrism 管理和展示自己的作品集,方便查找和展示。
  3. 3. 家庭照片库:将家庭成员的照片集中存储和管理,方便全家人一起浏览和分享美好回忆。
  4. 4. 团队合作:团队可以使用 PhotoPrism 共同管理项目照片,支持标签、注释等功能,方便协作。

快速搭建

接下来,我们将介绍如何使用 Docker 快速搭建属于自己的 PhotoPrism 个人相册。

步骤1:准备工作

在开始之前,请确保你的系统已经安装了 Docker 和 Docker Compose。如果尚未安装,可以参考以下链接进行安装:

  • Docker 安装指南
  • Docker Compose 安装指南

步骤2:创建项目目录

首先,我们需要创建一个目录来存放 PhotoPrism 的配置文件和数据文件。在终端中运行以下命令:

mkdir -p ~/photoprism/{data,config}
cd ~/photoprism

步骤3:创建 Docker Compose 文件

~/photoprism 目录下创建一个 docker-compose.yml 文件,内容如下:

version: '3.5'
services:
  photoprism:
    image: photoprism/photoprism:latest
    container_name: photoprism
    restart: unless-stopped
    security_opt:
      - seccomp:unconfined
    ports:
      - "2342:2342"
    environment:
      PHOTOPRISM_ADMIN_PASSWORD: "YourPasswordHere" # 管理员密码
      PHOTOPRISM_UPLOAD_NSFW: "true"                # 允许上传 NSFW 内容
      PHOTOPRISM_DEBUG: "false"                     # 禁用调试模式
      PHOTOPRISM_PUBLIC: "false"                    # 设置为私有模式
      PHOTOPRISM_READONLY: "false"                  # 禁用只读模式
    volumes:
      - "./data:/photoprism/storage"                # 持久化存储路径
      - "./config:/photoprism/originals"            # 配置文件路径

确保将 PHOTOPRISM_ADMIN_PASSWORD 替换为你自己的管理员密码。

步骤4:启动 PhotoPrism 服务

在终端中运行以下命令来启动 PhotoPrism 服务:

docker-compose up -d

这将会下载 PhotoPrism 的 Docker 镜像并启动容器。你可以使用 docker-compose logs -f 查看启动日志,确保服务正确启动。

步骤5:访问 PhotoPrism

打开浏览器,访问 http://localhost:2342。使用步骤3中设置的管理员密码登录 PhotoPrism。首次登录后,你可以按照提示进行基本的配置和设置。

image.png

步骤6:上传和管理照片

登录 PhotoPrism 后,你可以开始上传和管理你的照片。以下是一些常见操作:

上传照片

点击页面右上角的上传按钮,选择你想要上传的照片。上传完成后,PhotoPrism 会自动对照片进行索引和分类。

image.png

浏览照片

PhotoPrism 提供了多种浏览方式,你可以按时间、地点、相册等方式浏览照片。点击照片可以查看详细信息并进行编辑。

image.png

搜索照片

PhotoPrism 内置了强大的搜索功能,你可以通过关键词、拍摄日期、地点等条件快速找到所需的照片。

高级配置

PhotoPrism 提供了丰富的配置选项,以下是一些常见的高级配置:

数据库配置

默认情况下,PhotoPrism 使用 SQLite 作为数据库。如果你需要更高的性能和并发能力,可以切换到 MySQL 或 PostgreSQL。

docker-compose.yml 文件中添加数据库服务并修改 PhotoPrism 的环境变量,例如:

services:
  db:
    image: mysql:8.0
    container_name: photoprism-db
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: "YourDbRootPassword"
      MYSQL_DATABASE: "photoprism"
      MYSQL_USER: "photoprism"
      MYSQL_PASSWORD: "YourDbPassword"
    volumes:
      - "photoprism-db-data:/var/lib/mysql"
  photoprism:
    environment:
      PHOTOPRISM_DATABASE_DRIVER: "mysql"
      PHOTOPRISM_DATABASE_SERVER: "db:3306"
      PHOTOPRISM_DATABASE_NAME: "photoprism"
      PHOTOPRISM_DATABASE_USER: "photoprism"
      PHOTOPRISM_DATABASE_PASSWORD: "YourDbPassword"

HTTPS 配置

为了确保数据传输的安全性,可以配置 HTTPS。可以使用 Nginx 作为反向代理,配置示例如下:

services:
  nginx:
    image: nginx:latest
    container_name: photoprism-nginx
    restart: unless-stopped
    ports:
      - "443:443"
      - "80:80"
    volumes:
      - "./nginx.conf:/etc/nginx/nginx.conf"
      - "./certs:/etc/nginx/certs"

创建一个 nginx.conf 文件,配置 Nginx 反向代理和 HTTPS 证书:

server {
    listen 80;
    server_name yourdomain.com;
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl;
    server_name yourdomain.com;
    ssl_certificate /etc/nginx/certs/fullchain.pem;
    ssl_certificate_key /etc/nginx/certs/privkey.pem;
    location / {
        proxy_pass http://photoprism:2342;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

yourdomain.com 替换为你的域名,并将 SSL 证书文件放到 certs 目录下。

总结

希望你能够快速上手并享受使用 PhotoPrism 管理照片的乐趣。如果在搭建过程中遇到任何问题,可以参考 PhotoPrism 的官方文档或社区支持。

参考资料:

https://github.com/photoprism/photoprism/


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
安全 数据安全/隐私保护 Docker
使用Docker Compose轻松搭建Samba文件共享服务
家人们啦,今天我将向大家介绍如何使用Docker Compose安装Samba,从而实现便捷的文件共享环境。Samba是一个开源的软件套件,允许不同操作系统之间实现文件和打印机的共享。通过Docker Compose的便利,我们可以快速搭建和管理Samba容器,轻松实现文件共享和访问。废话不多说,让我们开始吧!
1109 0
使用Docker Compose轻松搭建Samba文件共享服务
|
机器人 API
钉钉机器人的运行和消息接收是通过Webhook和Stream两种方式实现的
钉钉机器人的运行和消息接收是通过Webhook和Stream两种方式实现的
1068 5
|
数据安全/隐私保护 Docker 容器
【Docker】使用docker安装部署NextCloud私人网盘
【Docker】使用docker安装部署NextCloud私人网盘
4515 0
【Docker】使用docker安装部署NextCloud私人网盘
|
12月前
|
定位技术 文件存储 网络架构
Docker部署PhotoPrism、Immich图片管理应用,无需公网IP远程访问教程
除了Synology、QNAP、TerraMaster等品牌的NAS设备内置图库功能,市面上还有多种备受欢迎的第三方应用,如PhotoPrism、Immich、LibrePhotos、Piwigo、Photoview等。这些应用不仅提供强大的图片管理能力,还可通过Docker轻松部署。借助贝锐花生壳服务,即使没有公网IP也能实现远程访问,突破地理限制,提升数据可访问性和安全性,让用户随时随地管理私人图库。
1156 1
|
Linux 网络安全
linux服务器中如何卸载宝塔
linux服务器中如何卸载宝塔
5245 0
|
关系型数据库 MySQL 数据库
【Docker】手把手教你搭建好玩的docker项目合集
【Docker】手把手教你搭建好玩的docker项目合集
|
安全 Linux 数据安全/隐私保护
docker运行报错docker: Error response from daemon: AppArmor enabled on system but the docker-default prof
docker运行报错docker: Error response from daemon: AppArmor enabled on system but the docker-default prof
874 0
|
8月前
|
存储 前端开发 开发工具
利用阿里云OSS(对象存储服务)快速搭建私人网盘
本文介绍了如何使用阿里云OSS搭建个人网盘的详细步骤。首先,注册阿里云账号并开通OSS服务,创建Bucket;接着,配置AccessKey和跨域访问(CORS)规则。然后,选择开源项目(如FileBrowser)或自定义前端,结合OSS SDK实现文件上传下载功能。最后,部署到服务器并绑定域名,确保安全与性能优化,如权限控制、数据备份及CDN加速。
1556 7
|
11月前
|
运维 网络安全 数据安全/隐私保护
Nextcloud一键部署:快速搭建如企业钉钉或飞书的团队协作平台
Nextcloud Hub 是一款来自德国的完全开源的云上托管内容协作平台。团队内成员可以通过移动、桌面和 Web 界面访问、共享和编辑文档,聊天和参与视频通话以及管理邮件、日历和项目。目前,Nextcloud的产品定位是在保障数据安全下的完整协作平台,功能类似国内的企业钉钉或飞书。Nextcloud官网:[https://nextcloud.com/](https://nextcloud.com/) 。
Nextcloud一键部署:快速搭建如企业钉钉或飞书的团队协作平台
|
人工智能 关系型数据库 文件存储
DIY nas 之--照片管理工具PhotoPrism
PhotoPrism是一个开源的照片管理工具,是一款由AI驱动的应用程序,主要用于浏览、组织和分享您的照片集。
808 3