局域网唤醒工具UpSnap

news2024/12/24 21:21:39

在这里插入图片描述

什么是 UpSnap ?

UpSnap 是使用 SvelteKitGoPocketBasenmap 编写的简单局域网唤醒应用程序。

v3 更新日志:

  • ⚙️ 后端:

    • Go 重写。之前的版本是 Python 写的;
    • 不再支持不同的数据库。后端现在使用基于 SQLitePocketBase
    • 添加了使用密码唤醒事件的选项。如果您的网卡支持,您可以在 BIOS中找到它,称为 SecureOnsmiliar
    • PocketBase 提供了一个 API。可以登录 localhost:8090/_/,点击右上角的 API reviewP·
  • 🎨 前端:

    • Svelte 转换为 SvelteKit,并且几乎重写了所有内容;
    • 摆脱了模式。页面应该更加用户友好;
    • 设备卡上更好的徽章以显示 cron 事件和密码保护;
  • 通用:

    • 大大减少资源需求;
    • 单个二进制文件即可运行所有内容
    • 反向代理不再需要自定义路由;

安装

在群晖上以 Docker 方式安装。

镜像下载

官方的镜像发布在 ghcr.io
地址:https://github.com/seriousm4x/UpSnap/pkgs/container/upsnap

SSH 客户端登录到群晖后,依次执行下面的命令

# 新建文件夹 upsnap 和子目录 
mkdir -p /volume2/docker/upsnap/data

# 进入 upsnap 目录
cd /volume2/docker/upsnap

# 拉取镜像
## 需要注意:官方没有 latest ,所以需要自己去查最新的版本
docker pull ghcr.io/seriousm4x/upsnap:3.0.3

如果没有科学上网,很可能会拉不动,可以试试 docker 代理网站:https://dockerproxy.com/,但是会多几个步骤

# 如果拉不动的话加个代理
docker pull ghcr.dockerproxy.com/seriousm4x/upsnap:3.0.3

# 重命名镜像(如果是通过代理下载的)
docker tag ghcr.dockerproxy.com/seriousm4x/upsnap:3.0.3 ghcr.io/seriousm4x/upsnap:3.0.3

# 删除代理镜像(如果是通过代理下载的)
docker rmi ghcr.dockerproxy.com/seriousm4x/upsnap:3.0.3

下载完成后,可以在 映像 中找到

在这里插入图片描述

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 upsnap 和 子目录
mkdir -p /volume2/docker/upsnap/data

# 进入 upsnap 目录
cd /volume2/docker/upsnap

# 运行容器
docker run -d \
   --restart unless-stopped \
   --network host \
   --name upsnap \
   -v $(pwd)/data:/app/pb_data \
   ghcr.io/seriousm4x/upsnap:3.0.3

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

这是完整的官方版本

version: "3"

services:
  upsnap:
    image: ghcr.io/seriousm4x/upsnap:3.0.3
    container_name: upsnap
    network_mode: host
    restart: unless-stopped
    volumes:
      - ./data:/app/pb_data
    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:8090/api/health || exit 1
      interval: 1m
      timeout: 10s
      retries: 3
    # environment:
    #   - TZ=Europe/Berlin # Set container timezone for cron schedules
    #   - UPSNAP_INTERVAL=@every 10s # Sets the interval in which the devices are pinged
    #   - UPSNAP_SCAN_RANGE=192.168.1.0/24 # Scan range is used for device discovery on local network
    #   - UPSNAP_WEBSITE_TITLE=Custom name # Custom website title
    # command: ["./upsnap", "serve", "--http", "0.0.0.0:8090"] # Uncomment this if you want to change the port for example

然后执行下面的命令

# 新建文件夹 upsnap 和 子目录
mkdir -p /volume2/docker/upsnap/data

# 进入 upsnap 目录
cd /volume2/docker/upsnap

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

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8090 就能看到主界面

添加设备

进设置里添加设备

添加完成之后,回到首页会出现设备卡片

点①可以直接网络唤醒

在这里插入图片描述

唤醒之后,开关按钮会变绿

在这里插入图片描述

点②则显示该设备的详细信息

尝试再添加个端口,比如 SSH 使用的22

在这里插入图片描述

设备卡片上会增加

在这里插入图片描述

网络扫描

如果觉得一台一台添加麻烦,也可以直接用网络扫描

在这里插入图片描述

速度还是比较快的,但存在缺漏

点设备后面的 Add +,返回首页

在这里插入图片描述

API

PocketBase 提供了 API ,浏览器中打开 http://群晖IP:8090/_/

在这里插入图片描述

注册账号之后,进入主界面

在这里插入图片描述

右上角 API Preview

在这里插入图片描述

日志

在这里插入图片描述

最后来一张官网的图

在这里插入图片描述

参考文档

seriousm4x/UpSnap: A simple wake on lan app written with SvelteKit, Go, PocketBase and nmap
地址:https://github.com/seriousm4x/UpSnap

UpSnap v3 is out and rewritten in Go : selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/10rz7jc/upsnap_v3_is_out_and_rewritten_in_go/

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

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

相关文章

Qt+QtWebApp开发笔记(三):http服务器动态html连接跳转基础交互

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/130840894 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

电脑密码忘了怎么解除?试试这3个方法!

案例:我的电脑太久没有使用,导致我忘记了密码,试了好几次还是显示密码错误。怎样才能找回电脑的开机密码? 【我忘记了电脑密码,导致我无法使用电脑,给我的生活带来了很大的困扰。有没有小伙伴遇到过相同的…

开发最佳实践|集成声网 iOS SDK,实现语音聊天室

大家好,我是声网 RTE 开发者社区作者 小曾同学。本次主要分享集成声网SDK实现语音聊天室。 01 前言 在日常生活中经常会看到一些聊天场景,比如在线KTV、连麦开黑、多人相亲、娱乐聊天室等应用场景,随着移动应用开发的需求不断增加&#xff…

提高记忆力的 10 种记忆技巧和工具

人工智能的迅速发展,让人不禁猜想是否有一天我们也能靠AI来提高自己的记忆力?哈哈也许真的可行🤖 其实现在已经有很多记忆技巧和工具,不仅可以帮助我们存储信息,还可以更好地回忆和记忆更大的信息集。 实际上&#x…

lwIP更新记07:TCP 控制块申请失败可以检测到了

从 lwIP-2.0.0 开始,TCP 控制块申请失败可以检测到了。 这个更新应用在 TCP 服务器模式中,处于监听状态的 TCP_PCB ,如果收到客户端发送的 SYN 同步标志,表示一个客户端在请求建立连接了。lwIP 会为这个新连接申请一个 TCP_PCB &…

APP启动页和闪屏的知识点

APP启动页和闪屏的知识点_51CTO博客_app启动屏广告 启动页与闪屏的区别 1.启动页 (launch screen ) 当app被用户打开时,在app启动过程中被用户所看到的过渡页面(或动画)都被我们统称为启动页。 优点: 1.打开一个产品时,需要有一定的时间加载&#xff…

windows sever服务器安装系统新手版

混在learnsite群里已经有几年了吧,但是只有一段时间用了别人现成的一个iso版本还比较老,这次打算自己弄一个,一开始打算linux下弄,结果系统都装完了发现人家说learnsite在linux下有点bug没解决好,只能win下再弄&#x…

爬虫为什么会使用到代理ip?

爬虫使用代理IP的主要目的是为了隐藏自己的真实IP地址,以避免被目标网站封禁或限制访问。如果一个爬虫频繁地向一个网站发送请求,而且每次请求的IP地址都相同,那么这个网站就有可能认为这是一种恶意行为,从而采取封禁或限制访问的…

用 Python 写 3D 游戏

vizard介绍 Vizard是一款虚拟现实开发平台软件,从开发至今已走过十个年头。它基于C/C,运用新近OpenGL拓展模块开发出的高性能图形引擎。当运用Python语言执行开发时,Vizard同时自动将编写的程式转换为字节码抽象层(LAXMI),进而运行…

如何对项目进度进行跟踪?逐步完善项目计划

我接手了一个小项目,但是无论是我还是领导,都认为这是个简单的项目,最多一月时间就能搞定。但是,随着时间推移,三个月也没有将内容完善。于是我进行了反思总结,我认为存在如下问题: 1、资源协…

vue3在setup中请求数据并使用的几种方式

因为Composition组合式API setup有一点点不同特此举例几种可行的请求数据并使用方式 第一种 Promise 参考代码如下 <template><div>{{ min }}</div> </template><script> import { ref } from vue; import { getUser } from /api/user export d…

应急响应之内存分析方法

应急响应之内存分析方法 1.内存的获取基于内核模式程序的内存获取基于系统崩溃转储的内存获取基于虚拟化快照的内存获取dumpit获取(推荐)2.内存的分析RedlineVolatility1.内存的获取 基于内核模式程序的内存获取 这种获取方法一般需要借助相关的工具来完成。常用的提取工具…

leetcode 2542. Maximum Subsequence Score(最大子串分数)

2个数组&#xff0c;长度一样&#xff0c;从中选k个下标&#xff08;两个数组用同样的下标&#xff09;&#xff0c; 会得到k个nums1中的数字&#xff0c;和k个nums2中的数字。 score k个nums1的数字之和 ✖ min(k个nums2的数字&#xff09;&#xff0c; 找到最大的score。 思…

【Qt】QLocalSocket与QLocalServer问题:接收不到数据、只能收到第一条、数据不完整解决方案【2023.05.24】

简介 Qt很强大,但是Qt的帮助文档、API属实是让我们走不少弯路。QLocalSocket一个很简单的东西,我仅想用来实现一个简单的本地进程通信,就遇到了:客户端循环发送数据,服务端只能接收到一条、接收到数据不完整等奇奇怪怪的现象。 最郁闷的是,网上很多教程说的都是错的😒。…

Web服务器实现|基于阻塞队列线程池的Http服务器|线程控制|Http协议

基于阻塞队列生产者消费者模型线程池的多线程Web服务器 代码地址&#xff1a;WebServer_GitHub_Addr README 摘要 本实验通过C语言&#xff0c;实现了一个基于阻塞队列线程池的多线程Web服务器。该服务器支持通过http协议发送报文&#xff0c;跨主机抓取服务器上特定资源。与…

火山引擎数智平台VeDI助力某办公软件企业营销线索转化提升14%

一条营销线索&#xff0c;从官网后台下载到完成成交&#xff0c;到底需要经历哪些环节&#xff1f; 在企业级市场的销售场景中&#xff0c;营销线索通常是指用户通过相关产品的官方网站或者营销活动界面&#xff0c;主动留下的联系方式&#xff1b;而根据线索价值的不同&#…

2023京东618全民拆快递互动活动玩法规则!

2023京东618全民拆快递&#xff0c;瓜分20亿活动规则&#xff01; 618无门槛红包29号开领&#xff01; ​手机京东搜索&#xff1a;好运红包210&#xff0c;领最高20618&#xff0c;每天可领三次&#xff01; ​手机京东搜索&#xff1a;能省就省50&#xff0c;领最高23888…

深度学习进阶篇-预训练模型[1]:预训练分词Subword、ELMo、Transformer模型原理;结构;技巧以及应用详解

【深度学习入门到进阶】必看系列&#xff0c;含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍&#xff1a;【深度学习入门到进阶】必看系列&#xff0c;含激活函数、优化策略、损失函数、模型调优、归一化…

算法设计与分析期末总结

前言&#xff1a;基本是为了我自己看的一些我容易忘记的东西&#xff0c;为考试作准备把&#xff0c;主要使后半部分的知识&#xff0c;前半部分请看算法设计与分析阶段考总结 第五章 回溯算法是一种系统地搜索问题的解的方法。某个问题的所有可能解的称为问题的解空间&#xf…

百度工程师移动开发避坑指南——Swift语言篇

作者 | 启明星小组 上一篇我们介绍了移动开发常见的内存泄漏问题&#xff0c;见《百度工程师移动开发避坑指南——内存泄漏篇》。本篇我们将介绍Swift语言部分常见问题。 对于Swift开发者&#xff0c;Swift较于OC一个很大的不同就是引入了可选类型&#xff08;Optional&#…