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

Biến VPS Cũ Thành Smart Home Server: Hướng Dẫn Toàn Diện Host Home Assistant, AdGuard DNS và Jellyfin

18 tháng 5, 2026

Giới Thiệu: Tái Sinh VPS Cũ Thành Trung Tâm Thông Minh

Trong thời đại số hóa, nhiều doanh nghiệp và cá nhân sở hữu những máy chủ ảo (VPS) cũ không còn được sử dụng hiệu quả. Thay vì để chúng ngừng hoạt động hoặc tốn chi phí bảo trì không cần thiết, bạn hoàn toàn có thể biến chúng thành một smart home server mạnh mẽ, tích hợp đa dịch vụ phục vụ cho ngôi nhà và văn phòng thông minh. Bài viết này cung cấp hướng dẫn toàn diện để triển khai ba dịch vụ cốt lõi: Home Assistant cho tự động hóa, AdGuard Home cho bảo mật DNS và lọc quảng cáo, cùng Jellyfin cho hệ thống media server - tất cả trên một VPS duy nhất.

Tại Sao Nên Sử Dụng VPS Làm Smart Home Server?

Việc host các dịch vụ smart home trên VPS mang lại nhiều lợi ích chiến lược so với các thiết bị phần cứng chuyên dụng tại nhà (như Raspberry Pi).

  • Tính sẵn sàng cao: VPS thường được đặt trong các data center với nguồn điện dự phòng, kết nối mạng ổn định và hệ thống làm mát chuyên nghiệp, đảm bảo thời gian hoạt động (uptime) lên tới 99.9%.
  • Truy cập từ xa an toàn: Bạn có thể quản lý và tương tác với hệ thống smart home từ bất kỳ đâu có internet mà không cần cấu hình phức tạp như mở port hay Dynamic DNS.
  • Khả năng mở rộng: Tài nguyên VPS (CPU, RAM, storage) có thể dễ dàng nâng cấp theo nhu cầu phát triển của hệ thống.
  • Bảo mật vật lý: Dữ liệu được lưu trữ ngoài site, giảm thiểu rủi ro mất mát do sự cố tại chỗ như hỏa hoạn, trộm cắp.
  • Tiết kiệm chi phí dài hạn: Tận dụng VPS sẵn có giúp tối ưu hóa ngân sách CNTT, tránh đầu tư mới vào phần cứng.

Kiến Trúc Hệ Thống Và Yêu Cầu Kỹ Thuật

Trước khi triển khai, cần xác định kiến trúc tổng thể và đảm bảo VPS đáp ứng yêu cầu tối thiểu.

Kiến Trúc Đề Xuất

Chúng ta sẽ sử dụng Docker và Docker Compose làm nền tảng container hóa. Mỗi dịch vụ (Home Assistant, AdGuard, Jellyfin) sẽ chạy trong container riêng biệt, được kết nối thông qua mạng nội bộ của Docker. Cách tiếp cận này đảm bảo tính cô lập, dễ dàng quản lý, cập nhật và mở rộng.

Yêu Cầu Tối Thiểu Cho VPS

  • Hệ điều hành: Ubuntu Server 22.04 LTS hoặc bản phân phối Linux ổn định tương tự.
  • CPU: Tối thiểu 2 vCore (khuyến nghị 4 vCore cho hoạt động mượt mà).
  • RAM: Tối thiểu 4GB (khuyến nghị 8GB nếu chạy nhiều add-on trong Home Assistant hoặc transcode video trên Jellyfin).
  • Storage: Tối thiểu 40GB SSD (cần nhiều hơn nếu lưu trữ thư viện media lớn cho Jellyfin).
  • Băng thông: Đủ cho lưu lượng truy cập từ xa, đặc biệt quan trọng khi streaming video.

Triển Khai Từng Bước Với Docker Compose

Bước 1: Chuẩn Bị Môi Trường VPS

Đăng nhập vào VPS qua SSH và cập nhật hệ thống.

sudo apt update && sudo apt upgrade -y
sudo apt install -y docker.io docker-compose-v2 git

Thêm user hiện tại vào group docker để chạy lệnh không cần sudo.

sudo usermod -aG docker $USER
newgrp docker

Bước 2: Tạo Cấu Trúc Thư Mục Và File Docker Compose

Tổ chức thư mục rõ ràng giúp quản lý cấu hình và dữ liệu dễ dàng.

mkdir -p ~/smart-home/{homeassistant,adguard,jellyfin}
cd ~/smart-home

Tạo file docker-compose.yml với nội dung định nghĩa cả ba dịch vụ.

Bước 3: Cấu Hình Home Assistant

Trong file docker-compose, định nghĩa service Home Assistant với các volume mapping phù hợp để lưu trữ cấu hình và dữ liệu liên tục. Sử dụng image chính thức homeassistant/home-assistant:stable. Cấu hình network mode là host để Home Assistant có thể khám phá thiết bị trong mạng nội bộ một cách tự nhiên (nếu sử dụng các giao thức như mDNS). Tuy nhiên, cần lưu ý về bảo mật và cân nhắc sử dụng mạng bridge kết hợp với VPN nếu cần.

Bước 4: Cấu Hình AdGuard Home

AdGuard Home sẽ đóng vai trò như máy chủ DNS nội bộ, chặn quảng cáo, theo dõi và bảo vệ thiết bị khỏi các trang web độc hại. Định nghĩa service với image adguard/adguardhome. Map các port 53 (UDP/TCP) cho DNS, 80 và 443 cho giao diện quản trị web. Lưu ý: nếu VPS đã chạy web server khác trên port 80/443, cần điều chỉnh port mapping hoặc sử dụng reverse proxy.

Bước 5: Cấu Hình Jellyfin

Jellyfin cung cấp giải pháp streaming media mã nguồn mở. Định nghĩa service với image jellyfin/jellyfin. Map thư mục chứa media từ host vào container. Cấu hình các biến môi trường như PUID và PGID để đảm bảo quyền truy cập file đúng cách. Nếu cần transcode video, cần map device /dev/dri (cho Intel QuickSync) hoặc /dev/nvidia (cho GPU NVIDIA) vào container.

Bước 6: Khởi Chạy Và Cấu Hình Ban Đầu

Chạy lệnh docker-compose up -d để khởi động cả ba dịch vụ. Sau đó, truy cập lần lượt vào giao diện web của từng dịch vụ để hoàn tất cài đặt ban đầu:

  1. AdGuard Home: Truy cập http://[IP-VPS]:3000 để thiết lập admin account, cấu hình upstream DNS (như Cloudflare, Google DNS) và bộ lọc.
  2. Home Assistant: Truy cập http://[IP-VPS]:8123 để tạo user, tích hợp các thiết bị và viết automation.
  3. Jellyfin: Truy cập http://[IP-VPS]:8096 để thiết lập thư viện media, ngôn ngữ và cài đặt streaming.

Kết Nối Và Bảo Mật Hệ Thống

Thiết Lập Reverse Proxy Với Nginx Proxy Manager

Để truy cập an toàn qua HTTPS và quản lý nhiều subdomain trên một IP, triển khai Nginx Proxy Manager (NPM) như một service thứ tư trong docker-compose. NPM cho phép cấu hình proxy dễ dàng qua giao diện web, tự động lấy chứng chỉ SSL từ Let's Encrypt. Ví dụ cấu hình domain: ha.yourdomain.com trỏ đến Home Assistant, dns.yourdomain.com trỏ đến AdGuard, media.yourdomain.com trỏ đến Jellyfin.

Bảo Mật Truy Cập

  • Fail2ban: Cài đặt để chống lại các đợt tấn công brute force SSH và web.
  • Firewall (UFW): Chỉ mở các port thực sự cần thiết (SSH, 80, 443 cho NPM).
  • Xác thực hai yếu tố (2FA): Kích hoạt 2FA cho tài khoản admin của Home Assistant và AdGuard Home.
  • Cập nhật thường xuyên: Thiết lập cron job tự động cập nhật container và hệ điều hành.

Tích Hợp Và Tự Động Hóa Nâng Cao

Sức mạnh thực sự của hệ thống nằm ở khả năng tích hợp giữa các dịch vụ.

Tích Hợp AdGuard DNS Vào Home Assistant

Sử dụng integration AdGuard Home trong Home Assistant để giám sát thống kê DNS, quản lý client và danh sách chặn trực tiếp từ giao diện Home Assistant. Điều này cho phép tạo automation dựa trên hoạt động mạng, ví dụ: tắt đèn khi tất cả điện thoại trong nhà đã truy cập các trang mạng xã hội sau 10 giờ tối.

Tích Hợp Jellyfin Vào Home Assistant

Cài đặt integration Jellyfin cho Home Assistant để hiển thị trạng thái phát media, điều khiển playback và tạo cảnh báo. Bạn có thể tạo automation: khi bắt đầu xem phim trên Jellyfin, Home Assistant tự động điều chỉnh đèn phòng khách, hạ rèm và tắt thông báo điện thoại.

Backup Tự Động

Triển khai script backup định kỳ toàn bộ thư mục cấu hình và database, nén và gửi lên cloud storage (như Google Drive, Backblaze B2) hoặc một VPS backup khác. Có thể sử dụng container restic hoặc duplicati trong cùng docker-compose.

Kết Luận

Việc biến một VPS cũ thành smart home server tích hợp không chỉ là giải pháp tối ưu chi phí mà còn mang lại sự linh hoạt, độ tin cậy và bảo mật vượt trội so với các giải pháp tại chỗ truyền thống. Với kiến trúc dựa trên Docker, bạn dễ dàng mở rộng hệ thống bằng các dịch vụ khác như Nextcloud (lưu trữ đám mây), WireGuard (VPN), hoặc Grafana (giám sát). Bằng cách làm chủ công nghệ này, bạn không chỉ xây dựng một ngôi nhà thông minh mà còn tạo ra một nền tảng số hóa vững chắc, có khả năng phát triển cùng với nhu cầu cá nhân và gia đình trong tương lai.

Lưu ý quan trọng: Một số nhà cung cấp VPS có thể hạn chế việc chạy các dịch vụ như DNS server (port 53) hoặc yêu cầu mở ticket để được phép. Hãy kiểm tra điều khoản sử dụng (ToS) trước khi triển khai. Ngoài ra, đảm bảo bạn có quyền sở hữu hoặc phân phối hợp pháp đối với tất cả nội dung media được lưu trữ trên Jellyfin.