⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 极客之家 「丛林」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

今天想和大家聊聊一个我最近挖到的开源宝藏——UpSnap。说实话,作为一个喜欢把家里所有设备都联网、但又经常躺床上才想起书房电脑没关的懒人,UpSnap简直是为我量身定做的!

简介

这是一个简单的网络唤醒 Web 应用程序,使用 SvelteKit、Go 和 PocketBase 编写。UpSnap 最初诞生于一个很实际的需求:作者所在的公司需要一个可以通过网页来远程唤醒内部设备的工具。于是,他用 SvelteKit、Go 和 PocketBase 捣鼓出了这个轻量级的 Web 应用,并且毅然决然地把代码开源在了 GitHub 上。

同时,作者声明:UpSnap 现在是、将来也永远是免费开源的软件。目前该项目在GitHub上已经收获5.2k star了。

丰富的功能

  • 一键唤醒的仪表盘: 这是基本功。把你所有设备的MAC地址和IP配置好,它们就会以卡片形式出现在网页上。需要哪台,点一下对应的“唤醒”按钮就行。界面清爽,操作无脑。
  • 像闹钟一样的定时任务: 这是我最爱的功能。你可以通过Cron表达式设置定时任务。比如,让我公司的开发服务器每天早晨8点自动唤醒,或者让NAS在每周五晚上自动开机备份数据。完全自动化,省心到忘记它的存在。
  • 网络扫描: 如果你懒得手动输入一堆设备的IP和MAC,这个功能就太救命了。在后台安装好 nmap 后,UpSnap可以直接扫描指定网段,自动发现局域网里在线的设备。我第一次用的时候,连邻居家不小心暴露的智能设备都扫出来了,属实有点厉害。
  • 状态监控: 它不仅仅是发送唤醒魔术包。UpSnap会持续(或按你设置的间隔)去Ping你的设备,并在界面上清晰地显示“在线”或“离线”状态。让你一眼就知道,你想唤醒的那台机器现在是不是已经在工作了。
  • 多用户与权限: 这可不是单机玩具。UpSnap内置了用户管理系统。管理员可以创建多个用户,并精细地控制每个用户能看见、能操作哪些设备。这意味着你可以放心地把它部署在家里或小团队里,把唤醒客厅电视的权限给家人,而把唤醒服务器的权限留给运维同事,互不干扰。
  • 高可定制性: 支持多国语言(i18n)、拥有多达35种主题样式,这让它摆脱了技术工具常有的“糙汉”形象,变得好看又亲切。

Docker部署

创建项目目录

mkdir -p ~/upsnap && cd ~/upsnap

创建docker-compose.yml文件

cat > docker-compose.yml << 'EOF'
version: '3.8'

services:
upsnap:
image: ghcr.io/seriousm4x/upsnap:latest
container_name: upsnap
restart: unless-stopped
ports:
- "8090:8090" # 左侧8090可改为你喜欢的端口
volumes:
- ./data:/app/data # 配置文件存储位置
- /var/run/docker.sock:/var/run/docker.sock:ro # 可选:用于Docker容器管理
environment:
- TZ=Asia/Shanghai # 设置时区
- POCKETBASE_DATA_DIR=/app/data
# 如果需要扫描网络发现设备,添加以下配置:
# cap_add:
# - NET_ADMIN
# - NET_RAW
network_mode: "host" # 使用host网络模式以便访问局域网
EOF

启动UpSnap

# 给数据目录权限
sudo mkdir -p ./data && sudo chmod 777 ./data

# 启动服务
docker-compose up -d

# 检查运行状态
docker-compose ps

# 查看日志
docker-compose logs -f

防火墙设置

# 如果使用UFW
sudo ufw allow 8090/tcp
sudo ufw reload

# 如果使用firewalld
sudo firewall-cmd --permanent --add-port=8090/tcp
sudo firewall-cmd --reload

UI展示

开源地址

https://github.com/seriousm4x/UpSnap

文章目录
  1. 1. 简介
  2. 2. 丰富的功能
  3. 3. Docker部署
  4. 4. UI展示
  5. 5. 开源地址