Quay lại danh sách
Tin tức công nghệ

Tự Host Gotify Trên VPS: Hệ thống Tự Gửi Thông Báo Đẩy (Push Notification) Về Android Tức Thì Qua API

3 tháng 6, 2026

Giới thiệu về Gotify và giải pháp thông báo đẩy độc lập

Trong kỷ nguyên chuyển đổi số, việc theo dõi trạng thái hệ thống, tiến trình xử lý dữ liệu hay nhận cảnh báo bảo mật ngay lập tức (real-time) đã trở thành yêu cầu sống còn đối với các kỹ sư hệ thống và nhà phát triển phần mềm. Thông thường, chúng ta hay nghĩ đến các nền tảng như Telegram, Slack hay Discord để gửi bot notification. Tuy nhiên, việc phụ thuộc vào bên thứ ba luôn tiềm ẩn rủi ro về bảo mật dữ liệu, giới hạn băng thông (rate limit) và đôi khi là sự chậm trễ không đáng có.

Đó là lý do Gotify ra đời. Gotify là một dịch vụ mã nguồn mở được thiết kế riêng cho mục đích gửi và nhận thông báo đẩy (push notification) một cách đơn giản, bảo mật và độc lập. Bằng cách tự host (self-host) Gotify trên máy chủ ảo VPS (Virtual Private Server) cá nhân, bạn hoàn toàn làm chủ dòng dữ liệu của mình mà không tốn bất kỳ chi phí bản quyền nào.

Tại sao nên lựa chọn Gotify thay vì các nền tảng khác?

Dù có nhiều công cụ hỗ trợ gửi thông báo, Gotify vẫn khẳng định được vị thế trong cộng đồng DevOps nhờ vào những ưu điểm vượt trội:

  • Hoàn toàn riêng tư và bảo mật: Mọi dữ liệu thông báo được lưu trữ trực tiếp trên VPS của bạn, không đi qua máy chủ của bất kỳ tập đoàn công nghệ nào khác.
  • Tốc độ tức thì (Real-time): Sử dụng giao thức WebSocket, Gotify truyền tải thông báo đến điện thoại Android của bạn gần như ngay lập tức sau khi API được kích hoạt.
  • Giao diện REST API siêu tối giản: Việc tích hợp Gotify vào mã nguồn (Python, Node.js, Shell Script, PHP...) chỉ tốn vài dòng lệnh curl đơn giản.
  • Tiết kiệm tài nguyên: Gotify được viết bằng ngôn ngữ Go (Golang), cực kỳ nhẹ và tiêu tốn rất ít RAM/CPU của VPS.
  • Không giới hạn số lượng: Bạn có thể tạo vô số ứng dụng (Applications) và gửi hàng triệu thông báo mà không lo bị khóa tài khoản hay tính phí nâng cấp.

Yêu cầu chuẩn bị hệ thống

Để bắt đầu triển khai hệ thống, bạn cần chuẩn bị một số thành phần cơ bản sau:

  1. Một máy chủ ảo VPS (Ubuntu 20.04 hoặc 22.04 LTS được khuyến nghị) có IP công khai.
  2. Một Tên miền (Domain Name) đã được trỏ về IP của VPS (để cấu hình SSL/HTTPS giúp bảo mật đường truyền).
  3. Đã cài đặt sẵn Docker và Docker Compose trên VPS để thuận tiện cho việc quản lý container.
  4. Điện thoại sử dụng hệ điều hành Android (vì hiện tại Gotify ưu tiên hỗ trợ ứng dụng native trên nền tảng Android).

Hướng dẫn chi tiết các bước cài đặt Gotify bằng Docker Compose

Bước 1: Khởi tạo thư mục dự án

Đầu tiên, hãy truy cập vào VPS qua SSH và tạo một thư mục riêng cho Gotify bằng cách chạy các lệnh sau:

mkdir -p ~/gotify/data
cd ~/gotify

Bước 2: Cấu hình file docker-compose.yml

Sử dụng trình soạn thảo văn bản (như nano hoặc vim) để tạo file cấu hình cho container:

nano docker-compose.yml

Sao chép và dán nội dung cấu hình dưới đây vào file:version: "3" services: gotify: image: gotify/server:latest container_name: gotify_server ports: - "8080:80" environment: - GOTIFY_DEFAULTUSER_PASS=ThayDoiMatKhauCuaBanTaiDay volumes: - "./data:/app/data" restart: always

Lưu ý quan trọng: Hãy thay thế "ThayDoiMatKhauCuaBanTaiDay" bằng một mật khẩu mạnh để bảo vệ tài khoản quản trị mặc định (admin) của bạn.

Bước 3: Khởi chạy dịch vụ Gotify

Sau khi lưu file, khởi chạy container ở chế độ chạy ngầm (detached mode) bằng lệnh:

docker compose up -d

Bây giờ, bạn có thể kiểm tra xem dịch vụ đã hoạt động chưa bằng cách truy cập http://IP_CUA_VPS:8080 trên trình duyệt web.

Cấu hình Reverse Proxy Nginx và thiết lập SSL/HTTPS

Để đảm bảo an toàn thông tin khi truyền tải trên Internet, việc mã hóa lưu lượng bằng chứng chỉ SSL là bắt buộc. Chúng ta sẽ sử dụng Nginx làm Reverse Proxy để điều hướng tên miền về cổng 8080 của Gotify và cài đặt SSL miễn phí từ Let's Encrypt.

Cấu hình file Nginx

Tạo một file cấu hình Nginx mới cho Gotify:

sudo nano /etc/nginx/sites-available/gotify.conf

Cấu hình block server cơ bản hướng đến container Gotify. Điểm mấu chốt ở đây là cấu hình hỗ trợ WebSocket, vì ứng dụng Gotify dựa vào giao thức này để đẩy thông báo theo thời gian thực:

server {
    listen 80;
    server_name gotify.tenmien_cua_ban.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # Hỗ trợ WebSockets cho Gotify
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }
}

Kích hoạt cấu hình và khởi động lại Nginx:

sudo ln -s /etc/nginx/sites-available/gotify.conf /etc/nginx/sites-enabled/
sudo systemctl restart nginx

Sau đó, sử dụng Certbot để tự động lấy chứng chỉ SSL và cấu hình HTTPS bảo mật.

Kết nối ứng dụng Android với Máy chủ Gotify cá nhân

Khi máy chủ web đã hoạt động ổn định qua giao thức HTTPS bảo mật, hãy thực hiện các bước sau trên điện thoại Android của bạn:

  1. Truy cập vào CH Play hoặc F-Droid, tìm kiếm và tải về ứng dụng Gotify chính thức.
  2. Mở ứng dụng, nhập địa chỉ URL máy chủ của bạn (ví dụ: [https://gotify.tenmien_cua_ban](https://gotify.tenmien_cua_ban).com).
  3. Đăng nhập bằng tài khoản admin và mật khẩu bạn đã thiết lập ở bước cấu hình Docker.

Sau khi kết nối thành công, điện thoại của bạn sẽ duy trì một kết nối WebSocket ngầm đến VPS. Để đảm bảo không bỏ lỡ thông báo, hãy nhớ tắt tính năng tối ưu hóa pin (Battery Optimization) đối với ứng dụng Gotify trên cài đặt của hệ điều hành Android.

Sử dụng API để gửi thông báo đẩy lập tức

Đây là phần cốt lõi của hệ thống. Gotify quản lý các nguồn thông báo thông qua khái niệm Applications. Bạn có thể tạo một Application riêng cho hệ thống backup, một cái cho bảo mật VPS, và một cái cho ứng dụng web cá nhân.

Bước 1: Lấy Token API

Đăng nhập vào giao diện Web UI của Gotify, chuyển đến tab Apps và nhấn Create Application. Đặt tên cho ứng dụng (ví dụ: "Monitor VPS") và hệ thống sẽ cấp cho bạn một chuỗi Token duy nhất.

Bước 2: Gửi thông báo bằng lệnh cURL

Bây giờ, bạn có thể gửi một thông báo đẩy ngay lập tức từ bất kỳ đâu chỉ với một dòng lệnh HTTP POST request. Hãy chạy thử lệnh sau trong terminal hoặc tích hợp nó vào script của bạn:

curl -X POST "[https://gotify.tenmien_cua_ban](https://gotify.tenmien_cua_ban).com/message?token=CHUOI_TOKEN_CUA_BAN" \
     -F "title=Cảnh Báo Hệ Thống" \
     -F "message=Ổ đĩa cứng trên VPS sắp đầy! Dung lượng hiện tại đã vượt quá 90%." \
     -F "priority=5"

Trong đó tham số priority quyết định mức độ khẩn cấp của thông báo đẩy trên Android (Mức càng cao thì âm thanh cảnh báo càng lớn và có thể bỏ qua chế độ im lặng nếu được cấu hình).

Kết luận và các kịch bản ứng dụng thực tế

Hệ thống tự host Gotify trên VPS mang lại sự linh hoạt tuyệt đối cho các nhà phát triển và quản trị viên. Một số kịch bản thực tế mà doanh nghiệp và cá nhân có thể ứng dụng ngay bao gồm: Tự động gửi thông báo khi có người dùng đăng nhập SSH vào VPS, Cảnh báo khi website bị sập (down-time) qua các công cụ monitor như Uptime Kuma, hoặc Thông báo khi một tiến trình chạy ngầm (cronjob) hoàn thành xuất sắc nhiệm vụ.

Sở hữu một hệ thống đẩy thông báo riêng giúp bạn làm chủ hoàn toàn hạ tầng công nghệ thông tin, tối ưu hóa quy trình làm việc và nâng cao tính bảo mật cho doanh nghiệp. Chúc các bạn cấu hình thành công hệ thống Gotify của riêng mình!

Tự Host Gotify Trên VPS: Hệ thống Tự Gửi Thông Báo Đẩy (Push Notification) Về Android Tức Thì Qua API | DPTCloud