5分钟轻松搭建Immich图片管理软件并实现公网远程传输照片

文章目录

    • 前言
    • 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带来的简洁方便!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

React和Next.js的相关内容

React–前端框架 React 是一个用于构建用户界面的 JAVASCRIPT 库。 React 主要用于构建 UI,很多人认为 React 是 MVC 中的 V(视图)。 React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 …

【LeetCode热题100】队列+宽搜

这篇博客是关于队列宽搜的几道题&#xff0c;主要包括N叉树的层序遍历、二叉树的锯齿形层序遍历、二叉树最大宽度、在每个数行中找最大值。 class Solution { public:vector<vector<int>> levelOrder(Node* root) {vector<vector<int>> ret;if(!root) …

丹摩征文活动|基于丹摩算力的可图(Kolors)的部署与使用

Kolors是一个以生成图像为目标的人工智能系统&#xff0c;可能采用了类似于OpenAI的DALLE、MidJourney等文本生成图像的技术。通过自然语言处理&#xff08;NLP&#xff09;和计算机视觉&#xff08;CV&#xff09;相结合&#xff0c;Kolors能够根据用户提供的文本描述生成符合…

【PTA】【数据库】【SQL命令】编程题1

数据库SQL命令测试题1 10-1 显示教工编号以02开头的教师信息 作者 冰冰 单位 广东东软学院 显示教工编号以02开头的教师信息 提示&#xff1a;请使用SELECT语句作答。 表结构: CREATE TABLE teacher ( TId CHAR(5) NOT NULL, -- 教师工号&#xff0c;主键 DId CHAR(2) …

Dockerhub镜像加速

一、背景 dockerhub由于被封锁和站点处于国外的原因&#xff0c;docker pull拉取镜像非常慢&#xff0c;有时候直接都无法拉取。严重妨碍了我们的学习进度以及日常使用。 总结了一些proxy代理的镜像站点&#xff0c;配置之后速度会有明显提升&#xff0c;大家可以参考使用。 二…

Linux: C语言解析域名

在上一篇博客 Linux: C语言发起 DNS 查询报文 中&#xff0c;自己构造 DNS 查询报文&#xff0c;发出去&#xff0c;接收响应&#xff0c;以二进制形式把响应的数据写入文件并进行分析。文章的最后留下一个悬念&#xff0c;就是写代码解析 DNS answer section 部分。本文来完成…

Tri Mode Ethernet MAC IP核详解

本文对 Vivado 的三速 MAC IP 核&#xff08;Tri Mode Ethernet MAC&#xff0c;TEMAC&#xff09;进行介绍。 在自行实现三速以太网 MAC 控制器时&#xff0c;GMII/RGMII 接口可以通过 IDDR、ODDR 原语实现&#xff0c;然而实际使用中自己实现的模块性能不是很稳定&#xff08…

CENTOS7 升级gcc版本

升级gcc版本 CentOS下升级gcc版本有两个途径&#xff0c;一个是添加其他源进行自动升级&#xff0c;一个是手动编译升级&#xff0c;这里先顺便讲下自动升级的两个办法&#xff1a; a. 添加Fedora源 在 /etc/yum.repos.d 目录中添加文件 FedoraRepo.repo &#xff0c;并输入…

VMware虚拟机(Ubuntu或centOS)共享宿主机网络资源

VMware虚拟机(Ubuntu或centOS)共享宿主机网络资源 由于需要在 Linux 环境下进行一些测试工作&#xff0c;于是决定使用 VMware 虚拟化软件来安装 Ubuntu 24.04 .1操作系统。考虑到测试过程中需要访问 Github &#xff0c;要使用Docker拉去镜像等外部网络资源&#xff0c;因此产…

学习日记_20241123_聚类方法(高斯混合模型)续

前言 提醒&#xff1a; 文章内容为方便作者自己后日复习与查阅而进行的书写与发布&#xff0c;其中引用内容都会使用链接表明出处&#xff08;如有侵权问题&#xff0c;请及时联系&#xff09;。 其中内容多为一次书写&#xff0c;缺少检查与订正&#xff0c;如有问题或其他拓展…

15.C++STL 2(string类的使用,6000字详解)

⭐本篇重点&#xff1a;string类的使用 ⭐本篇代码&#xff1a;c学习/05.string类的学习 橘子真甜/c-learning-of-yzc - 码云 - 开源中国 (gitee.com) 目录 一. C/C字符与string类 二. STL中的string类的使用 2.1 string类常见的构造与赋值 2.2 string对象的数据容量操作 …

神经网络(系统性学习一):入门篇——简介、发展历程、应用领域、基本概念、超参数调优、网络类型分类

相关文章&#xff1a; 神经网络中常用的激活函数 神经网络简介 神经网络&#xff08;Neural Networks&#xff09;是受生物神经系统启发而设计的数学模型&#xff0c;用于模拟人类大脑处理信息的方式。它由大量的节点&#xff08;或称为“神经元”&#xff09;组成&#xff0…

shell 基础知识2 ---条件测试

目录 一、条件测试的基本语法 二、文件测试表达式 三、字符串测试表达式 四、整数测试表达式 五、逻辑操作符 六、实验 为了能够正确处理 Shell 程序运行过程中遇到的各种情况&#xff0c; Linux Shell 提供了一组测试运算符。 通过这些运算符&#xff0c;Shell 程序能够…

数据指标与标签在数据分析中的关系与应用

导读&#xff1a;分享数据指标体系的文章很多&#xff0c;但讲数据标签的文章很少。实际上&#xff0c;标签和指标一样&#xff0c;是数据分析的左膀右臂&#xff0c;两者同样重要。实际上&#xff0c;很多人分析不深入&#xff0c;就是因为缺少对标签的应用。今天系统的讲解下…

Flutter-Web首次加载时添加动画

前言 现在web上线后首次加载会很慢&#xff0c;要5秒以上&#xff0c;并且在加载的过程中界面是白屏。因此想在白屏的时候放一个加载动画 实现步骤 1.找到web/index.html文件 2.添加以下<style>标签内容到<head>标签中 <style>.loading {display: flex;…

51单片机基础 06 串口通信与串口中断

目录 一、串口通信 二、串口协议 三、原理图 四、串口通信配置参数 1、常用的串行口工作方式1 2、数据发送 3、数据接收 4、波特率计算 5、轮询接收 6、中断接收 一、串口通信 串口通信是一种常见的数据传输方式&#xff0c;广泛用于计算机与外部设备或嵌入式系统之间…

【深度学习之回归预测篇】 深度极限学习机DELM多特征回归拟合预测(Matlab源代码)

深度极限学习机 (DELM) 作为一种新型的深度学习算法&#xff0c;凭借其独特的结构和训练方式&#xff0c;在诸多领域展现出优异的性能。本文将重点探讨DELM在多输入单输出 (MISO) 场景下的应用&#xff0c;深入分析其算法原理、性能特点以及未来发展前景。 1、 DELM算法原理及其…

动态规划子数组系列一>最长湍流子数组

1.题目&#xff1a; 解析&#xff1a; 代码&#xff1a; public int maxTurbulenceSize(int[] arr) {int n arr.length;int[] f new int[n];int[] g new int[n];for(int i 0; i < n; i)f[i] g[i] 1;int ret 1;for(int i 1; i < n-1; i,m. l.kmddsfsdafsd){int…

RabbitMQ3:Java客户端快速入门

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…

【mongodb】社区版8:改变配置bindip和授权

更改配置 sudo systemctl restart mongod (base) root@k8s-master-pfsrv:/home/zhangbin# sudo tail -n 20 /var/log/mongodb/mongod.log 日志感觉是成功了:{"t":{"$date":"2024-11-19T19:57:47.076+08:00"