Chuyên mục
Network Self Hosting

UpSnap – Công cụ quản lý và khởi động máy tính qua mạng (Wake-On-LAN)

Trước đây, mình đã từng chia sẻ cách khởi động máy tính từ xa sử dụng Raspberry và Python. Tuy nhiên cách này đòi hỏi phải chỉnh sửa code Python và tạo service trên hệ thống khá phức tạp. Ngoài ra, còn bị hạn chế chỉ điều khiển được 1 máy tính duy nhất.

Bài viết hôm nay sẽ giới thiệu với mọi người công cụ mới để quản lý và khởi động máy tính qua mạng với tên gọi UpSnap. Nó được phát triển bằng SvelteKit, Go, PocketBase và nmap, với nhiều tính năng hữu ích:

  • Giao diện web thân thiện, ra lệnh khởi động máy tính chỉ với 1 cái click chuột
  • Ra lệnh khởi động hoặc tắt máy tính bằng cron
  • Chỉnh sửa port theo ý muốn để ping đến máy tính.
  • Tìm thiết bị trong mạng nội bộ bằng tính năng scan network
  • Tuỳ biến giao diện dark / light
  • Có sẵn Docker images dành cho amd64, arm64, arm/v7

I. Cài đặt UpSnap

UpSnap có sẵn Docker image nên việc cài đặt cực kỳ đơn giản.

Tạo thư mục upsnap và file docker-compose.yml

mkdir ~/upsnap
cd ~/upsnap
nano docker-compose.ymlCode language: Bash (bash)

Nhập vào nội dung sau và lưu lại

version: "3"
services:
  upsnap:
    image: ghcr.io/seriousm4x/upsnap:3
    network_mode: host
    restart: unless-stopped
    volumes:
      - ./data:/app/pb_dataCode language: YAML (yaml)

Kích hoạt Docker-compose

docker-compose up -d

2. Thêm thiết bị vào Dashboard

Truy cập UpSnap theo địa chỉ http://<IP-Server>:8090. Bấm vào Go to settings to add devices… để thêm thiết bị

Nếu đã biết IP và MAC Address của máy tính cần khởi động từ xa, bạn cố thể nhập trực tiếp vào mục Add new device và bấm Add device.

Hoặc có thể sử dụng tính năng Network scan để dò tìm thiết bị trong mạng nội bộ và thêm vào Dashbooard.

Bấm nút Scan để dò tìm thiết bị

Tìm máy tính tương ứng cần quản lý và bấm Add +

3. Khởi động máy tính từ Dashboard

Dashbooard của UpSnap sau khi thêm thiết bị sẽ hiện ra như sau. Bạn có thể bấm vào biểu tượng 3 dấu chấm để thay đổi tên của thiết bị.

UpSnap sẽ liên tục ping đến các thiết bị trong danh sách để kiểm tra tình trạng tắt mở. Nếu không nhận được phản hồi, máy tính sẽ hiện logo power màu đỏ, nghĩa là đang tắt.

Bấm vào logo màu đỏ của GAMING-PC để khởi động máy. Sau vài giây, máy tính GAMING-PC đã khởi động thành công. Logo đã được chuyển sang xanh lá – đang mở.

4. Khởi động máy tính bằng API

UpSnap còn hỗ trợ sử dụng API để khởi động máy tính từ xa.

Truy cập vào Backend bằng địa chỉ http://<IP-Server>:8090/_/. Trong lần truy cập đầu tiên, bạn cần phải nhập email và password để tạo tài khoản admin.

Truy cập vào mục devices để tìm id của máy tính cần mở

Copy lại id của máy tính.

API Endpoint để khởi động máy tính từ xa như sau

[GET] /api/upsnap/wake/:id

Mình sử dụng Terminal trong Windows để kiểm tra thử bằng lệnh curl

curl -v http://<IP-Server>:8090/api/upsnap/wake/jixxxxxxxxxxxxCode language: JavaScript (javascript)

Kết quả trả về như sau. Đồng thời máy tính GAMING-PC cũng được khởi dộng thành công.

Mình có thể dụng API này để ra lệnh khởi động máy tính từ xa bằng giọng nói thông qua Google Assistant. Hẹn khi nào rãnh sẽ có bài hướng dẫn.

Chúc bài cài đặt UpSnap thành công!

Nếu bài viết của mình mang đến thông tin, kiến thức hữu ích cho bạn, đừng ngại mời mình ly bia để có thêm động lực chia sẻ nhiều hơn nữa. Cám ơn bạn!

Lưu ý: Nếu bạn cần hỗ trợ kỹ thuật, vui lòng gửi câu hỏi trực tiếp ở phần Thảo luận bên dưới, mình sẽ trả lời sớm. Đừng mò vào hỏi trong fanpage Yêu Chạy Bộ, sẽ không có phản hồi đâu!

Bởi Thuận Bùi

Runner at Yêu Chạy Bộ. Blogger at Ba Lô & Dép Lào. Web Developer at TB's Blog.
Follow me: Facebook / Instagram

6 trả lời trong “UpSnap – Công cụ quản lý và khởi động máy tính qua mạng (Wake-On-LAN)”

Anh ơi cho em hỏi có phần mềm nào quản lý các máy tính trong mạng local. Có thể điều khiển máy tự shutdown vào 1 giờ định trước và tự shutdown khi không dùng máy tính ko ạ?

Bác ơi cho e hỏi sao e sử dụng lệnh curl
curl -v http://:8090/api/upsnap/wake/jixxxxxxxxxxxx
Mà nó lại báo thế này
* Trying 192.168.1.100:8090…
* Connected to 192.168.1.100 (192.168.1.100) port 8090 (#0)
> GET /api/upsnap/wake/4sinc5y9oxk4jc3 HTTP/1.1
> Host: 192.168.1.100:8090
> User-Agent: curl/8.0.1
> Accept: */*
>
< HTTP/1.1 401 Unauthorized
< Content-Type: application/json; charset=UTF-8
< Vary: Origin
< X-Content-Type-Options: nosniff
< X-Frame-Options: SAMEORIGIN
< X-Xss-Protection: 1; mode=block
< Date: Thu, 18 May 2023 04:54:03 GMT
< Content-Length: 103
<
{"code":401,"message":"The request requires admin or record authorization token to be set.","data":{}}
* Connection #0 to host 192.168.1.100 left intact

Không biết chỉnh sao để kh bị lỗi requires admin nhỉ bác. thanks bác trước

E wake bằng web thì được mà dùng api thì kh được. Khả năng là do phải trình gì liên quan đến trong pocketbase. E cài xong kh đụng chạm gì trong đó mà vẫn kh được. Check log trong đó cũng báo như bên trên. Tiếc ghê. Có gì bác tìm hiểu r cho e xin hướng cài đặt. Thanks bác nhiều

Trả lời Zakshin Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *