SSD Nodes Learn Hosting plans →
Hướng dẫn Matt ConnorBởi Matt Connor · Cập nhật ngày 2026-08-25

25 app self-host đáng chạy trên VPS năm 2026

Danh sách 25 app self-host theo từng nhu cầu, nêu service mỗi app thay thế, RAM và dung lượng đĩa thực tế, cùng gotcha cần biết trước khi triển khai.

Những gì bạn sẽ triển khai

Không phải một ứng dụng, mà là một danh sách chọn lọc. Đây là trung tâm cho mọi nội dung khác trên site này: 25 ứng dụng thực sự đáng chạy trên VPS của bạn trong năm 2026, được nhóm theo công việc mà chúng thực hiện. Với mỗi ứng dụng, bạn sẽ biết nó thay thế service nào, mức sử dụng RAM và dung lượng đĩa thực tế, cùng một vấn đề duy nhất sẽ gây rắc rối nếu bạn bỏ qua. Các liên kết trỏ đến hướng dẫn đầy đủ từng bước nếu đã có.

Tôi đã vận hành máy chủ VPS trong 15 năm và đang chạy hầu hết các ứng dụng này trên máy chủ của mình. Vì vậy, các con số tài nguyên bên dưới phản ánh mức ứng dụng thực sự sử dụng với workload nhỏ trong thực tế, không phải mức “tối thiểu” trên trang marketing. Hãy xem đó là mức ngân sách cơ bản, rồi chừa thêm headroom.

Điều kiện tiên quyết và thực tế cần biết

Mọi app trong danh sách này đều chạy trên một KVM VPS Ubuntu 24.04 mới cài, với quyền root hoặc sudo. Danh sách này cũng chạy tốt trên máy đặt tại nhà bạn. Nếu bạn đang cân nhắc tiền thuê hằng tháng so với việc mua RAM một lần, Proxmox tại nhà so với VPS thuê sẽ giúp bạn tính toán phần cứng và điện năng. Gần như tất cả đều được phát hành dưới dạng Docker container, nên chỉ cần cài Docker một lần là bạn có thể dùng 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-world

Nếu các lệnh docker lỗi với permission denied while trying to connect to the Docker daemon socket, bạn đã bỏ qua bước thêm group hoặc chưa mở shell mới. Hãy đăng xuất rồi đăng nhập lại. Nếu docker compose trả về docker: 'compose' is not a docker command, bạn đang dùng binary standalone cũ. Script ở trên cài Compose plugin hiện đại, được gọi bằng docker compose (có dấu cách, không có dấu gạch nối).

Ba thực tế dưới đây quyết định cách triển khai mọi thứ tiếp theo. Thứ nhất, RAM mới là giới hạn, không phải disk hay CPU. VPS 1 GB chỉ chạy được một app nhỏ, không hơn. 4 GB là mức phù hợp nhất cho một máy tự host vài dịch vụ. 2 GB là mức trung gian khó xử: người mới thường thêm service thứ ba, gặp tình trạng Out-Of-Memory kill mà không có thông báo rõ ràng, rồi không hiểu vì sao container vừa biến mất; sudo dmesg hiển thị dòng Out of memory: Killed process mà daemon đã nuốt mất. Thứ hai, mọi thứ public đều cần hostname và certificate. IP trần có thể dùng để test nhưng sẽ thất bại ngay khi bạn muốn app trên điện thoại hoặc browser tin cậy dịch vụ đó. Thứ ba, hai port quyết định một nửa lựa chọn của bạn: 80 và 443 phải truy cập được đến máy để dùng TLS tự động. Outbound port 25 bị hầu hết nhà cung cấp chặn, vì vậy email nằm trong danh sách “không nên làm” ở cuối bài.

Tệp và ảnh

  • Nextcloud thay thế Google Drive, Dropbox và Google Calendar trong một bộ ứng dụng. Dự trù 1–2 GB RAM, cộng thêm dung lượng tương ứng với các tệp của bạn. Điểm cần lưu ý: SQLite phù hợp cho bản demo nhưng là một cái bẫy trong môi trường production. Hãy cài Nextcloud với PostgreSQL ngay từ lần boot đầu tiên, vì di chuyển database sau khi dữ liệu đã được lưu vào đó là cách phổ biến nhất khiến người dùng làm hỏng một instance Nextcloud. Hướng dẫn đầy đủ Nextcloud trên VPS với Docker, TLS và backup sẽ cấu hình đúng ngay từ đầu.
  • Immich thay thế Google Photos, bao gồm cả app trên điện thoại có chức năng tự động upload ảnh trong camera roll và tìm kiếm khuôn mặt, vật thể. Dự trù 6 GB RAM; tài liệu của Immich gọi đây là mức tối thiểu, 8 GB sẽ thoải mái hơn. Container machine learning là phần tiêu tốn nhiều tài nguyên nhất. Dung lượng disk cần bằng thư viện ảnh của bạn cộng thêm khoảng 20% cho thumbnail. Điểm cần lưu ý: Immich vẫn release các thay đổi có thể gây lỗi giữa các bản release, vì vậy không bao giờ pull latest một cách mù quáng. Hãy pin version và đọc release notes trước mỗi lần upgrade. Hướng dẫn thư viện ảnh Immich tự host trình bày quy trình upgrade an toàn. Nếu mức tối thiểu 6 GB này vượt quá dung lượng máy của bạn, PhotoPrism và Immich đặt cạnh nhau sẽ so sánh hai hệ thống về mức sử dụng RAM thực tế, app trên điện thoại và các lệnh backup cần chạy trước khi bạn đưa thư viện ảnh vào một trong hai hệ thống.
  • Seafile thay thế Dropbox và có sync engine nhanh nhất trong ba lựa chọn. Dự trù khoảng 1 GB RAM. Điểm cần lưu ý: Seafile lưu tệp dưới dạng các block được định danh bằng nội dung, không phải các tệp thông thường trên disk. Vì vậy, bạn không thể duyệt dữ liệu bằng ls và phải backup bằng công cụ riêng của Seafile, không được chỉ copy một thư mục.

Mật khẩu

  • Vaultwarden thay thế gói trả phí của Bitwarden, LastPass và 1Password bằng một server Rust rất nhẹ, sử dụng Bitwarden protocol. Vì vậy, mọi app và browser extension chính thức của Bitwarden đều hoạt động ngay. Dự trù 100–200 MB RAM và gần như không tốn disk. Điểm cần lưu ý: máy này lưu mọi mật khẩu của bạn. Vì vậy, TLS và backup không phải là tùy chọn; đó là mục đích cốt lõi của dịch vụ này. Hãy đặt ADMIN_TOKEN dưới dạng Argon2 hash, vì token dạng plaintext trong compose file chính là 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 self-host đầu tiên tốt nhất.

Media

  • Jellyfin thay thế Plex và, với thư viện riêng của bạn, thay thế Netflix. Phần mềm hoàn toàn open source, không cần account và không thu phí cho việc stream từ xa. Khi idle, hãy dự trù 1–2 GB RAM, nhưng CPU có thể tăng vọt khi transcode. Điểm cần lưu ý: transcode bằng software cho stream 4K sẽ làm quá tải một VPS nhỏ. Bạn cần bật hardware acceleration cho máy hoặc lưu file ở định dạng mà client có thể phát trực tiếp (Direct Play), để server chỉ chuyển tiếp dữ liệu. Hướng dẫn Jellyfin media server trên VPS giải thích sự khác nhau giữa hai cách này. Khi đã chạy, Halcyon biến chính thư viện đó thành một cửa hàng cho thuê đĩa phong cách thập niên 90 có thể dạo xem trên browser. Đây là cách vừa ngớ ngẩn vừa hiệu quả nhất mà tôi biết để khiến mọi người trong nhà duyệt qua các kệ thay vì lướt qua mọi thứ.
  • Navidrome thay thế Spotify cho thư viện nhạc riêng và stream đến mọi app tương thích với Subsonic. Hãy dự trù 150–300 MB RAM. Phần mềm được viết bằng Go nên mức sử dụng tài nguyên gần như không đáng kể. Điểm cầ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 giờ với bộ sưu tập lớn. Tag ID3 sai sẽ dẫn đến trải nghiệm duyệt thư viện kém.
  • Audiobookshelf thay thế Audible và app podcast của bạn, đồng bộ vị trí phát giữa các thiết bị. Hãy dự trù 200–500 MB RAM. Điểm cần lưu ý: phần mềm yêu cầu bố cục nghiêm ngặt, mỗi sách một folder. Folder import lộn xộn sẽ tạo ra thư viện lộn xộn, phát hiện thiếu nội dung và rất mất thời gian để sửa về sau.

Tự động hóa và AI

  • n8n thay thế Zapier và Make bằng trình dựng workflow trực quan do bạn tự quản lý, không tính phí theo từng task. Dự trù 400 MB–1 GB RAM. Điểm cần lưu ý: n8n mã hóa các credential được lưu bằng một key mà nó tạo trong lần chạy đầu tiên. Nếu bạn làm mất key đó, hoặc quên đặt N8N_ENCRYPTION_KEY để n8n tự tạo lại key, mọi credential đã lưu sẽ không thể đọc được và bạn phải nhập lại toàn bộ. Hướng dẫn tự host n8n với HTTPS cố định key và đặt một certificate hợp lệ phía trước các URL webhook.
  • Ollama thay thế subscription ChatGPT cho việc inference LLM cục bộ, riêng tư. Mức tài nguyên phụ thuộc vào model: model 7–8B cần khoảng 8 GB RAM, và mỗi model chiếm 4–8 GB disk. Điểm cần lưu ý: trên VPS chỉ dùng CPU, inference vẫn hoạt động nhưng chậm; hãy nghĩ theo số từ mỗi giây thay vì phản hồi tức thì như khi dùng API được host sẵn. Vì vậy, hãy đặt kỳ vọng thực tế hoặc thuê một máy có GPU. Hướng dẫn chạy Ollama để tự host LLM có các số liệu thực tế.

Giao tiếp

  • Rocket.Chat thay thế Slack cho nhóm, với thread, cuộc gọi và tích hợp. Hãy dành ít nhất 2 GB RAM, vì nó chạy trên MongoDB và đây là thành phần ngốn tài nguyên nhất. Điểm cần lưu ý: mỗi bản phát hành Rocket.Chat yêu cầu một major version MongoDB cụ thể. Bỏ qua một version trong quá trình nâng cấp sẽ khiến database không thể tiếp tục hoạt động; hãy nâng cấp từng bước một. Hướng dẫn Rocket.Chat với Docker Compose trình bày thứ tự các version cần nâng cấp.
  • Matrix (Synapse) thay thế Slack và Discord bằng một mạng liên kết, mã hóa đầu-cuối, trong đó bạn sở hữu homeserver của mình. Hãy dành 1–2 GB RAM; mức sử dụng sẽ tăng khi bạn tham gia các phòng công khai lớn. Điểm cần lưu ý: Synapse dùng rất nhiều memory trong các phòng liên kết lớn và phải chạy trên PostgreSQL. SQLite mặc định chỉ phù hợp để test với một người dùng duy nhất; nó sẽ không chịu được ngay khi bạn bật liên kết liên máy chủ. Nếu Synapse quá nặng, các server Conduit hoặc Dendrite nhẹ hơn vẫn dùng cùng protocol.

Mạng và quyền truy cập

  • WireGuard thay thế VPN thương mại, cung cấp tunnel riêng đến IP của bạn và các service khác của bạn. Mức tiêu thụ tài nguyên gần như không đáng kể, dưới 50 MB và phần crypto chạy trong kernel. Điểm cần lưu ý: trên nền tảng ảo hóa dựa trên container (OpenVZ, một số LXC), module sẽ fail với RTNETLINK answers: Operation not supported; bạn nên dùng KVM. Hướng dẫn tự host VPN WireGuard là tài liệu tham khảo chính. Kết hợp WireGuard với các service chỉ bind vào tunnel là cách giữ toàn bộ service không public Internet. Nếu không muốn chỉnh sửa thủ công peer config cho từng thiết bị mới, chạy Tailscale subnet router trên VPS sẽ quảng bá toàn bộ private range đó đến các máy khác của bạn. Bạn chỉ cần approve route và cấu hình IP forwarding để vẫn hoạt động sau reboot.
  • Traefik thay thế các virtual host nginx viết thủ công và việc gia hạn chứng chỉ thủ công. Traefik tự phát hiện container qua Docker label và tự động lấy chứng chỉ Let's Encrypt. Mức tiêu thụ khoảng 100 MB RAM. Điểm cần lưu ý: mô hình cấu hình dựa trên label thực sự khó hiểu lúc đầu. Chỉ một label sai cũng có thể khiến app không được định tuyến mà không có lỗi rõ ràng. Hướng dẫn reverse proxy Traefik cho nhiều app Docker được viết đúng cho việc chạy nhiều app trên trang này phía sau một entry point.
  • AdGuard Home thay thế một máy Pi-hole và dịch vụ lọc DNS trả phí, chặn quảng cáo và tracker cho mọi thiết bị trong mạng của bạn tại lớp DNS. Mức tiêu thụ 100–150 MB RAM. Điểm cần lưu ý: AdGuard Home cần chiếm port 53, nhưng port này xung đột với systemd-resolved trên Ubuntu. Service sẽ không khởi động với listen udp 0.0.0.0:53: bind: address already in use cho đến khi bạn giải phóng port trước.

Giám sát

  • Uptime Kuma thay thế Pingdom, UptimeRobot và StatusPage bằng dashboard gọn và cảnh báo đến gần như mọi channel. Dự trù 150–300 MB RAM. Điểm dễ mắc phải, và đây là điều mọi người luôn bỏ sót: hãy monitor máy production từ một máy khác. Uptime Kuma chạy trên chính server mà nó monitor sẽ không thể báo cho bạn khi server đó bị down. Hướng dẫn monitor trạng thái Uptime Kuma trình bày cách triển khai từ bên ngoài.
  • Zabbix thay thế Datadog và các bộ monitoring dành cho enterprise, với metric dựa trên agent, trigger và lịch sử chi tiết. Dự trù từ 2 GB RAM trở lên, cùng với database riêng. Điểm dễ mắc phải: Zabbix mạnh và thực sự nặng khi setup; nó là overkill nếu chỉ theo dõi ba container, nhưng phù hợp để monitor một fleet. Hãy bắt đầu với Uptime Kuma; chuyển sang monitoring server Zabbix khi bạn thực sự có hạ tầng cần monitor.

Prometheus và Grafana được cố ý bỏ khỏi danh sách này: chúng là các công cụ tuyệt vời để vận hành fleet quy mô lớn, nhưng chạy và tinh chỉnh chúng tốn công hơn mức một stack cá nhân gồm hai hoặc ba máy cần có. Ở quy mô này, Uptime Kuma và Zabbix trả lời các câu hỏi tương tự với ít thành phần cần bảo trì hơn.

Bảng điều khiển và dashboard

Các công cụ này thay đổi toàn bộ cách vận hành. Thay vì tự chạy các file compose, panel sẽ quản lý ứng dụng cho bạn.

  • Cloudron biến mong muốn “giá như việc này chỉ cần một cú nhấp” thành một app store hoàn thiện, có TLS tự động và backup tích hợp sẵn. Tối thiểu cần 2 GB RAM; 4 GB sẽ thoải mái hơn. Điểm cần lưu ý: Cloudron áp đặt cách vận hành riêng và muốn toàn quyền quản lý máy chủ. Bản miễn phí chỉ hỗ trợ tối đa hai ứng dụng; nhiều hơn thì phải trả phí.
  • CasaOS thay thế dashboard homelab lộn xộn bằng giao diện lưới ứng dụng dễ dùng, miễn phí và nhẹ. Bản thân CasaOS cần khoảng 150 đến 300 MB RAM. Điểm cần lưu ý: CasaOS được thiết kế cho mạng gia đình đáng tin cậy và chưa được harden cho Internet công cộng. Không expose trực tiếp CasaOS; hãy truy cập qua WireGuard.
  • Coolify thay thế Heroku, Vercel và Netlify bằng deployment qua git push, database và preview trên server của bạn. Tối thiểu cần 2 GB RAM. Điểm cần lưu ý: đây là một project còn mới và phát triển nhanh, vì vậy hãy pin version và đọc release notes trước khi upgrade. Bài so sánh Cloudron, CasaOS và Coolify phân tích công cụ nào trong ba công cụ phù hợp với từng đối tượng.

Công cụ dành cho developer và năng suất

  • Gitea (hoặc Forgejo) thay thế GitHub cho repository riêng tư, issue và CI. Dự trù 200–500 MB RAM. Điểm cần lưu ý: Forgejo là fork do cộng đồng quản lý của Gitea và hiện được nhiều người khuyến nghị hơn; cả hai đều rất tốt, nhưng hãy chọn một và backup repository cùng database, vì backup repository mà không có database sẽ mất toàn bộ issue và pull request.
  • Paperless-ngx thay thế tủ hồ sơ và các dịch vụ scan tài liệu trả phí, dùng OCR cho mọi thứ để tài liệu có thể tìm kiếm được. Dự trù khoảng 1 GB RAM, với mức tăng đột biến CPU trong lúc OCR. Điểm cần lưu ý: kết quả OCR chỉ tốt bằng chất lượng bản scan, và xử lý lại một archive lớn sẽ chậm; hãy tinh chỉnh trước khi import hàng loạt tài liệu giấy của mười năm.
  • Actual Budget thay thế YNAB và Mint bằng cách lập ngân sách envelope nhanh, chạy local và riêng tư. Dự trù khoảng 150 MB RAM. Điểm cần lưu ý: đồng bộ ngân hàng tự động là một add-on riêng với quy trình setup riêng, nên khi mới cài đặt, bạn phải import giao dịch thủ công.
  • FreshRSS thay thế Feedly và Google Reader đã ngừng hoạt động, cung cấp feed reader nhanh, riêng tư với ứng dụng mobile. Dự trù khoảng 150 MB RAM. Điểm cần lưu ý: hãy thiết lập refresh feed dựa trên cron, nếu không feed chỉ cập nhật khi bạn tình cờ mở trang.
  • BookStack thay thế Notion và Confluence cho tài liệu, sắp xếp theo shelf, book và page. Dự trù khoảng 500 MB RAM khi chạy trên PHP và MySQL. Điểm cần lưu ý: ứng dụng cấu trúc nội dung theo cách riêng thay vì dùng ghi chú tự do; một số người thích cách này, còn một số người thấy nó cứng nhắc. Hãy thử trước khi chuyển toàn bộ wiki của bạn sang đó.
  • Home Assistant thay thế SmartThings và hàng chục ứng dụng của các nhà cung cấp, hợp nhất hệ thống smart home tại local. Dự trù khoảng 1 GB RAM. Điểm cần lưu ý: nhiều tính năng tự động của nó cần truy cập local network đến các thiết bị, nên chạy trên phần cứng ở nhà sẽ phù hợp hơn chạy trên VPS từ xa. Nếu bắt buộc, hãy chạy dashboard từ xa và bridge kết nối ngược về mạng nhà.

Một cài đặt mẫu

Để dễ hình dung, đây là cấu trúc đầy đủ của một hệ thống self-host: một file compose, một certificate thực tế và một bản backup. Đây là Uptime Kuma, nhưng mọi app trong danh sách đều theo cùng một mô hình.

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-stopped
docker compose up -d
docker compose logs -f

Lưu ý 127.0.0.1:: app chỉ listen trên localhost, còn reverse proxy như Traefik hoặc nginx thực hiện TLS termination ở phía trước. Bind trực tiếp vào 0.0.0.0:3001 là cách người dùng vô tình publish một admin panel không được mã hóa ra toàn bộ Internet.

Những gì CHƯA NÊN tự host

  • Email. Đây là trường hợp cần nói thẳng. Hầu hết nhà cung cấp VPS đều chặn cổng outbound 25; bạn sẽ thấy Connection timed out từ telnet aspmx.l.google.com 25 và không có gì để sửa cả, đó là chính sách. Ngay cả khi cổng 25 được mở, một IP mới chưa có reputation, PTR record, SPF, DKIM và DMARC vẫn khiến email của bạn vào spam hoặc bị từ chối hoàn toàn. Đây là một công việc thực sự và phải duy trì liên tục, không phải việc có thể làm xong trong một cuối tuần. Nếu bạn vẫn quyết định triển khai, hãy đọc kỹ hướng dẫn tự host email với Mailcow, đồng thời xác định sẽ phải theo dõi deliverability trong nhiều tháng.
  • Bất kỳ thứ gì bạn không thể backup và restore một cách đáng tin cậy. Nếu bạn chưa từng test restore, bạn chưa có backup; bạn chỉ đang hy vọng. Đừng đưa dữ liệu không thể thay thế, bản sao duy nhất của ảnh hoặc các account của bạn lên một service trước khi chứng minh được quy trình restore hoạt động.
  • Bản sao duy nhất của một dependency quan trọng. Một DNS server tự host mà khi bị crash sẽ làm toàn bộ mạng của bạn mất Internet là một dự án đầu tiên tồi. Hãy luôn giữ một upstream fallback.
  • Các hệ thống an toàn theo thời gian thực. Alarm tại nhà, cảnh báo y tế và mọi hệ thống mà chỉ cần downtime 5 phút cũng gây ra vấn đề nghiêm trọng không nên chạy trên một máy hobby mà bạn nâng cấp vào tối Chủ nhật.

Cách chọn ứng dụng đầu tiên và hai yêu cầu bắt buộc

Hãy chọn ứng dụng giúp bạn loại bỏ một khoản phí mà bạn không muốn trả hoặc giải quyết một mối lo về quyền riêng tư mà bạn thực sự gặp phải. Trong thực tế, VaultwardenUptime Kuma là hai lựa chọn tốt nhất để cài đầu tiên: cả hai đều nhỏ gọn, hữu ích ngay lập tức và dễ khôi phục nếu bạn mắc lỗi. Hãy làm cho một ứng dụng hoạt động hoàn chỉnh trước — cài đặt, certificate, backup, kiểm tra restore — rồi mới thêm ứng dụng thứ hai. Kỹ năng bạn đang xây dựng là vận hành hệ thống, không phải bấm nút cài đặt.

Có hai yêu cầu bắt buộc đối với mọi ứng dụng ở trên, không có ngoại lệ:

  1. TLS cho mọi dịch vụ public. Một service dùng plaintext trên bare IP chỉ là bản demo, không phải một deployment thực tế. Hãy đặt một certificate hợp lệ phía trước service bằng Certbot và Let's Encrypt trên nginx, hoặc để Traefik tự động xử lý. Sau đó bảo vệ lớp truy cập bên ngoài bằng Fail2ban cho SSH trên Ubuntu 24.04.
  2. Backup mà bạn đã thực sự restore. Hãy tự động dump mỗi đêm, gồm cả database và data volume, gửi bản sao ra khỏi máy chủ, rồi mỗi tháng restore lên một VPS tạm thời để xác nhận backup hoạt động. Ngày disk hỏng là thời điểm tệ nhất để phát hiện backup trống.

Làm đúng hai việc này thì self-hosting sẽ rất thuận tiện. Bỏ qua chúng thì bạn chỉ đang đếm ngược đến sự cố.

Các lựa chọn trải dài từ thực tế đến khó tin, từ Minecraft server trên VPS cho gia đình đến, nếu bạn muốn xem một bài học cảnh báo, datacenter kém hiệu quả nhất thế giới.

FAQ

Tôi nên tự host dịch vụ nào trước?

Vaultwarden. Password manager mang lại giá trị hằng ngày, thay thế một gói thuê bao và buộc bạn làm quen với toàn bộ quy trình gồm Docker, reverse proxy, TLS và backup. Ứng dụng này đủ nhỏ để bạn dựng lại trong 10 phút nếu làm hỏng. Uptime Kuma là lựa chọn thứ hai rất tốt, vì bạn sẽ biết dịch vụ bị gián đoạn trước người dùng.

Thực tế tôi cần VPS mạnh đến mức nào?

Với một ứng dụng nhỏ, 1 GB RAM là đủ. Với một máy chủ thoải mái để “chạy một số dịch vụ”, hãy chọn 4 GB. Mức 2 GB là nơi nhiều người bắt đầu gặp tình trạng container bị kill âm thầm do Out-Of-Memory mà không biết nguyên nhân. RAM gần như luôn là giới hạn. Tăng dung lượng disk theo lượng dữ liệu bạn dự định lưu trữ. Immich, Ollama và mọi ứng dụng dùng database lớn thường cần nhiều cả RAM lẫn disk.

Tôi không nên tự host những gì?

Trước hết là email. Hầu hết nhà cung cấp đều chặn outbound port 25, còn việc đảm bảo email được gửi đến inbox là một cuộc chiến liên tục. Sau đó là mọi thứ bạn không thể backup và restore một cách đáng tin cậy, cùng mọi single point of failure có thể gây thiệt hại thực tế khi ngừng hoạt động, chẳng hạn DNS server không có fallback hoặc hệ thống an toàn gia đình. Những thứ còn lại trong danh sách này đều có thể tự host.

Tôi có cần Docker cho tất cả những việc này không?

Không bắt buộc, nhưng bạn nên dùng. Mọi ứng dụng trong danh sách này đều có Docker image. Docker cung cấp cách cài đặt sạch, gỡ bỏ sạch, pin version dễ dàng và khả năng chuyển sang host mới. Một số ứng dụng như WireGuard và Zabbix cũng có thể cài native từ apt nếu bạn thích. Khi đã biết một compose file, bạn sẽ biết cách dùng tất cả compose file khác. Vì vậy, toàn bộ danh sách này trở nên dễ tiếp cận hơn.

Tôi phải giữ an toàn cho toàn bộ hệ thống như thế nào?

4 thói quen bao quát phần lớn yêu cầu: đặt TLS phía trước mọi dịch vụ; khóa chặt SSH bằng đăng nhập chỉ dùng key và Fail2ban chặn các lần thử brute-force; chỉ public những port thực sự cần thiết và truy cập phần còn lại qua WireGuard VPN; cập nhật thường xuyên và đọc release note để upgrade không gây bất ngờ. Backup là thói quen thứ 5. Backup giúp bạn khôi phục khi một lỗi lọt qua 4 biện pháp đầu tiên.