开源照片管理服务LibrePhotos

这篇具有很好参考价值的文章主要介绍了开源照片管理服务LibrePhotos。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

开源照片管理服务LibrePhotos,群晖,docker,相册

本文是为了解决网友 赵云遇到的问题,顺便折腾的。虽然软件跑起来了,但是他遇到的问题,超出了老苏的认知。当然最终问题还是得到了解决,不过与 LibrePhotos 无关;

什么是 LibrePhotos ?

LibrePhotos 是一个自托管的开源照片管理和共享平台。它旨在提供一个类似于商业化照片服务的功能,但用户可以完全控制自己的数据,并在自己的服务器上存储照片。

什么是 UhuruPhotos ?

UhuruPhotos 是一款功能齐全,使用 Jetpack Compose和最新的 android 技术编写的 LibrePhotos android 客户端。它借鉴了 Google Photos 的很多想法,旨在成为功能齐全的相册替代品,包括离线支持、备份和同步等功能。

开源照片管理服务LibrePhotos,群晖,docker,相册

安装

在群晖上以 Docker 方式安装。

docker-compose.yml

将下面的内容保存为 docker-compose.yml 文件

源文件来自:https://github.com/LibrePhotos/librephotos-docker/blob/main/docker-compose.yml,老苏只修改了 container_name

# DO NOT EDIT
# The .env file has everything you need to edit.
# Run options:
# 1. Use prebuilt images (preferred method):
#   run cmd: docker-compose up -d
# 2. Build images on your own machine:
#   build cmd: COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose build
#   run cmd: docker-compose up -d

version: "3.8"
services:
  proxy:
    image: reallibrephotos/librephotos-proxy:${tag}
    container_name: librephotos-proxy
    restart: unless-stopped
    volumes:
      - ${scanDirectory}:/data
      - ${data}/protected_media:/protected_media
    ports:
      - ${httpPort}:80
    depends_on:
      - backend
      - frontend

  db:
    image: postgres:13
    container_name: librephotos-db
    restart: unless-stopped
    environment:
      - POSTGRES_USER=${dbUser}
      - POSTGRES_PASSWORD=${dbPass}
      - POSTGRES_DB=${dbName}
    volumes:
      - ${data}/db:/var/lib/postgresql/data
    command: postgres -c fsync=off -c synchronous_commit=off -c full_page_writes=off -c random_page_cost=1.0
    healthcheck:
      test: psql -U ${dbUser} -d ${dbName} -c "SELECT 1;"
      interval: 5s
      timeout: 5s
      retries: 5

  frontend:
    image: reallibrephotos/librephotos-frontend:${tag}
    container_name: librephotos-frontend
    restart: unless-stopped

  backend:
    image: reallibrephotos/librephotos:${tag}
    container_name: librephotos-backend
    restart: unless-stopped
    volumes:
      - ${scanDirectory}:/data
      - ${data}/protected_media:/protected_media
      - ${data}/logs:/logs
      - ${data}/cache:/root/.cache
    environment:
      - SECRET_KEY=${shhhhKey:-}
      - BACKEND_HOST=backend
      - ADMIN_EMAIL=${adminEmail:-}
      - ADMIN_USERNAME=${userName:-}
      - ADMIN_PASSWORD=${userPass:-}
      - DB_BACKEND=postgresql
      - DB_NAME=${dbName}
      - DB_USER=${dbUser}
      - DB_PASS=${dbPass}
      - DB_HOST=${dbHost}
      - DB_PORT=5432
      - MAPBOX_API_KEY=${mapApiKey:-}
      - WEB_CONCURRENCY=${gunniWorkers:-1}
      - SKIP_PATTERNS=${skipPatterns:-}
      - ALLOW_UPLOAD=${allowUpload:-false}
      - CSRF_TRUSTED_ORIGINS=${csrfTrustedOrigins:-}
      - DEBUG=0
      - HEAVYWEIGHT_PROCESS=${HEAVYWEIGHT_PROCESS:-}
    depends_on:
      db:
        condition: service_healthy

一共用到了 4 个镜像,其中:

  • reallibrephotos/librephotos-proxy :反向代理服务;
  • reallibrephotos/librephotos:后端服务;
  • reallibrephotos/librephotos-frontend :前端页面;

以上 3 个镜像 latest 对应的版本均为 2023w31

  • postgres:13:数据库服务;

env.txt

将下面的内容保存为 env.txt 文件

源文件来自:https://github.com/LibrePhotos/librephotos-docker/blob/main/librephotos.env,请根据自己的环境进行修改;

# This file contains all the things you need to change to set up your Libre Photos. 
# There are a few items that must be set for it to work such as the location of your photos.
# After the mandatory entries there are some optional ones that you may set. 

# Start of mandatory changes. 

# Location of your photos.
scanDirectory=./librephotos/pictures

# Internal data of LibrePhotos
data=./librephotos/data

# ------------------------------------------------------------------------------------------------

# Wow, we are at the optional now. Pretty easy so far. You do not have to change any of the below.

# Set this value if you have a custom domain name. This allows uploads and django-admin access. If you do not have a custom domain name, leave this blank.
csrfTrustedOrigins=

#What port should Libre Photos be accessed at (Default 3000)
httpPort=3068

# What branch should we install the latest weekly build or the development branch (dev)
tag=latest

# Number of workers, which take care of the request to the api. This setting can dramatically affect the ram usage.
# A positive integer generally in the 2-4 x $(NUM_CORES) range.
# You’ll want to vary this a bit to find the best for your particular workload.
# Each worker needs 800MB of RAM. Change at your own will. Default is 2.
gunniWorkers=2

# You can set the database name. Did you know Libre Photos was forked from OwnPhotos?
dbName=librephotos

# Here you can change the user name for the database.
dbUser=docker

# The password used by the database.
dbPass=AaAa1234

# Default minimum rating to interpret as favorited. This default value is used when creating a new user.
# Users can change this in their settings (Dashboards > Library).
DEFAULT_FAVORITE_MIN_RATING=4

# Database host. Only change this if you want to use your own existing Postgres server. If using your own server, you can remove the 'db' container from docker-compose.yml. If you're changing the name of the DB's container name (DB_CONT_NAME further down), you need to set this variable to match that name too.
dbHost=db

# Set the names of the docker containers to your own entries. Or don't, I'm not your dad.
# Changing these will require you to `make rename` to rename the services, and start the system with your chosen `docker-compose up -d` invocation again.
# Note that changing the DB_CONT_NAME will also need you to set the `dbHost` variable to the same value.
DB_CONT_NAME=db
BACKEND_CONT_NAME=backend
FRONTEND_CONT_NAME=frontend
PROXY_CONT_NAME=proxy
PGADMIN_CONT_NAME=pgadmin
# ---------------------------------------------------------------------------------------------

# If you are not a developer ignore the following parameters: you will never need them.

# Where shall we store the backend and frontend code files.
codedir=./librephotos/code

# Location for pgAdmin
pgAdminLocation=./librephotos/pgadmin

相比源文件,老苏修改了 3

  • scanDirectory:从 ./librephotos/pictures 修改为了 ./pictures
  • data:从 ./librephotos/data 修改为了 ./data
  • httpPort:从 3000 修改为了 3068,这个只要不冲突就行;

其他参数,除了 dbPass 可以按需要修改外,其他的直接用默认值就可以,除非你清楚每个参数的用途

如果执行时遇到下面的错误,请用 UTF-8 格式保存 env.txt 文件

开源照片管理服务LibrePhotos,群晖,docker,相册

然后执行下面的命令

# 新建文件夹 librephotos 和 子目录
mkdir -p /volume1/docker/librephotos/{data/{cache,db,logs,protected_media},pictures}

# 进入 librephotos 目录
cd /volume1/docker/librephotos

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

# 一键启动
docker-compose --env-file env.txt up -d

目录结构

开源照片管理服务LibrePhotos,群晖,docker,相册

运行

在浏览器中输入 http://群晖IP:3068 ,第一次会看到注册页面

开源照片管理服务LibrePhotos,群晖,docker,相册

然后需要登录

开源照片管理服务LibrePhotos,群晖,docker,相册

登录成功后的主界面

开源照片管理服务LibrePhotos,群晖,docker,相册

需要点 Edit User 按钮来设置路径,直接点击下面的 data 或者直接输入 /data,点 Save 保存即可

开源照片管理服务LibrePhotos,群晖,docker,相册

右下角会提示开始扫描

开源照片管理服务LibrePhotos,群晖,docker,相册

鼠标移到右上角的红点,可以看到照片处理进度

开源照片管理服务LibrePhotos,群晖,docker,相册

变成绿色时,表示已处理完成

开源照片管理服务LibrePhotos,群晖,docker,相册

虽然支持 AI,但期望值不要太高了

开源照片管理服务LibrePhotos,群晖,docker,相册

android 客户端

这是一个第三方的移动客户端,下载地址:https://github.com/savvasdalkitsis/uhuruphotos-android

选择右侧的 Manage media on mypersonal cloud

开源照片管理服务LibrePhotos,群晖,docker,相册

输入服务器地址、账号和密码

开源照片管理服务LibrePhotos,群晖,docker,相册

设置 Allow允许通知

开源照片管理服务LibrePhotos,群晖,docker,相册

Media without date 分类中查看

开源照片管理服务LibrePhotos,群晖,docker,相册

虽然还处于早期阶段,但它已经具备了很多功能,例如:与 LibrePhotos 服务器定期后台同步等

开源照片管理服务LibrePhotos,群晖,docker,相册

参考文档

LibrePhotos/librephotos: Self hosted alternative to Google Photos
地址:https://github.com/LibrePhotos/librephotos

LibrePhotos/librephotos-docker
地址:https://github.com/LibrePhotos/librephotos-docker

🐋 Docker | LibrePhotos
地址:https://docs.librephotos.com/docs/installation/standard-install/

UhuruPhotos. A LibrePhotos android client : selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/ui5xwi/uhuruphotos_a_librephotos_android_client/

savvasdalkitsis/uhuruphotos-android: A LibrePhotos android client written using Jetpack Compose and all the latest Android technologies
地址:https://github.com/savvasdalkitsis/uhuruphotos-android文章来源地址https://www.toymoban.com/news/detail-694435.html

到了这里,关于开源照片管理服务LibrePhotos的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Taurus .Net Core 微服务开源框架:Admin 插件【1】 - 微服务节点管理

    最近发现 NetCore 的文章有点少,特来补几篇。 上一篇:Taurus.mvc .Net Core 微服务开源框架发布V3.1.7:让分布式应用更高效。 自上篇之后,期间更新了4个小版本,更新如下: 其中,大部分和Admin插件相关。 本篇开始,来详细介绍一下该管理插件后台。 最早开发Admin 管理插件,

    2024年02月11日
    浏览(49)
  • Taurus .Net Core 微服务开源框架:Admin 插件【3】 - 指标统计管理

    继上篇:Taurus .Net Core 微服务开源框架:Admin 插件【2】 - 系统环境信息管理 本篇继续介绍下一个内容: 界面图如下: 该页面默认呈现API访问次数的统计,由于要显示的数据列有点多,24小时,因此用了全屏显示。 同时提供快捷切换显示选项:昨天与今天。 如果需要查询其余

    2024年02月11日
    浏览(39)
  • Taurus .Net Core 微服务开源框架:Admin 插件【2】 - 系统环境信息管理

    继上篇:Taurus .Net Core 微服务开源框架:Admin 插件【1】 - 微服务节点管理 本篇继续介绍下一个内容:  基本信息如上图,重点的几个参数: 其它就不另外单独翻译了。 默认 NetCore 整体程序集加载的有点多,达100多个。 默认网关的应用程序的程序集是3个,其余全是公共运行

    2024年02月11日
    浏览(41)
  • runit-docker中管理多个服务

    runit 是一个轻量级的、稳定的、跨平台的服务管理器。它由 Bruce Guenter 开发,目前由 Laurent Bercot 维护。runit 的设计简单明了,易于使用和扩展,非常适合用于运行服务的守护进程。 runit 提供了一种简单的方式来管理系统服务。与传统的 init 系统不同,runit 不使用脚本文件或

    2024年02月14日
    浏览(31)
  • Taurus .Net Core 微服务开源框架:Admin 插件【4-3】 - 配置管理-Mvc【Plugin-MicroService 微服务】

    继上篇:Taurus .Net Core 微服务开源框架:Admin 插件【4-2】 - 配置管理-Mvc【含请求日志打印】 本篇继续介绍下一个内容:  界面如下: 简要说明: 下面对配置进行说明: 必要配置说明: 需要在 appsettings.json 或 web.config 配置该选项,指明类型,如: 其余选项,可采用默认值,

    2024年02月11日
    浏览(35)
  • docker compose 管理应用服务的常用命令

    一 、docker compose 是什么 Docker Compose是一个用来管理多个关联容器的工具,可以根据配置文件自动构建、管理、编排一组容器。 Docker Compose语境下的“服务”是指一组容器共同构成的一个应用服务后端。 Docker Compose语境下的“项目”是由一个或多个应用服务组成的。 Docker Com

    2024年02月07日
    浏览(32)
  • 49学习容器管理平台 Docker Swarm 的基本概念和应用,包括节点管理、服务编排

    Docker Swarm 是 Docker 官方提供的容器编排工具,可以管理多个 Docker 节点,并支持自动化扩展、负载均衡等功能。下面是 Docker Swarm 的基本概念和使用方法,包括节点管理和服务编排。 在 Docker Swarm 中,一个或多个 Docker 节点组成一个 Swarm 集群,其中一个节点是 Swarm Manager,负责

    2024年02月05日
    浏览(44)
  • 【云原生】portainer管理多个独立docker服务器

    目录  一、portainer简介 二、安装Portainer 1.1 内网环境下:       1.1.1 方式1:命令行运行       1.1.2 方式2:通过compose-file来启动 2.1 配置本地主机(node-1) 3.1 配置其他主机(被node-1管理的节点服务器) 4.1 node-1portainer管理界面添加endpoint 公司的主要业务都是运行在docker中的

    2024年02月08日
    浏览(32)
  • Docker 第十三章 : Docker 三剑客之 Swarm(服务管理命令)

    第十三章 : Docker 三剑客之 Swarm(服务管理命令) 本章知识点: Docker Swarm的服务管理命令是一个功能强大的工具,使用户能够方便地部署、扩展和管理容器化应用程序。 通过Swarm的服务管理命令,用户可以创建、更新、删除和扩展服务。这些命令提供了丰富的选项和参数,

    2024年02月21日
    浏览(32)
  • [1Panel]开源,现代化,新一代的 Linux 服务器运维管理面板

    本期测评试用一下1Panel这款面板。1Panel是国内飞致云旗下开源产品。整个界面简洁清爽,后端使用GO开发,前端使用VUE的Element-Plus作为UI框架,整个面板的管理都是基于docker的,想法很先进。官方还提供了视频的使用教程,本期为大家按照本专栏的基本内容进行多方面的测评。

    2024年02月07日
    浏览(89)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包