Nên tự host ứng dụng nào vào năm 2026?
Danh sách 25 ứng dụng self-host đáng chạy nhất năm 2026. Xem ngay mức tiêu thụ RAM, disk thực tế và các lỗi Docker cần tránh để tối ưu VPS của bạn.
Những gì bạn sẽ xây dựng
Không phải một ứng dụng — mà là một danh sách rút gọn. Đây là trung tâm cho mọi thứ khác trên trang web này: hai mươi lăm ứng dụng thực sự đáng để chạy trên VPS riêng của bạn vào năm 2026, được nhóm theo chức năng của chúng. Với mỗi ứng dụng, bạn sẽ biết dịch vụ mà nó thay thế, con số RAM và disk thực tế, và một vấn đề duy nhất sẽ gây rắc rối nếu bạn bỏ qua nó. Các liên kết sẽ dẫn đến hướng dẫn chi tiết từng bước nếu có.
Tôi đã vận hành một dịch vụ VPS trong mười lăm năm và tôi đang chạy hầu hết các ứng dụng này trên các máy chủ của chính mình. Vì vậy, các con số tài nguyên dưới đây là mức ứng dụng thực sự sử dụng dưới một khối lượng công việc thực tế nhỏ, không phải mức "tối thiểu" từ trang quảng cáo. Hãy coi chúng là ngân sách, sau đó cộng thêm một khoảng dự phòng.
Điều kiện tiên quyết và thực tế phũ phàng
Mọi ứng dụng ở đây đều chạy trên một VPS Ubuntu 24.04 KVM mới với quyền root hoặc sudo. Hầu hết chúng đều được đóng gói dưới dạng Docker container, vì vậy chỉ cần cài đặt Docker một lần là bạn đã sẵn sàng cho toàn bộ danh sách:
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker "$USER"
newgrp docker
docker run --rm hello-worldNếu các lệnh docker thất bại với lỗi permission denied while trying to connect to the Docker daemon socket, bạn đã bỏ qua bước chạy theo nhóm hoặc chưa mở một shell mới — hãy đăng xuất và đăng nhập lại. Nếu docker compose trả về docker: 'compose' is not a docker command, bạn đang dùng bản binary standalone cũ; script ở trên sẽ cài đặt plugin Compose hiện đại, bạn gọi nó bằng lệnh docker compose (dùng dấu cách, không phải dấu gạch ngang).
Có ba thực tế quyết định mọi thứ bên dưới. Thứ nhất, RAM là giới hạn, không phải disk hay CPU. Một VPS 1 GB chỉ chạy được một ứng dụng nhỏ và không hơn. 4 GB là điểm ngọt (sweet spot) thực sự cho một máy chủ "tự host một vài thứ". 2 GB là mức trung gian khó chịu, nơi người mới bắt đầu cài thêm dịch vụ thứ ba, gặp lỗi Out-Of-Memory (OOM) âm thầm và không bao giờ hiểu tại sao container lại biến mất — sudo dmesg hiển thị dòng Out of memory: Killed process mà daemon đã nuốt mất. Thứ hai, bất cứ thứ gì công khai đều cần một domain và chứng chỉ — một IP trần chỉ dùng để test và sẽ thất bại ngay khi bạn muốn dùng app điện thoại hoặc trình duyệt tin tưởng nó. Thứ ba, hai port quyết định một nửa các lựa chọn của bạn: port 80 và 443 phải thông tới máy chủ để tự động TLS, và port 25 outbound thường bị các nhà cung cấp chặn, đó là lý do tại sao email nằm trong danh sách "không nên" ở cuối.
Files và ảnh
- Nextcloud thay thế Google Drive, Dropbox và Google Calendar trong một bộ công cụ duy nhất. Ngân sách 1–2 GB RAM cộng với dung lượng file của bạn. Một lỗi cần tránh: SQLite chỉ ổn để demo và là một cái bẫy khi chạy production — hãy cài đặt nó trên PostgreSQL ngay từ lần boot đầu tiên, vì việc di chuyển database sau khi đã có dữ liệu là cách phổ biến nhất khiến người dùng làm hỏng Nextcloud. Hướng dẫn Nextcloud trên VPS với Docker, TLS và backup sẽ giúp bạn thiết lập đúng ngay từ đầu.
- Immich thay thế Google Photos, bao gồm cả app điện thoại tự động upload ảnh và tính năng tìm kiếm khuôn mặt/vật thể. Ngân sách 6 GB RAM — tài liệu của Immich gọi đó là mức tối thiểu, 8 GB là thoải mái, và container machine-learning là phần ngốn tài nguyên nhất — cùng với dung lượng disk bằng thư viện của bạn cộng thêm khoảng 20% cho thumbnails. Lưu ý: Immich vẫn có những thay đổi gây lỗi giữa các bản release, vì vậy đừng bao giờ
docker pulllatest`` một cách mù quáng; hãy chốt một version và đọc release notes trước mỗi lần upgrade. Hướng dẫn thư viện ảnh Immich tự host sẽ hướng dẫn lộ trình upgrade an toàn. - Seafile thay thế Dropbox với engine đồng bộ nhanh nhất trong ba loại. Ngân sách khoảng 1 GB RAM. Lưu ý: Seafile lưu trữ file dưới dạng các block content-addressed, không phải file thông thường trên disk, nên bạn không thể duyệt dữ liệu bằng
lsvà bạn phải backup thông qua công cụ riêng của Seafile, không phải bằng cách copy folder.
Passwords
- Vaultwarden thay thế các gói trả phí của Bitwarden, LastPass và 1Password bằng một server Rust siêu nhẹ chạy giao thức Bitwarden, vì vậy mọi app và extension chính thức của Bitwarden đều dùng được ngay. Ngân sách 100–200 MB RAM và gần như không tốn disk. Lưu ý: máy chủ này giữ mọi mật khẩu của bạn, nên TLS và backup là bắt buộc, chúng là mục đích chính — và hãy đặt
ADMIN_TOKENlà Argon2 hash, vì một token dạng plaintext trong file compose chính là một master key nằm ở dạng cleartext. Hướng dẫn trình quản lý mật khẩu Vaultwarden là lựa chọn tự host đầu tiên tốt nhất có thể.
Media
- Jellyfin thay thế Plex và Netflix (đối với thư viện riêng của bạn) — hoàn toàn mã nguồn mở, không tài khoản, không thu phí streaming từ xa. Ngân sách 1–2 GB RAM khi ở trạng thái idle, nhưng CPU sẽ tăng vọt khi transcode. Lưu ý: phần mềm transcode một luồng 4K sẽ làm nóng một VPS nhỏ; hãy cấp hardware acceleration cho máy chủ hoặc giữ file ở định dạng mà client có thể play trực tiếp (Direct Play), để server chỉ việc đẩy bytes đi. Hướng dẫn Jellyfin media server trên VPS giải thích rõ loại nào là loại nào.
- Navidrome thay thế Spotify cho nhạc cá nhân, streaming tới bất kỳ app nào tương thích với Subsonic. Ngân sách 150–300 MB RAM — nó viết bằng Go và tốn cực ít tài nguyên. Lưu ý: lần scan thư viện đầu tiên sẽ đọc tag của mọi file và có thể mất một tiếng với bộ sưu tập lớn, và tag ID3 kém sẽ khiến trải nghiệm duyệt nhạc rất tệ.
- Audiobookshelf thay thế Audible và app podcast, giữ vị trí đang nghe giữa các thiết bị. Ngân sách 200–500 MB RAM. Lưu ý: nó yêu cầu cấu trúc folder nghiêm ngặt cho mỗi sách, và một folder import lộn xộn sẽ tạo ra một thư viện lỗi, mất công sửa chữa sau đó.
Automation và AI
- n8n thay thế Zapier và Make bằng một trình xây dựng workflow trực quan mà bạn sở hữu, không tính phí theo task. Ngân sách 400 MB–1 GB RAM. Lưu ý: n8n mã hóa credentials lưu trữ bằng một key nó tự tạo khi chạy lần đầu, nếu bạn mất key đó — hoặc quên set
N8N_ENCRYPTION_KEYvà để nó tự tạo lại — mọi credential đã lưu sẽ không thể đọc được và bạn phải nhập lại tất cả. Hướng dẫn tự host n8n với HTTPS sẽ giúp chốt key và đặt một certificate thật trước các webhook URL. - Ollama thay thế gói đăng ký ChatGPT để chạy LLM cục bộ và riêng tư. Ngân sách tùy theo model: model 7–8B cần khoảng 8 GB RAM, và mỗi model chiếm 4–8 GB disk. Lưu ý: trên VPS chỉ có CPU, tốc độ inference sẽ chậm — hãy chuẩn bị tinh thần cho tốc độ tính bằng từ mỗi giây, không phải phản hồi tức thì như API thương mại — vì vậy hãy điều chỉnh kỳ vọng, hoặc thuê máy có GPU. Hướng dẫn chạy Ollama để tự host LLM cung cấp các con số thực tế.
Communication
- Rocket.Chat thay thế Slack cho team, với threads, calls và integrations. Ngân sách từ 2 GB RAM trở lên, vì nó chạy trên MongoDB và đó là thành phần nặng nhất. Lưu ý: Rocket.Chat yêu cầu một version MongoDB cụ thể cho mỗi bản release, việc bỏ qua một version khi upgrade sẽ làm hỏng database — hãy upgrade từng bước một. Hướng dẫn Rocket.Chat với Docker Compose sẽ dẫn dắt bạn qua các version.
- Matrix (Synapse) thay thế Slack và Discord bằng một mạng lưới federated, mã hóa end-to-end, nơi bạn sở hữu homeserver của mình. Ngân sách 1–2 GB RAM và sẽ tăng lên khi bạn tham gia các phòng public lớn. Lưu ý: dung lượng memory của Synapse sẽ tăng vọt trong các phòng federated lớn, và nó phải chạy trên PostgreSQL — bản SQLite mặc định chỉ dùng để test một người dùng và sẽ sập ngay khi bạn thực hiện federate. Nếu Synapse quá nặng, các server Conduit hoặc Dendrite nhẹ hơn sẽ dùng cùng một protocol.
Networking và truy cập
- WireGuard thay thế VPN thương mại, tạo một tunnel riêng tới IP của bạn và các dịch vụ khác. Ngân sách gần như bằng không — dưới 50 MB và crypto chạy trong kernel. Lưu ý: trên các nền tảng ảo hóa dựa trên container (OpenVZ, một số LXC), module sẽ lỗi với
RTNETLINK answers: Operation not supported; bạn nên dùng KVM. Hướng dẫn tự host WireGuard VPN là tài liệu tham khảo, và kết hợp nó với các dịch vụ chỉ bind vào tunnel là cách để giữ mọi thứ hoàn toàn tách biệt khỏi internet công cộng. - Traefik thay thế việc viết nginx virtual hosts thủ công và tự động gia hạn certificate — nó tự động phát hiện các container qua Docker labels và lấy certs từ Let's Encrypt. Ngân sách khoảng 100 MB RAM. Lưu ý: mô hình cấu hình dựa trên label thực sự gây bối rối lúc đầu, và chỉ cần một label sai sẽ khiến app không được route và không có lỗi rõ ràng. Hướng dẫn Traefik reverse proxy cho nhiều ứng dụng Docker được xây dựng chính xác để chạy nhiều app trong danh sách này đằng sau một entry point duy nhất.
- AdGuard Home thay thế Pi-hole và các dịch vụ DNS filtering trả phí, chặn quảng cáo và tracker cho mọi thiết bị trong mạng ở tầng DNS. Ngân sách 100–150 MB RAM. Lưu ý: nó muốn chiếm port 53, port này bị xung đột với
systemd-resolvedtrên Ubuntu — nó sẽ lỗi không khởi động được vớilisten udp 0.0.0.0:53: bind: address already in usecho đến khi bạn giải phóng port đó.
Monitoring
- Uptime Kuma thay thế Pingdom, UptimeRobot và StatusPage với dashboard sạch sẽ và thông báo tới hầu hết các kênh. Ngân sách 150–300 MB RAM. Lưu ý, và đây là lỗi mọi người luôn mắc phải: hãy monitor máy chủ production từ một máy chủ khác — Uptime Kuma chạy trên cùng server mà nó đang giám sát không thể báo cho bạn biết khi server đó chết. Hướng dẫn giám sát trạng thái bằng Uptime Kuma đề cập đến việc đặt server ở bên ngoài.
- Zabbix thay thế Datadog và các bộ giám sát doanh nghiệp, với các metric dựa trên agent sâu, triggers và lịch sử. Ngân sách từ 2 GB RAM trở lên, cộng với database riêng. Lưu ý: Zabbix rất mạnh nhưng cực kỳ nặng để thiết lập — nó là quá mức (overkill) nếu chỉ để theo dõi ba container, nhưng là công cụ đúng đắn cho một hệ thống lớn. Hãy bắt đầu với Uptime Kuma; chuyển sang Zabbix monitoring server khi bạn thực sự có hạ tầng cần giám sát.
Prometheus và Grafana không có trong danh sách này là có chủ đích: chúng là công cụ tuyệt vời cho quy mô lớn, nhưng nặng hơn để chạy và tinh chỉnh so với nhu cầu của một stack cá nhân gồm hai hoặc ba máy chủ, và Uptime Kuma cộng với Zabbix giải quyết được các vấn đề tương tự ở quy mô này với ít công bảo trì hơn.
Dashboards và control panels
Những thứ này thay đổi toàn bộ mô hình — thay vì chạy các file compose bằng tay, một panel sẽ quản lý các ứng dụng cho bạn.
- Cloudron thay thế mong muốn "tôi ước có nút click một lần" bằng một app store hoàn chỉnh, tự động TLS và backup tích hợp. Ngân sách tối thiểu 2 GB RAM, 4 GB là thoải mái. Lưu ý: nó có tính áp đặt và muốn quản lý toàn bộ máy chủ, và nó chỉ miễn phí tối đa hai ứng dụng — sau đó là sản phẩm trả phí.
- CasaOS thay thế một dashboard homelab lộn xộn bằng một lưới ứng dụng thân thiện, miễn phí và nhẹ. Ngân sách khoảng 150 đến 300 MB cho chính CasaOS. Lưu ý: nó được thiết kế cho mạng gia đình đáng tin cậy và không được hardening cho internet công cộng — đừng expose nó trực tiếp; hãy truy cập qua WireGuard.
- Coolify thay thế Heroku, Vercel và Netlify — deploy bằng git-push, database và preview ngay trên server của bạn. Ngân sách tối thiểu 2 GB RAM. Lưu ý: đây là một dự án trẻ và thay đổi rất nhanh, vì vậy hãy chốt version và đọc release notes trước khi upgrade. Bản so sánh Cloudron vs CasaOS vs Coolify sẽ phân tích xem cái nào phù hợp với ai.
Developer và công cụ năng suất
- Gitea (hoặc Forgejo) thay thế GitHub cho các repository riêng tư, issues và CI. Ngân sách 200–500 MB RAM. Lưu ý: Forgejo là bản fork của Gitea do cộng đồng quản lý và là bản được nhiều người khuyên dùng hiện nay; cả hai đều tuyệt vời, nhưng hãy chọn một cái và backup cả repository và database cùng nhau — backup repo mà thiếu database sẽ mất mọi issue và pull request.
- Paperless-ngx thay thế tủ hồ sơ và máy scan tài liệu trả phí, dùng OCR cho mọi thứ để tài liệu của bạn có thể tìm kiếm được. Ngân sách khoảng 1 GB RAM, CPU sẽ tăng vọt khi chạy OCR. Lưu ý: kết quả OCR chỉ tốt bằng chất lượng bản scan của bạn, và việc xử lý lại một kho lưu trữ lớn rất chậm — hãy tinh chỉnh nó trước khi import hàng loạt mười năm giấy tờ.
- Actual Budget thay thế YNAB và Mint bằng phương pháp quản lý chi tiêu theo phong bì (envelope budgeting) nhanh, cục bộ và riêng tư. Ngân sách khoảng 150 MB RAM. Lưu ý: đồng bộ ngân hàng tự động là một add-on riêng biệt với thiết lập riêng, nên mặc định bạn phải import giao dịch thủ công.
- FreshRSS thay thế Feedly và Google Reader đã ngừng hoạt động — một trình đọc feed nhanh, riêng tư với app di động. Ngân sách khoảng 150 MB RAM. Lưu ý: hãy thiết lập cron để refresh feed, nếu không feed sẽ chỉ cập nhật khi bạn tình cờ mở trang.
- BookStack thay thế Notion và Confluence để viết tài liệu, được tổ chức theo dạng kệ, sách và trang. Ngân sách khoảng 500 MB RAM cho PHP và MySQL. Lưu ý: nó cấu trúc nội dung theo cách riêng thay vì dạng note tự do, điều mà một số người thích và một số người thấy cứng nhắc — hãy dùng thử trước khi commit toàn bộ wiki của bạn.
- Home Assistant thay thế SmartThings và hàng tá app của nhà sản xuất, hợp nhất nhà thông minh của bạn một cách cục bộ. Ngân sách khoảng 1 GB RAM. Lưu ý: phần lớn tính năng cần truy cập mạng cục bộ tới các thiết bị, nên nó hoạt động tự nhiên nhất trên phần cứng tại nhà hơn là trên VPS từ xa — hãy chạy dashboard từ xa và bridge về nếu cần.
Một bản cài đặt mẫu
Để cụ thể hóa, đây là toàn bộ cấu trúc của một hệ thống tự host: một file compose, một certificate thật, và một bản backup. Đây là Uptime Kuma, nhưng mọi ứng dụng trong danh sách đều tuân theo mô hình tương tự.
services:
uptime-kuma:
image: louislam/uptime-kuma:2
container_name: uptime-kuma
volumes:
- ./data:/app/data
ports:
- "127.0.0.1:3001:3001"
restart: unless-stoppeddocker compose up -d
docker compose logs -fLưu ý 127.0.0.1: — ứng dụng chỉ lắng nghe tại localhost, và một reverse proxy như Traefik hoặc nginx sẽ xử lý TLS ở phía trước. Việc bind trực tiếp vào 0.0.0.0:3001 là cách khiến người ta vô tình công khai một admin panel không mã hóa ra toàn bộ internet.
Những gì KHÔNG nên tự host (vào lúc này)
- Email. Đây là sự thật phũ phàng. Port 25 outbound bị hầu hết các nhà cung cấp VPS chặn — bạn sẽ thấy lỗi
Connection timed outtừtelnet aspmx.l.google.com 25và không có gì để sửa, đó là chính sách. Ngay cả khi mở port 25, một IP mới chưa có reputation, thiếu PTR record, SPF, DKIM và DMARC sẽ khiến mail của bạn rơi vào spam hoặc bị từ chối thẳng thừng. Đây là một công việc thực sự và liên tục, không phải việc làm cuối tuần. Nếu bạn quyết tâm, hãy chuẩn bị tâm lý khi dùng hướng dẫn tự host email với Mailcow, và hãy chuẩn bị tinh thần phải chăm sóc khả năng deliverability trong nhiều tháng. - Bất cứ thứ gì bạn không thể backup và restore một cách đáng tin cậy. Nếu bạn chưa bao giờ thử restore thử nghiệm, bạn không có bản backup, bạn chỉ đang hy vọng. Đừng đưa dữ liệu không thể thay thế — bản copy duy nhất của ảnh, của các tài khoản — lên một dịch vụ cho đến khi khả năng restore của nó được chứng minh.
- Bản copy duy nhất của một dependency quan trọng. Một máy chủ DNS tự host mà khi nó sập sẽ kéo theo toàn bộ internet của mạng nhà bạn là một dự án khởi đầu tồi tệ. Hãy luôn có một fallback upstream.
- Các hệ thống an toàn thời gian thực. Báo động nhà, cảnh báo y tế, bất cứ thứ gì mà việc downtime 5 phút gây ra vấn đề thực sự thì không nên nằm trên một máy chủ hobby mà bạn hay upgrade vào tối Chủ nhật.
Cách chọn ứng dụng đầu tiên, và hai điều không thể thương lượng
Hãy chọn ứng dụng giúp bạn loại bỏ một hóa đơn mà bạn ghét hoặc một nỗi lo về quyền riêng tư mà bạn thực sự cảm thấy. Thực tế, những bản cài đặt đầu tiên tốt nhất là Vaultwarden và Uptime Kuma: cả hai đều cực nhẹ, cả hai đều hữu ích ngay lập tức, và cả hai đều dễ dàng nếu bạn mắc lỗi. Hãy làm cho một cái chạy hoàn chỉnh — cài đặt, certificate, backup, test restore — trước khi thêm cái thứ hai. Kỹ năng bạn đang xây dựng là vận hành (operations), không phải là nhấn nút install.
Có hai điều không thể thương lượng cho mọi ứng dụng ở trên, không ngoại lệ:
- TLS cho mọi thứ công khai. Một dịch vụ IP trần, plaintext chỉ là bản demo, không phải là deployment. Hãy đặt một certificate thật phía trước nó bằng Certbot và Let's Encrypt trên nginx, hoặc để Traefik tự động làm việc đó. Sau đó, hãy gia cố cửa trước bằng Fail2ban cho SSH trên Ubuntu 24.04.
- Backup mà bạn thực sự đã từng restore. Hãy tự động hóa việc dump hàng đêm — cả database và data volume — gửi nó ra khỏi máy chủ, và mỗi tháng một lần hãy restore nó lên một VPS tạm thời để chứng minh nó hoạt động. Ngày mà disk của bạn chết không phải là ngày thích hợp để phát hiện ra bản backup bị trống.
Làm tốt hai điều này thì tự host là một niềm vui. Bỏ qua chúng thì đó là một sự đếm ngược thảm họa.
Các lựa chọn chạy từ thực tế đến phi lý, từ một Minecraft server trên VPS cho gia đình đến, nếu bạn thích một câu chuyện cảnh báo, datacenter kém hiệu quả nhất thế giới.
FAQ
Tôi nên tự host gì đầu tiên?
Vaultwarden. Một trình quản lý mật khẩu mang lại giá trị hàng ngày, thay thế một gói đăng ký, và buộc bạn phải học toàn bộ quy trình — Docker, reverse proxy, TLS, và backup — trên một ứng dụng đủ nhỏ để có thể dựng lại trong mười phút nếu bạn làm hỏng nó. Uptime Kuma là lựa chọn thứ hai tuyệt vời, để bạn biết về các sự cố trước khi người dùng của bạn biết.
Tôi thực sự cần bao nhiêu tài nguyên VPS?
Với một ứng dụng nhỏ, 1 GB RAM là đủ. Để có một máy chủ "chạy một vài thứ" thoải mái, hãy nhắm tới 4 GB — mức 2 GB là nơi mọi người gặp lỗi OOM âm thầm và không thể hiểu tại sao. RAM gần như luôn là giới hạn; hãy thêm disk tương ứng với dữ liệu bạn định lưu trữ, và hãy chuẩn bị tinh thần là Immich, Ollama, và bất cứ thứ gì có database lớn sẽ ngốn nhiều nhất cả hai loại tài nguyên này.
Tôi không nên tự host cái gì?
Email, trước hết — port 25 outbound bị hầu hết các nhà cung cấp chặn và việc đảm bảo deliverability là một cuộc chiến toàn thời gian. Sau đó, là bất cứ thứ gì bạn không thể backup và restore một cách đáng tin cậy, và bất kỳ điểm lỗi duy nhất (single point of failure) nào mà khi downtime gây ra thiệt hại thực sự, như một máy chủ DNS không có fallback hoặc hệ thống an toàn gia đình. Mọi thứ khác trong danh sách này đều khả dụng.
Tôi có cần Docker cho tất cả những thứ này không?
Không, nhưng bạn sẽ muốn nó. Mọi ứng dụng ở đây đều có Docker image, và Docker giúp bạn cài đặt sạch sẽ, gỡ bỏ sạch sẽ, dễ dàng chốt version và có tính di động sang host mới. Một vài ứng dụng (WireGuard, Zabbix) cũng có thể cài đặt trực tiếp từ apt nếu bạn muốn. Một khi bạn biết một file compose, bạn sẽ biết tất cả, đó là lý do tại sao toàn bộ danh sách này trở nên dễ tiếp cận.
Làm thế nào để giữ mọi thứ bảo mật?
Bốn thói quen sẽ giải quyết hầu hết vấn đề: đặt TLS phía trước mọi thứ, giữ SSH được bảo vệ chặt chẽ với đăng nhập chỉ bằng key và Fail2ban chặn các nỗ lực brute-force, chỉ expose những port bạn thực sự cần ra công khai và truy cập phần còn lại qua WireGuard VPN, và cập nhật thường xuyên đồng thời đọc release notes để không bị bất ngờ khi upgrade. Backup là thói quen thứ năm — chúng là phương án phục hồi khi một sai lầm lọt qua bốn thói quen đầu tiên.