百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

自由安全并存:使用Docker在Ubuntu搭建LibrePhotos照片管理平台

wptr33 2025-02-10 14:37 31 浏览

前言

本文主要介绍如何在本地Linux系统使用Docker部署LibrePhotos,并结合cpolar内网穿透工具轻松实现随时随地查看浏览器页面,在线照片管理和共享平台,无需公网IP也不用域名与云服务器。

1.关于LibrePhotos

LibrePhotos是一个自托管的开源照片管理与共享平台,其功能媲美Google Photos,但更加注重用户的隐私保护,并赋予用户对自己数据的完全控制权。

更多功能特点如下:

  • 开放自由: LibrePhotos基于开源模式,提供免费服务。这意味着您可以根据自身需求灵活调整和优化软件。
  • 自主部署: 用户可以选择在自己的服务器上安装LibrePhotos,确保了照片和视频的安全存储,杜绝隐私泄露的可能性。
  • 强大功能: 通过集成多种先进技术工具(如ImageMagick、FFmpeg、ExifTool等),LibrePhotos不仅支持高质量的照片与视频处理,还具备高效的数据解析能力。此外,平台提供便捷的上传方式、智能整理分类以及直观友好的操作界面,极大提升了用户体验。
  • 智能化管理: 利用face_recognition库进行精准的人脸识别,并结合scikit-learn和hdbscan算法实现照片自动归类;借助im2txt和places365技术对图像内容及拍摄地点进行智能分析,优化搜索功能。
  • 安全可靠: 实现了数据的本地化存储,防止敏感信息外泄。同时,平台配备了严格的安全措施,包括但不限于强大的用户认证机制,确保只有合法用户才能访问相应的资源库。
  • 灵活共享: 用户可以轻松地与家人、朋友或团队成员分享自己的照片集,并可自定义不同的访问权限设置,满足多样化的需求。

适用人群

  • 个人爱好者: 对于那些珍视隐私且希望自行管理数字资产的个体而言,LibrePhotos无疑是一个完美的解决方案。
  • 家庭用户: 家庭成员可以通过共同维护一个照片库来记录并分享生活中的美好瞬间。
  • 专业团队: 摄影师、设计师及小型企业等专业人士或组织亦能利用此平台高效管理和展示其作品集。

2.本地部署LibrePhotos

本例使用Docker进行部署,如果没有安装Docker,可以查看这篇教程进行安装:《Docker安装教程——Linux、Windows、MacOS》

首先下载部署文件

git clone https://github.com/LibrePhotos/librephotos-docker.git

进入到此文件内

cd librephotos-docker
cp librephotos.env .env

修改配置文件

nano .env

修改里面的配置,如果没有需要自行添加该行配置

timeZone=Asia/Shanghai // 时区,需要自行添加该行配置!
userName=chen // 管理员用户名
userPass=chen // 管理员密码
adminEmail=chenyuge1130@sina.com // 管理员邮箱
shhhhKey=123456 // 随机密钥
httpPort=3000 // 暴露的服务端口
dbName=librephotos // 数据库名
dbUser=docker // 数据库用户
dbPass=123456 // 数据库用户密码
gunniWorkers=4 // 工人数量,每个工人预计消耗800MB RAM
HEAVYWEIGHT_PROCESS=4 // 多线程扫描,每个工人预计消耗800MB RAM

按ctrl+x保存退出后输入以下命令运行容器

sudo docker compose -f docker-compose.yml up -d

服务启动后,在浏览器中访问localhost:3000即可。

3.LibrePhotos简单使用

登录之后点击Data路径即可

右上角点击第三个可以修改头像名字

可以选择语言

点击管理面板选择允许上传

我们就可以上传照片了

4. 安装内网穿透

不过我们目前只能在本地局域网内使用手机电脑等设备访问刚刚使用docker部署的使用LibrePhotos。假设你是一名摄影师,经常需要在外拍摄。你希望有一个安全、可靠的地方来存储和管理自己的照片,并且能够随时随地访问这些照片进行编辑或分享。使用LibrePhotos + Cpolar的组合可以完美解决这个问题,安装一个cpolar内网穿透工具就能轻松实现远程访问内网主机中部署的服务了,接下来介绍一下如何安装cpolar内网穿透。

下面是安装cpolar步骤:

Cpolar官网地址: https://www.cpolar.com

使用一键脚本安装命令

sudo curl https://get.cpolar.sh | sh

安装完成后,执行下方命令查看cpolar服务状态:(如图所示running即为正常启动)

sudo systemctl status cpolar

Cpolar安装和成功启动服务后,在浏览器上输入ubuntu主机IP加9200端口即:【http://localhost:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

5.配置LibrePhotos公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了: LibrePhotos 注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:3000
  • 域名类型:随机域名
  • 地区:选择China Top

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑(异地)上,使用任意一个地址在浏览器中访问即可。

如下图所示,成功实现使用公网地址异地远程访问本地部署的LibrePhotos。

使用账号登录即可正常使用了:

小结

为了方便演示,我们在上边的操作过程中使用cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期使用LibrePhotos远程使用照片管理器,或者异地访问与使用其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想让公网地址好看又好记并体验更多功能与更快的带宽,那我推荐大家选择使用固定的二级子域名方式来配置公网地址。

6. 配置固定公网地址

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】

点击左侧的预留,选择保留二级子域名,地区选择China TOP,然后设置一个二级子域名名称,填写备注信息,点击保留。

保留成功后复制保留的二级子域名地址:LibrePhotos

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道LibrePhotos,点击右侧的编辑

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China TOP

点击更新

现在一个永久不会变化的网址就设置好了。

我们复制下来打开浏览器粘贴,现在我们使用固定的公网地址访问LibrePhotos可以看到访问成功。

可以看到登录后正常访问。

接下来就可以随时随地进行公网访问LibrePhotos了,把公网地址分享给身边的人,还可以方便团队协作。以上就是如何在Linux Ubuntu系统Docker本地安装LibrePhotos并实现异地远程访问的全部过程,感谢观看!

相关推荐

什么是Java中的继承?如何实现继承?

什么是继承?...

Java 继承与多态:从基础到实战的深度解析

在面向对象编程(OOP)的三大支柱中,继承与多态是构建灵活、可复用代码的核心。无论是日常开发还是框架设计,这两个概念都扮演着至关重要的角色。本文将从基础概念出发,结合实例与图解,带你彻底搞懂Java...

Java基础教程:Java继承概述_java的继承

继承概述假如我们要定义如下类:学生类,老师类和工人类,分析如下。学生类属性:姓名,年龄行为:吃饭,睡觉老师类属性:姓名,年龄,薪水行为:吃饭,睡觉,教书班主任属性:姓名,年龄,薪水行为:吃饭,睡觉,管...

java4个技巧:从继承和覆盖,到最终的类和方法

日复一日,我们编写的大多数Java只使用了该语言全套功能的一小部分。我们实例化的每个流以及我们在实例变量前面加上的每个@Autowired注解都足以完成我们的大部分目标。然而,有些时候,我们必须求助于...

java:举例说明继承的概念_java继承的理解

在现实生活中,继承一般指的是子女继承父辈的财产。在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。例如猫和狗都属于动物,程序中便可以描述为猫和狗继承自动物,同理,...

从零开始构建一款开源的 Vibe Coding 产品 Week1Day4:业界调研之 Agent 横向对比

前情回顾前面两天我们重点调研了了一下Cursor的原理和Cursor中一个关键的工具edit_file的实现,但是其他CodingAgent也需要稍微摸一下底,看看有没有优秀之处,下...

学会这几个插件,让你的Notepad++使用起来更丝滑

搞程序开发的小伙伴相信对Notepad++都不会陌生,是一个占用空间少、打开启动快的文件编辑器,很多程序员喜欢使用Notepad++进行纯文本编辑或者脚本开发,但是Notepad++的功能绝不止于此,...

将 node_modules 目录放入 Git 仓库的优点

推荐一篇文章Whyyoushouldcheck-inyournodedependencies[1]...

再度加码AI编程,腾讯发布AI CLI并宣布CodeBuddy IDE开启公测

“再熬一年,90%的程序员可能再也用不着写for循环。”凌晨两点半,王工还在公司敲键盘。他手里那份需求文档写了足足六页,产品经理反复改了三次。放在过去,光数据库建表、接口对接、单元测试就得写两三天。现...

git 如何查看stash的内容_git查看ssh key

1.查看Stash列表首先,使用gitstashlist查看所有已保存的stash:...

6万星+ Git命令懒人必备!lazygit 终端UI神器,效率翻倍超顺手!

项目概览lazygit是一个基于终端的Git命令可视化工具,通过简易的TUI(文本用户界面)提升Git操作效率。开发者无需记忆复杂命令,即可完成分支管理、提交、合并等操作。...

《Gemini CLI 实战系列》(一)Gemini CLI 入门:AI 上命令行的第一步

谷歌的Gemini模型最近热度很高,而它的...

deepin IDE新版发布:支持玲珑构建、增强AI智能化

IT之家8月7日消息,深度操作系统官方公众号昨日(8月6日)发布博文,更新推出新版deepin集成开发环境(IDE),重点支持玲珑构建。支持玲珑构建deepinIDE在本次重磅更...

狂揽82.7k的star,这款开源可视化神器,轻松创建流程图和图表

再不用Mermaid,你的技术文档可能已经在悄悄“腐烂”——图表版本对不上、同事改完没同步、评审会上被一句“这图哪来的”问得哑口无言。这不是危言耸听。GitHub2025年开发者报告显示,63%的新仓...

《Gemini CLI 实战系列》(五)打造专属命令行工具箱

在前几篇文章中,我们介绍了GeminiCLI的基础用法、效率提升、文件处理和与外部工具结合。今天我们进入第五篇...