【Docker】搭建私有相册系统

【Docker】搭建私有相册系统

Turbo 503 2023-02-03

Docker搭建私有相册系统

一、下载安装

photoPrism是由Golang开发的开源相册系统,并结合TensorFlow对照片进行分类处理,推荐使用容器来部署,部署前需要安装docker和docker-compose。
安装完成后下载docker-compose.yml文件

wget https://dl.photoprism.org/docker/docker-compose.yml

需要调整登录的密码以及数据库连接的配置。

version: '3.5'
services:
	photoprism:
    	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默认语言是英语,如果需要,可以到设置中进行修改
在上传图片前,需要新建相册。点击相册右上角的+号来添加。
建好相册后,点击右上角的上传按钮,勾选创建的相册,选择需要的图片来上传。

完结