mt-photos.md

news/2025/3/17 16:39:51/文章来源:https://www.cnblogs.com/nsfoxer/p/18777138

跨链小主机

目录
  • 跨链小主机
    • 前言
    • MT Photos介绍
    • 功能特性
    • 跨链小主机
      • 硬件
      • 系统
        • 机械硬盘自动挂载
        • 设置zram
        • Sun-panel

前言

22年底入手了一台相机,至今也拍了不少照片,但一直没有一个好用的备份方式(或者说是查看方式)。之前也写过一个脚本按拍摄时间来整理照片,但总归不大好用。去年也因为要下载torrent,入手了一台小主机,刚好搭建一个照片管理服务。开始用的PhotoPhrism,整体体验马马虎虎,也没有太好用,但至少比之前手动浏览文件夹强了不少。今年想给家人也用上,但社区版(免费版)不支持多用户。我不得不再找个照片管理服务。看V2EX上有人推荐mt photos,但又评论说是这个软件的debuff满满(国产、小公司、闭源),不过它有一个月的免费试用,我就抱着试试看的态度搭建上,发现体验真心不错!

很赞的软件,所以现在写个博客记录一下。

MT Photos介绍

这是一款简单、好用的照片管理系统.

支持自动整理、分类您的照片,比如:时间、地点、人物、照片类型。
您可以在任何支持Docker的系统中运行它。

功能特性

  • 时间线的方式,展示您的照片
  • 文件夹的方式,展示您的照片
  • 通过图库您可以方便地将现有存储中的照片,提供给用户
  • 手机App备份照片、视频支持丰富的命名规则(按年月分文件夹、按拍摄日期命名文件等);
  • 通过人脸识别,自动生成人物相册
  • 基于照片的GPS信息,自动生成地点相册
  • 支持Live Photos的无损备份、下载、显示
  • 文件类型,自动分类屏幕截图、自拍照、视频、动态照片
  • 基于照片内容,自动生成场景相册
  • 通过影集分享,您可以方便地将照片分享给家人

我觉着比较赞的几个功能:

  • 时间线展示文件

  • 那年今日展示

  • 多用户及图库权限分配

  • AI识别:人脸识别、文字识别、场景识别 (个人感觉场景识别效果一般般)

  • 以文搜图

  • 照片地图

  • 多端支持:

    • 服务端: Linux(支持docker的都可以) windows
    • 客户端:网页、安卓、苹果IOS 、平板(也算)
  • 很不错的客服支持(2025-02-20,至少目前也不错)

  • 在线激活:

    客户端免费,服务端收费。购买后按照激活码算,而不是和设备绑定 (也有人不喜欢这个,因为不能离线。实际上,MT Photos也支持离线激活,只是这样激活码就和机器绑定了)

  • APP端的图片备份

  • 不太大的硬件需求 (虽然是python和node开发,但实际平时内存和CPU占用并不大)

总之,是一个相当不错的软件,服务端也支持windows的GUI运行,但我不需要。/Dog

跨链小主机

硬件

我姑且叫它NAS吧,主打一个便宜,购买小主机主要参考这里。总配置如下:

  • CPU: N3540
  • 内存:8G
  • 固态硬盘:32GB
  • 外置机械硬盘:2TB

机器最大的优点是被动散热,待机功耗低,平时只有5W左右,性能也够用。缺点是只有一个有线网口,不支持wifi,硬盘是msata接口。

花费:

  • 跨链机器: 199元
  • 8G内存: 30元
  • 2TB机械硬盘(USB接口): 379元

一套下来,也600元了,肉疼,硬盘太贵了。

系统

安装一个Debain 12

foxer@debian ~> neofetch_,met$$$$$gg.          foxer@debian ,g$$$$$$$$$$$$$$$P.       ------------ ,g$$P"     """Y$$.".        OS: Debian GNU/Linux trixie/sid x86_64 ,$$P'              `$$$.     Kernel: 6.1.0-29-amd64 
',$$P       ,ggs.     `$$b:   Uptime: 32 days, 57 mins 
`d$$'     ,$P"'   .    $$$    Packages: 1393 (dpkg) $$P      d$'     ,    $$P    Shell: fish 3.6.0 $$:      $$.   -    ,d$$'    Terminal: /dev/pts/0 $$;      Y$b._   _,d$P'      CPU: Intel Pentium N3540 (4) @ 2.665GHz Y$$.    `.`"Y$$$$P"'         GPU: Intel Atom Processor Z36xxx/Z37xxx Series Graphics & Display `$$b      "-.__              Memory: 2745MiB / 7826MiB `Y$$`Y$$.                                              `$$b.                                            `Y$$b.`"Y$b._`"""

机械硬盘自动挂载

  1. 获取硬盘UUID

    # 1. 获取机械硬盘设备  得到对应机械硬盘为 /dev/sdb
    foxer@debian ~> lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
    sda      8:0    0 29.8G  0 disk 
    ├─sda1   8:1    0  512M  0 part /boot/efi
    ├─sda2   8:2    0 28.4G  0 part /
    └─sda3   8:3    0  976M  0 part [SWAP]
    sdb      8:16   0  1.8T  0 disk 
    └─sdb1   8:17   0  1.8T  0 part /media/foxer/ns-disk
    zram0  254:0    0  3.8G  0 disk [SWAP]# 2. 获取设备UUID
    foxer@debian ~> sudo blkid /dev/sdb
    [sudo] foxer 的密码:
    /dev/sdb: PTUUID="3cfc6c0b-edca-4c1c-9002-c1a73b0fcc33" PTTYPE="gpt"
    
  2. 编辑/etc/fstab,根据UUID写入文件

    # 挂载点为 /media/foxer/ns-disk
    # 文件类型为 ext4 
    # 如果挂载失败,则自动忽略  defaults,nofail
    # 0 不使用 dump 工具进行备份
    # 1 文件系统在启动时进行磁盘检查(fsck)
    foxer@debian ~> cat /etc/fstab 
    # /etc/fstab: static file system information.
    #
    # Use 'blkid' to print the universally unique identifier for a
    # device; this may be used with UUID= as a more robust way to name devices
    # that works even if disks are added and removed. See fstab(5).
    #
    # systemd generates mount units based on this file, see systemd.mount(5).
    # Please run 'systemctl daemon-reload' after making changes here.
    #
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    # / was on /dev/sda2 during installation
    UUID=3f6cbd19-afe4-45bb-af3c-ee4e47cfb36b /               ext4    errors=remount-ro 0       1
    # /boot/efi was on /dev/sda1 during installation
    UUID=02E6-04EB  /boot/efi       vfat    umask=0077      0       1
    # swap was on /dev/sda3 during installation
    UUID=55de7730-9ac0-441e-9110-37a948540cea none            swap    sw              0       0
    UUID=f8c1577e-c4e6-4b5a-b132-702f46c2ae3f /media/foxer/ns-disk            ext4    defaults,nofail              0       1
    

设置zram

zram是一个内存压缩技术,可以让系统运行更多的程序。

# 1. 安装zram相关工具
foxer@debian ~> sudo apt install zram-tools# 2. 直接启用 systemctl
foxer@debian ~> sudo systemctl enable --now /dev/zram0# 3. 查看zram
foxer@debian ~> sudo zramctl
NAME       ALGORITHM DISKSIZE  DATA  COMPR  TOTAL STREAMS MOUNTPOINT
/dev/zram0 zstd          3.8G  1.2G 741.2M 749.2M       4 [SWAP]

Sun-panel

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python运算注意点

1、整除// 9//2得出为4,被除数在前。 取余% 9%2得出1 2、round()函数,表示四舍五入,奇进偶不进 例:round(3.5)为4 round(6.5)为6 3、赋值 多变量赋值,直接用,隔开。 赋值加运算(先运算再赋值,也就是先乘2*3=6,直接赋值给b)4、逻辑运算符有一种优化机制,短…

Bernoulli Equation

伯努利方程 伯努利方程并非一个独立的定律,而是在不同条件下由 Navier-Stokes 动量方程(式1)和能量方程(式2)推导而来的。 \[\rho\left(\frac{\partial u_{j}}{\partial t} + u_{i}\frac{\partial u_{j}}{\partial x_{i}}\right)=-\frac{\partial p}{\partial x_{j}}+\rho…

社区演讲-基于.NET 技术栈的研发过程管理和智能化探索

Hi all 2024年11月23日,我作为【项目管理实践探索者大会】专题讲师,给社区分享了主题《基于.NET 技术栈的研发过程管理和智能化探索》 现场参与人数:100+ 演讲议题介绍: 体系建设:如何设计一个合适的研发过程管理体系 平台提效:通过.NET技术构建任务驱动+流程驱动,释放研…

halcon 深度学习教程(二)halcon基于深度学习的OCR检测

原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/18777081深度学习教程目录如下,还在继续更新完善中 深度学习系列教程目录 本篇非常简单,但是非常好用的OCR识别,传统的OCR识别方法一大堆各种各样的操作,麻烦的要死。halcon 22版本开始支持深度学习OCR,并且…

[ SpringMVC ] SpringMVC如何通过是否有@RestController注解来判断返回ModelAndView还是Json

引言之前在面试的遇到面试官问我SpringMVC的执行流程,我那时候回答的是SpringMVC的DispatcherServlet的dodispatch方法找到ControllerMethod之后将返回值通过convert成Json返回响应体,事后想了一下回答的其实并不正确,因为SpringMVC之前学习的时候有使用ModelAndView返回视图,我…

从HR+AI到AI+HR,企业人力资源AI进程已过半

一、人力资源管理智能化应势而上,核心价值受企业管理层肯定 过往各项研究表明,AI 已经被广泛应用于企业经营的各个环节中。根据易路于2023 年发布的《AI 在企业人力资源中的应用白皮书1.0》(以下简称《白皮书1.0》),我们可以明确感受到:AI 已不同程度应用于招聘管理、员工…

multi-object tracking in the dark

创新点:构建LMOT数据集:开发了一种双摄像头系统,同步采集明暗视频帧,形成高度对齐的低光视频对,并提供高质量的多目标跟踪标注。该数据集包含大量城市户外场景视频,涵盖多种动态物体,为模型训练和评估提供了丰富的数据支持。 提出LTrack方法:引入自适应低通下采样模块(…

LGP11831_1 [UPTS 2025] 追忆 学习笔记

LGP11831_1 [UPTS 2025] 追忆 学习笔记 Luogu Link 前言 又幻想了……唉! 幻想自己场切这道题,最后标准分上升至 \(\text{598pts}\),翻掉了 \(\text{yyz}\),不至于一点脸不要。 本题解基本借鉴这篇题解。 题意简述 给定一个 \(n\) 点 \(m\) 边的简单有向图 \(G\),有 \(m\)…

sql 在两个数据表中,A表存在字段以逗号分隔存储B表的多id对象,进行关联查询

A 表:B表:关联查询 需求为,查询出A表的数据列表,需要将A表关联B表的数据id,概要通过B表的 name 进行输出显示 SELECT A.id,A.name,A.creator,A.created_at,GROUP_CONCAT(B.name SEPARATOR , ) AS B_names -- 将 c_name 合并为逗号分隔的字符串 FROM xf_service_type A LE…

算力市场何以拥有巨大潜力

算力市场未来确实具有巨大的潜力,这一判断基于多个方面的因素: 一、算力成为经济增长的主要驱动力 随着全球数字化转型的迅猛推进,算力已成为推动经济增长的关键引擎。各国纷纷加大在算力基础设施方面的投入,以期为经济发展注入新的活力。例如,欧盟委员会批准了一项名为“…

算法备案拟公示内容编写指南

除了自评估报告,算法备案复审中的拟公示内容也是难度颇大的一份材料,导致很多开发者的算法备案申请被驳回。今天我就提供一份简易模板供大家学习参考(请结合实际情况撰写,不要照抄,不要买模板,否则会判定真实性存疑或高度雷同,影响备案)。(各类文件套模板都会判定该真…

CH585 RF_Basic例程讲解含单向和双向发送

CH585_RF基础通讯例程见下图路径:1、RF初始化参数配置/******************************************************************************** @fn RFRole_Init** @brief RF应用层初始化** @param None.** @return None.*/ void RFRole_Init(void) {rfTaskID = TMOS_…