一个简单的自托管图片库HomeGallery

在这里插入图片描述

什么是 HomeGallery ?

HomeGallery 是一个自托管的开源 Web 图片库,用于浏览个人照片和视频,其中包括标记、对移动端友好和 AI 驱动的图像和面部发现功能。

HomeGallery 的独特功能是自动 相似图像/反向图像搜索功能无数据库架构 (所有搜索和过滤都在客户端浏览器上快速完成)。这会带来快速响应的用户体验,无需任何手动步骤即可导航和探索档案。

官方提供了演示网站:https://demo.home-gallery.org/

命令行安装

采用 docker-compose 安装方式,将下面的内容保存为 docker-compose.yml 文件

这是在官方的 docker-compose.yml 基础上修改的,老苏保留了修改痕迹,方便你知道改了哪些内容;

version: "3.9"

services:
  api:
    # custom build via
    #build: packages/api-server
    image: xemle/home-gallery-api-server
    container_name: home-gallery-api
    environment:
      # TensorflowJS backends
      # - cpu: slowest and best support
      # - wasm: good perfromance for arm64 and amd64 platforms
      # - node: best performance on amd64 platform
      #- BACKEND=cpu
      - BACKEND=wasm
      #- BACKEND=node

  gallery:
    # custom build via
    #build: .
    image: xemle/home-gallery
    container_name: home-gallery-server
    environment:
      - GALLERY_API_SERVER=http://api:3000
      #- GALLERY_API_SERVER_CONCURRENT=1 # On low powered devices
      #- GALLERY_API_SERVER_TIMEOUT=60 # On low powered devices
      - GALLERY_OPEN_BROWSER=false
    volumes:
      - ./data:/data
      # Mount your media directories below /data
      - /volume2/docker/photoprism/photos:/data/Pictures
    ports:
      - "3045:3000"
    user: "${CURRENT_USER}"
    entrypoint: [ 'node', '/app/gallery.js' ]
    command: [ 'run', 'server' ]

几个主要变量的说明:

  • BACKEND:这个是配置 TensorflowJS 的环境变量,分为:

    • cpu:这个速度最慢,但是兼容性应该是最好的;
    • wasm:这个在 arm64amd64 平台的都具有良好的性能;
    • node:这个在 amd64 平台上的能获得最佳性能;
      所以,其实按老苏的机器,应该是选 node的。
  • GALLERY_API_SERVER:指 API 服务器的地址,这里用的是相对地址,所以你可以不用管;

  • GALLERY_API_SERVER_CONCURRENT:设置并发数,这个在低功耗的机器上才需要打开,比如树莓派;

  • GALLERY_API_SERVER_TIMEOUT:设置超时,也是低功耗设备才需要设置;

  • /data 卷:用于存放 SQLite、缩略图和设置等;

  • /data/Picture 卷:用于放照片和视频文件,可以指向一个已经存在的图库,也可以是新建的。老苏指向了之前 PhotoPrism 的照片库,省得占用空间 😄

然后执行下面的命令

# 新建文件夹 homegallery 和 子目录
# 如果用现有照片库,可以不建 pictures 目录
mkdir -p /volume2/docker/homegallery/{data,pictures}

# 进入 homegallery 目录
cd /volume2/docker/homegallery

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3045 就能看到主界面

在这里插入图片描述

是不是觉得有点奇怪,为什么明明指定的照片目录已经有文件,但是却是一片空白,不要慌,因为还需要做个初始化操作

# 进入容器
docker exec -it home-gallery-server /bin/sh

# 进入 app 目录
cd /app

# 初始化目录
./gallery.js init --source /data/Pictures

用上下键选择不同的选项,第一步选 Update and process source files

然后回车,老苏第二步选择了 Process all files (one run)

回车后开始执行,看起来似乎是做了索引和缩略图操作

再回到页面,刷新一下,这下所有的图片都出来了

在这里插入图片描述

HomeGallery 支持标记和搜索,也可以按年份查看图片。随便打开一张,识别的物体,当然这显然不是 vase

在这里插入图片描述

识别出是人,而且是男性

在这里插入图片描述

女性

在这里插入图片描述

在右上角的搜索框中输入 person

在这里插入图片描述

回车之后

在这里插入图片描述

移动端,比如 Android 手机上,用 Edge 浏览器打开网站

在这里插入图片描述

打开图片

在这里插入图片描述

i 进入详情页

在这里插入图片描述

从资源占用看,老苏觉得还好

在这里插入图片描述

参考文档

xemle/home-gallery: Self-hosted open-source web gallery to view your photos and videos featuring mobile-friendly, tagging and AI powered image discovery
地址:https://github.com/xemle/home-gallery

HomeGallery - self-hosted web gallery
地址:https://home-gallery.org/

Chevereto图片托管是一款非常简洁的PHP图片上传程序,可以将本地电脑上或者是网络上的图片上传到服务器上,集成了TinyURL的短地址服务,让使用者更加方便。Chevereto图片托管 3.10.13 更新日志:2018-05-24- 对每个上传图像预览新增编辑图标指示- 增加了对上传的文件扩展名无效停止- 增加了对PHP 7支持- 在生产中使用的error_reporting当添加管理员通知- 增加了翻译的占位符更新过程- 改进class.sftp.php- 改进class.ftp.php- 改进的自定义CSS功能- 提高存储错误显示- 在列表中修复的安全问题- 使用水印时,在非工作重复图像检测修正错误- 在社会登录强制性电子邮件领域用户设置修复的臭虫- 在全屏装载机修复的臭虫-相册视图修正错误选择的相册的描述文本时- 在用户配置文件中修正错误和未翻译的追随者标签- 在图像列表修正了一张专辑分配多个图像时- 在用户设置修复的臭虫取消链接社交帐户时- 在图像查看器中修正了全景图像- 在图像查看器中修正了假阳性404页(外置存储图像)- Twitter的分享者修正了当没有帐户已建立- 修正了在class.search.php以“q”参数处理- 在测试电子邮件功能,并unbinded $ t参数修正错误- 修正了在任何地方上传与NSFW输入处理- 在搜索模板和空标题修正错误- 在route.api.php修复的语法错误- 在route.dashboard.php修复的语法错误- 更新了Amazon PHP SDK到3.14.0- 更新PHPMailer的到5.2.14- 更新phpseclib库- 更新G\ Library1.0.27- 更新了中国简体,中国传统,丹麦语,荷兰语,法语,印尼语,葡萄牙语(巴西),西班牙语,土耳其语和越南语翻译 主要功能: 1.本地/远程两种图片上传方式; 2.后台文件管理系统; 3.调整图片大小; 4.社交网站分享按钮; 5.TinyURL短地址服务; 6.支持自定义主题模板; 7.多张图片同时上传; 8.缩略图功能; 9.以及一些基本的功能(例如图片大小、数量限制、水印等等)。 所需环境: Apache mod_rewrite 启用 PHP 5.2.0或者更高 MySQL php.ini 中 file_uploads 启用 GD Library 2或者更高 cURL BC Math 程序安装: 1.打开includes/config.php,参照“配置说明”完成设置; 2.打开includes/definitions.php,将changeme修改成其他任意内容; 3.上传目录下的文件; 4.访问程序所在地址,将会自动完成数据库的安装。 配置说明: config.php中的参数内容详细介绍。 theme:模板名称,一般不需要修改 lang:语言,如果需要显示中文请修改成zh-cn auto_lang:自动识别语言,启用为true,关闭为false site_name:网站名称 doctitle:副标题 meta_description:网站描述 meta_keywords:关键词 db_host:MySQL主机地址 db_port:MySQL端口 db_name:数据库名 db_user:数据库用户 db_pass:数据库密码 maintenance:维护模式,启用为true,关闭为false google_analytics_tracking_id:Google Analytics ID minify:CSS、JS优化模式,启用为true,关闭为false private_mode:隐私模式,需要输入密码才可上传图片,启用为true,关闭为false user_password:隐私模式密码 admin_folder:后台路径 admin_password:后台密码 api_key:API密钥 api_mode:API模式 storage:储存方式,datefolders:按日期分目录储存(如:/YYYY-MM-DD/file.jpg);direct:直接储存(如:/image/file.jpg) file_naming:图片命名,original:保持原名,如果重复则添加随机字符;random:图片名随机;mixed:在原名中添加随机字符 folder_images:图片储存目录 folder_thumbs:缩略图储存目录 virtual_folder_image:虚拟图片目录,即展示图片页的虚拟路径 virtual_folder_uploaded:多图片上传时显示上传进程的虚拟路径 max_filesize:最大大小 thumb_width:缩略图宽,单位:像素 thumb_height:缩略图高,单位:像素 min_resize_size:最小调整大小,单位:像素 max_resize_size:最大调整大小,单位:像素 multiupload:多图片上传,启用为true,关闭为false multiupload_limit:多图片上传最大张数 over_resize:扩大图片,即在调整图片的时候将小图片调整为大图片,启用为true,关闭为false flood_protection:洪水攻击保护,启用为true,关闭为false flood_report_email:洪水攻击报告邮箱,如果发生洪水攻击则向该邮箱发送邮件报告 max_uploads_per_minute:每分钟最多上传 max_uploads_per_hour:每小时最多上传 max_uploads_per_day:每天最多上传 max_uploads_per_week:每周最多上传 max_uploads_per_month:每月最多上传 error_reporting:DeBug模式,报告错误,启用为true,关闭为false short_url:短地址功能,启用为true,关闭为false short_url_service:短地址服务商,可用:tinyurl、google、isgd、bitly、custom(自定义) custom_short_url_api:自定义短地址服务商API地址 custom_short_url_service:自定义短地址服务商名称 short_url_user:短地址服务商用户名 short_url_keypass:短地址服务商密码 short_url_image:缩短图片类型 facebook_app_id:FaceBook应用ID facebook_comments:FaceBook评论应用 watermark_enable:水印功能,启用为true,关闭为false watermark_image:水印所在路径 watermark_position:水印位置,用英语方位名词描述 watermark_margin:水印位置,从图片底部算起 watermark_opacity:水印不透明度 root_dir:程序根路径 relative_dir:相对路径
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨浦老苏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值