Chuyên mục
Docker Docker For Synology Network

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.yml

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_data

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/jixxxxxxxxxxxx

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!