本地Docker部署高颜值跨平台照片管理软件lmmich并远程上传图片

news2024/11/16 20:16:48

文章目录

    • 前言
    • 1.关于Immich
    • 2.安装Docker
    • 3.本地部署Immich
    • 4.Immich体验
    • 5.安装cpolar内网穿透
    • 6.创建远程链接公网地址
    • 7.使用固定公网地址远程访问

前言

本篇文章介绍如何在本地搭建lmmich图片管理软件,并结合cpolar内网穿透实现公网远程访问到局域网内的lmmich,实现随时随地上传照片到媒体库。

Immich是一个自托管的照片和视频备份解决方案,允许用户在私有服务器上存储、管理和分享他们的媒体文件。这个项目旨在提供一个类似于Google照片或iCloud照片库的体验,但是用户可以完全控制自己的数据。通过自托管,用户不需要依赖第三方云服务提供商来存储私人照片和视频,这增加了隐私保护和数据所有权。

在这里插入图片描述

1.关于Immich

Immich的主要特点包括:

自托管:所有数据都存储在用户自己的服务器上。
照片和视频备份:提供自动的媒体文件备份功能。
易于访问:通过Web界面和移动应用,用户可以轻松访问、管理和分享他们的媒体库。
数据控制:用户完全拥有和控制自己的数据,而不是存储在第三方的云服务中。
隐私保护:由于是自托管解决方案,用户的照片和视频不会被未经授权的第三方访问。
Immich通常通过Docker容器化部署,使得安装和维护变得简单。项目在GitHub上开源,社区驱动,不断更新和改进。

Github官方地址:GitHub - immich-app/immich: High performance self-hosted photo and video management solution.

使用Immich,用户需要具备一定的技术背景,特别是关于如何部署和维护自托管服务的知识。但对于希望提高个人数据隐私和安全性的用户来说,Immich提供了一个很好的解决方案。

2.安装Docker

本教程操作环境为Linux Ubuntu系统,在开始之前,我们需要先安装Docker

在终端中执行下方命令安装Docker:

curl -fsSL https://get.docker.com -o get-docker.sh

然后再启动Docker

sudo sh get-docker.sh

最后我们在docker容器中运行下 hello world 看一下是否安装成功

sudo docker container run hello-world

可以看到出现了hello world,也就是说明我们已经安装docker成功,那么接下来就可以直接拉取Answer镜像了。

image-20240910145208138

3.本地部署Immich

打开一个新的终端,输入下方命令安装脚本

curl -o- https://raw.githubusercontent.com/immich-app/immich/main/install.sh | sudo bash

该脚本将执行以下操作:

①.从存储库的main分支下载docker-compose.yml和.env文件。

②.启动容器。

image-20240920153208643

运行完命令后,打开一个浏览器输入localhost:2283或者直接复制红框里面的链接,就可以进入到Immich首页了。下面的api结尾的链接是可以复制到手机或者平板上打开浏览器访问。

image-20240920153250645

4.Immich体验

现在我们就成功在Ubuntu系统本地搭建了Immich,点击中间的Getting Started登录或注册自己的账号,就可以拥有属于自己的相册啦~

image-20240920154528454

进入到相册,整个界面非常简洁,功能简单明了,也都比较实用。

总体分为7大功能:图片、探索、地图、分享、收藏、相册、归档和回收站。

小结

Immich 安装相对简单,体验下来,简单易用,能满足基本的需求,尤其是照片归类功能比较实用,将所有人物识别到统一相册内,也方便查找,一个简洁云盘非常香!但如果想实现不在同一个局域网下,也能随时随地上传或查看自己储存在本地的图片,就需要借助cpolar内网穿透工具来实现公网访问了~下面我将介绍一下如何安装cpolar内网穿透,并实现无公网IP访问本地Immich!

5.安装cpolar内网穿透

下面是安装cpolar步骤:

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

使用一键脚本安装命令

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

img

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

sudo systemctl status cpolar

image-20240924094847716

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

image-20240801133735424

6.创建远程链接公网地址

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

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

image-20240924095148740

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址(可在高级设置中配置只生成http或https一条公网地址):

image-20240924095335565

然后就可以在其他电脑或手机平板(异地)上,使用上边任选其一的公网地址在浏览器中访问即可。

image-20240924095459152

可以看到成功实现使用公网地址异地远程本地部署的Immich照片管理器!重新登录自己的账号就可以玩转Immich啦~

小结

为了方便演示,我们在上边的操作过程中使用了cpolar生成的公网地址隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时远程测试时使用。

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

7.使用固定公网地址远程访问

登录cpolar官网,点击左侧的预留,选择保留二级子域名,地区选择China VIP,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称,这里我填写的是Immich,大家也可以自定义喜欢的名称。

image-20240924100206237

保留成功后复制保留成功的二级子域名的名称:Immich,返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道Immich,点击右侧的编辑:

image-20240924100320518

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

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

点击更新(注意,点击一次更新即可,不需要重复提交)

image-20240924100401904

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名:

image-20240924100517791

接着使用这个固定公网地址在浏览器访问,可以看到访问成功啦~这样即使不在同一个局域网下也可以随时随地用这个网址来远程访问本地部署的Immich来管理照片了!

image-20240924100653083
以上就是如何在Linux Ubuntu系统使用Docker部署Immich照片管理器,并结合cpolar内网穿透工具配置固定公网地址,实现随时随地远程访问本地搭建的Immich的全部流程,感谢您的观看,如果你也有远程访问本地部署服务的需求,不妨体验一下cpolar带来的简洁方便!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2169923.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python新手学习过程记录之基础环境:环境变量、版本区分、虚拟环境

https://img-blog.csdnimg.cn/img_convert/0604267530a515112e51dfc80d0b0ee7.png 刚开始接触Python并学习一门开发语言,可能就会遇到一些棘手的问题,比如电脑上不知不觉已经安装了多个python版本,python3.8/3.10/3.11,甚至一些软件中也集成有python解释器;那么我编…

c语言:知识补充

c语言中编译开始会对#define&#xff0c;#include等内容做预处理&#xff0c;可以用#define写一些简单函数&#xff0c;方便使用 #include <stdio.h> #include <stdlib.h>#define MAX(A, B) ((A) > (B) ? (A) : (B))int main(){printf("%d\n", MAX(…

【Java 集合】List接口 —— ArrayList 与 LinkedList 详解

List接口继承自Collection接口&#xff0c;是单列集合的一个重要分支。 在List集合中允许出现重复的元素&#xff0c;所有的元素是以一种线性方式进行存储的&#xff0c;在程序中可以通过索引&#xff08;类似于数组中的元素角标&#xff09;来访问集合中的指定元素。另外&…

onload_tcpdump命令抓包报错Onload stack [7,] already has tcpdump process

最近碰到Onload 不支持同时运行多个 tcpdump 进程的报错&#xff0c;实际上使用了ps查询当时系统中并没有tcpdump相关进程存在。需要重启服务器本机使用onload加速的相关进程后才能使用onload_tcpdump正常抓包&#xff0c;很奇怪&#xff0c;之前确实没遇到这样的问题&#xff…

生成速度提升70%,32K版本上新,讯飞星火API全新升级!

从“通用”到“真正有用”&#xff0c;大模型应用价值正在释放&#xff01;在C端&#xff0c;AI会议、AI绘图、AI音乐、AI PPT、AI视频等新兴应用层出不穷。在B端&#xff0c;大模型在智能客服、智能营销、知识问答等场景中的应用效果开始显现。 对于绝大多数AI开发者和中小型…

easyExcel使用模版填充excel,合并单元格

一、最终效果 二、制作模版 1、制作填充模版 模版在代码中保存的位置 2、Controller /*** 下载模板*/ RequestMapping(value "exportData") public void exportData(KqKqb kqKqb,HttpServletResponse response, HttpServletRequest request) throws IOExceptio…

大模型时代,程序员能保住头发吗?

10月24日&#xff0c;位于安徽合肥的奥林匹克体育中心&#xff0c;正在举行一场大型科技峰会&#xff0c;奔涌而入的人潮&#xff0c;很快就将主会场挤了个满。这是科大讯飞主办的第六届世界声博会暨2023全球1024开发者节的现场。自2017年以来&#xff0c;这家公司每年都会在10…

如何选择高品质SD卡

如何选择高品质SD卡 SD卡&#xff08;Secure Digital Memory Card&#xff09;是一种广泛使用的存储器件&#xff0c;因其快速的数据传输速度、可热插拔的特性以及较大的存储容量&#xff0c;广泛应用于各种场景&#xff0c;例如在便携式设备如智能手机、平板电脑、运动相机等…

修改timeout问题

1. vad超时时间为10s&#xff0c;10s会出现一个空识别。 解决办法一&#xff1a; 修改/usr/aispeech/conf/duiPlus.cof中的的vad下面的timeout为100000 传给duiPlusNew的vad.timeout要增加&#xff0c;暂时设置为100000&#xff0c;注意单实例配置、多实例配置只需要设置子实例…

【算法】DFS 系列之 穷举/暴搜/深搜/回溯/剪枝(上篇)

【ps】本篇有 9 道 leetcode OJ。 目录 一、算法简介 二、相关例题 1&#xff09;全排列 .1- 题目解析 .2- 代码编写 2&#xff09;子集 .1- 题目解析 .2- 代码编写 3&#xff09;找出所有子集的异或总和再求和 .1- 题目解析 .2- 代码编写 4&#xff09;全排列 II…

PostgreSQL 17 发布了!非常稳定的版本

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、My…

springboot+大数据基于数据挖掘的招聘信息可视化大屏系统【内含源码+文档+部署教程】

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ &#x1f345;由于篇幅限制&#xff0c;想要获取完整文章或者源码&#xff0c;或者代做&am…

以到手价为核心的品牌电商价格监测

在当今竞争激烈的电商时代&#xff0c;品牌的价格监测至关重要。传统的页面价监测已无法满足品牌对渠道管控的需求&#xff0c;而到手价监测则成为品牌控价的关键所在。 力维网络&#xff0c;作为深耕数据监测服务多年的专业机构&#xff0c;拥有自主开发的数据监测系统&#…

对spring框架的搭建进行封装---springboot

目录 一.回顾spring 二.springboot概述 三.springboot的特点 四.springboot环境搭建 五.springboot配置文件 六.springboot数据访问管理 七.springboot注解 八.springboot集成mybatis 九.springboot全局异常捕获与处理 一.回顾spring 优点 开源,轻量级,非侵入式的一站式…

Springboot + netty + rabbitmq + myBatis

目录 0.为什么用消息队列1.代码文件创建结构2.pom.xml文件3.三个配置文件开发和生产环境4.Rabbitmq 基础配置类 TtlQueueConfig5.建立netty服务器 rabbitmq消息生产者6.建立常规队列的消费者 Consumer7.建立死信队列的消费者 DeadLetterConsumer8.建立mapper.xml文件9.建立map…

Visual Studio导出动态库

1、创建新项目&#xff0c;选择如下 2、工程目录结构如下 3、编写pch.h文件&#xff0c;内容如下 // pch.h: 这是预编译标头文件。 // 下方列出的文件仅编译一次&#xff0c;提高了将来生成的生成性能。 // 这还将影响 IntelliSense 性能&#xff0c;包括代码完成和许多代码浏…

AI驱动TDSQL-C Serverless 数据库技术实战营-融合智能体与TDSQL-C技术,高效实现二手房数据查询与分析应用

文章目录 什么是TDSQL-C技术创新算力服务器与数据库服务器申请与部署购买 TDSQL-C Mysql Serverless 实例购买HAI高算力服务器 准备工作准备数据下载依赖 案例研发创建数据库写入数据智能体与TDSQL-C 的结合应用第一步配置llama3.1第二步代码开发运行应用测试应用 总结 什么是T…

戏曲多多 1.0.6.0 专为电视端设计的戏曲与生活内容APP,同样适用于安卓手机,方便老年人使用

戏曲多多是一款专为电视端设计的应用程序&#xff0c;也可安装在安卓手机上&#xff0c;特别适合不会使用手机的老年人。该应用包含戏曲、红歌、儿歌、老电影等丰富内容&#xff0c;非常适合老年人的观看喜好。此外&#xff0c;还有广场舞教学、养生太极教程&#xff08;包括太…

Qualitor processVariavel.php 未授权命令注入漏洞复现(CVE-2023-47253)

0x01 漏洞概述 Qualitor 8.20及之前版本存在命令注入漏洞,远程攻击者可利用该漏洞通过PHP代码执行任意代码。 0x02 复现环境 FOFA&#xff1a;app"Qualitor-Web" 0x03 漏洞复现 PoC GET /html/ad/adpesquisasql/request/processVariavel.php?gridValoresPopHi…

3 pyqt5 Layout布局(保证主界面缩放各组件也对应缩放)== 主要有Qt Designer和完全代码设置两种设计方式(根据自己情况选择即可)

文章目录 前言一、Layout的类别二、使用Qt Designer进行Layout布局三、完全使用代码进行Layout布局前言 本节我们的http测试的例子,只实现界面方面的逻辑,底层不用管。我们主要的目的是通过这个例子设计界面布局。 我们前面写的界面程序有个问题,如果你用鼠标拖拽主窗口边…