Bộ app self-hosted tiết kiệm tài nguyên cho Raspberry Pi, N100, thin client
Bạn không cần server Xeon, NAS đắt tiền, RAM 64GB để bắt đầu self-host. Một chiếc Raspberry Pi 4/5, mini PC Intel N100, hoặc thin client cũ là đủ để chạy nhiều dịch vụ hữu ích: đồng bộ file, ghi chú, quản lý mật khẩu, dashboard, media nhẹ, backup, DNS nội bộ, giám sát hệ thống.
Vấn đề thật sự không phải “máy yếu”, mà là chọn sai app. Nhiều stack phổ biến đẹp, mạnh, nhưng kéo theo PostgreSQL, Redis, Elasticsearch, worker nền, indexer nặng → RAM/CPU/SSD bị ăn sạch. Với phần cứng nhỏ, triết lý nên là: ít phụ thuộc, DB nhẹ, container gọn, tính năng vừa đủ, backup dễ.
Dưới đây là bộ app self-hosted thực dụng, tiết kiệm tài nguyên, phù hợp homelab nhỏ.
Nguyên tắc chọn app cho máy cấu hình thấp
Ưu tiên app “single binary” hoặc ít service
App dạng single binary thường rất hợp máy yếu. Một file chạy, config đơn giản, ít phụ thuộc. Ví dụ: Caddy, Gitea, Vaultwarden, Uptime Kuma.
Tránh stack cần quá nhiều thành phần nếu không thật sự cần:
– App + PostgreSQL + Redis + worker + search engine → nặng.
– App có AI/indexing/OCR liên tục → tốn CPU/RAM.
– App chạy Java/Elastic → thường không lý tưởng cho Pi/thin client RAM thấp.
SQLite trước, PostgreSQL sau
Với home server nhỏ, SQLite thường đủ:
– Nhẹ.
– Backup dễ: copy file DB.
– Ít RAM.
– Không cần quản trị DB riêng.
PostgreSQL tốt, bền, mạnh; nhưng nếu chỉ 1-5 user, SQLite thường hợp hơn.
Docker Compose tối giản
Docker tiện, nhưng đừng biến máy nhỏ thành “Kubernetes mini”. Mỗi app nên có:
– restart: unless-stopped
– volume rõ ràng
– image nhẹ
– giới hạn log
– backup volume định kỳ
Log không giới hạn → đầy SSD/eMMC → app chết.
Hạ tầng nền: ít nhưng chắc
Reverse proxy: Caddy
Caddy → lựa chọn sáng giá cho máy nhỏ.
Ưu điểm:
– Tự cấp HTTPS Let’s Encrypt.
– Config ngắn.
– RAM thấp.
– Reverse proxy dễ.
Ví dụ dùng cho các app nội bộ qua domain/subdomain. Nếu chỉ dùng LAN, vẫn có thể dùng Caddy với DNS nội bộ.
Thay thế: Nginx Proxy Manager đẹp UI nhưng nặng hơn; Traefik mạnh nhưng config phức hơn. Với máy nhỏ: Caddy đủ.
DNS nội bộ + chặn quảng cáo: AdGuard Home hoặc Pi-hole
AdGuard Home và Pi-hole đều chạy tốt trên Raspberry Pi.
Nên dùng nếu muốn:
– Chặn quảng cáo/malware ở mức DNS.
– Đặt tên nội bộ: vault.home, nas.home.
– Theo dõi truy vấn DNS trong mạng.
So sánh nhanh:
– AdGuard Home: UI hiện đại, all-in-one, config dễ.
– Pi-hole: cộng đồng lớn, plugin/tài liệu nhiều.
RAM thường thấp, CPU gần như không đáng kể. Đây là app “đáng cài nhất” cho homelab nhỏ.
Dashboard: Homepage hoặc Dashy nhẹ cấu hình
Dashboard giúp gom link dịch vụ.
Khuyến nghị:
– Homepage: đẹp, nhẹ, YAML config, hỗ trợ widget Docker.
– Homer: cực nhẹ, static, gần như không tốn tài nguyên.
Nếu máy rất yếu: chọn Homer. Nếu muốn đẹp hơn, widget nhiều hơn: Homepage.
App thiết yếu nên self-host
Quản lý mật khẩu: Vaultwarden
Vaultwarden là bản Rust nhẹ tương thích Bitwarden client.
Lý do nên dùng:
– Rất nhẹ.
– Hỗ trợ extension trình duyệt, app mobile Bitwarden.
– Phù hợp gia đình/nhóm nhỏ.
– SQLite đủ dùng.
Tài nguyên thường rất thấp nếu ít user. Đây là app self-host “giá trị cao/tài nguyên thấp”.
Lưu ý bảo mật:
– Bắt buộc HTTPS nếu truy cập ngoài LAN.
– Bật 2FA.
– Backup volume định kỳ.
– Không mở public nếu chưa hiểu reverse proxy/firewall.
Ghi chú cá nhân: Memos hoặc Joplin Server
Nếu muốn ghi chú nhẹ, nhanh, web đẹp: Memos.
Ưu điểm:
– Giao diện đơn giản.
– Chạy nhẹ.
– Hợp ghi nhật ký, note ngắn, snippet.
– SQLite.
Nếu đã dùng Joplin trên desktop/mobile và cần sync: Joplin Server. Tuy nhiên Joplin Server thường cần DB riêng, nặng hơn Memos.
Khuyến nghị:
– Ghi chú nhanh, ít phụ thuộc → Memos.
– Đồng bộ hệ sinh thái Joplin → Joplin Server.
Đồng bộ file: Syncthing thay vì Nextcloud
Nextcloud rất mạnh, nhưng với Pi/thin client RAM thấp, nó dễ thành “quái vật”: PHP, DB, cron, preview, app plugin, cache.
Nếu mục tiêu là đồng bộ file giữa laptop/điện thoại/server, chọn Syncthing.
Ưu điểm:
– Peer-to-peer.
– Không cần DB nặng.
– Chạy rất ổn trên máy nhỏ.
– Đồng bộ thư mục cụ thể.
– Không cần public internet nếu dùng LAN/VPN.
Nhược:
– Không có web office, share link đẹp, user management như Nextcloud.
– Không phải “cloud drive” đúng nghĩa.
Thực tế: 80% nhu cầu cá nhân chỉ cần Syncthing + backup.
Backup: Restic hoặc Kopia
Backup là phần hay bị bỏ qua. Self-host không backup → chỉ là “tự mất dữ liệu”.
Restic:
– CLI mạnh.
– Mã hóa mặc định.
– Dedup tốt.
– Dễ backup ra USB, NAS, S3, Backblaze B2.
Kopia:
– Có UI.
– Dễ quan sát snapshot.
– Cũng mã hóa/dedup tốt.
Máy nhỏ vẫn chạy được, nhưng nên hẹn lịch ban đêm. Với Raspberry Pi dùng microSD, backup càng quan trọng vì thẻ dễ hỏng.
Chiến lược tối thiểu:
– Backup config + volume Docker.
– 1 bản local USB.
– 1 bản offsite/cloud nếu dữ liệu quan trọng.
– Test restore mỗi tháng.
Media nhẹ: chọn đúng để không “đốt CPU”
Jellyfin: dùng được, nhưng cần giới hạn kỳ vọng
Jellyfin chạy được trên N100 rất tốt, đặc biệt nếu có hardware transcoding Intel Quick Sync. Trên Raspberry Pi, dùng được nếu direct play, tránh transcoding.
Khuyến nghị:
– N100 → Jellyfin ổn.
– Raspberry Pi → chỉ direct play, file encode sẵn H.264/H.265 phù hợp thiết bị xem.
– Thin client cũ → tùy CPU/GPU, kiểm tra VAAPI/Quick Sync.
Nếu thư viện nhỏ, chỉ xem trong LAN, Jellyfin vẫn rất đáng dùng.
Navidrome cho nhạc
Nếu chỉ cần stream nhạc, Navidrome nhẹ hơn nhiều so với media server tổng hợp.
Ưu điểm:
– Nhẹ.
– Giao diện tốt.
– Tương thích Subsonic clients.
– Quét thư viện nhanh nếu số lượng vừa phải.
Với Pi/N100, Navidrome là lựa chọn tuyệt vời.
Ảnh: tránh app quá nặng nếu máy yếu
Quản lý ảnh là nhóm app thường rất nặng vì thumbnail, metadata, AI tagging, face recognition.
Immich rất hay nhưng khá nặng: PostgreSQL, Redis, machine learning, thumbnail job. N100 chạy được nếu RAM đủ; Pi/thin client yếu thì nên cân nhắc.
Lựa chọn nhẹ hơn:
– PhotoPrism: vẫn tương đối nặng khi index.
– LibrePhotos: không nhẹ.
– FileBrowser: cực nhẹ, xem/quản lý file ảnh cơ bản.
– Syncthing + thư mục ảnh + backup: đơn giản, bền.
Nếu mục tiêu chỉ là lưu ảnh an toàn: đừng vội cài app ảnh nặng. Hãy ưu tiên backup trước.
Quản lý file web: FileBrowser
FileBrowser → app nhỏ nhưng rất hữu dụng.
Dùng để:
– Upload/download file qua web.
– Quản lý thư mục.
– Tạo user đơn giản.
– Chia sẻ nhanh trong LAN.
Nó không thay Nextcloud, nhưng cực hợp server nhỏ. RAM thấp, setup nhanh, ít lỗi.
Git cá nhân: Gitea hoặc Forgejo
Muốn self-host repo code, wiki, issue tracker nhẹ → Gitea hoặc Forgejo.
Ưu điểm:
– Nhẹ hơn GitLab rất nhiều.
– SQLite dùng tốt cho cá nhân/nhóm nhỏ.
– UI quen thuộc.
– Có package registry, actions tùy nhu cầu.
GitLab không nên chạy trên máy nhỏ trừ khi bạn thích nhìn RAM biến mất.
Giám sát: Uptime Kuma + Netdata có chọn lọc
Uptime Kuma
Theo dõi dịch vụ sống/chết:
– HTTP ping.
– TCP port.
– DNS.
– Notification Telegram/Discord/email.
Nhẹ, đẹp, dễ dùng. Rất nên cài.
Netdata
Netdata đẹp, realtime, nhiều metric. Nhưng có thể hơi nặng trên Pi RAM thấp. Nếu cài, nên tắt bớt collector không dùng.
Lựa chọn nhẹ hơn:
– glances
– htop
– docker stats
– node exporter + Prometheus? Mạnh nhưng không cần nếu homelab nhỏ.
Remote access an toàn: Tailscale hoặc WireGuard
Đừng mở mọi app ra internet nếu không cần. Cách gọn nhất: dùng VPN mesh.
Tailscale:
– Cài nhanh.
– NAT traversal tốt.
– Có app mobile.
– Rất hợp homelab.
WireGuard:
– Nhẹ, nhanh, tự chủ hơn.
– Config thủ công hơn.
Mô hình khuyến nghị:
– App chỉ bind LAN.
– Truy cập từ xa qua Tailscale/WireGuard.
– Chỉ public những dịch vụ thật cần.
Bộ app mẫu theo cấu hình
Raspberry Pi 4, RAM 2-4GB
Nên chạy:
– Caddy
– AdGuard Home
– Vaultwarden
– Memos
– Syncthing
– FileBrowser
– Uptime Kuma
– Restic
Tránh/cân nhắc:
– Nextcloud
– Immich
– Elasticsearch stack
– Transcoding Jellyfin
Intel N100, RAM 8-16GB
Có thể chạy thoải mái hơn:
– Toàn bộ bộ Pi ở trên
– Jellyfin + hardware transcoding
– Gitea/Forgejo
– Navidrome
– Immich nếu RAM/SSD đủ
– PostgreSQL cho vài app cần DB
N100 là “điểm ngọt” hiện nay: điện thấp, hiệu năng tốt, Quick Sync mạnh.
Thin client cũ, RAM 4-8GB
Phụ thuộc CPU/SSD, nhưng thường hợp:
– DNS
– reverse proxy
– Vaultwarden
– Syncthing
– FileBrowser
– Gitea nhẹ
– backup node
Nên thay SSD nếu máy dùng flash/eMMC cũ. RAM 4GB vẫn ổn nếu tránh app nặng.
Mẹo vận hành để máy nhỏ chạy bền
Giới hạn log Docker
Log phình to → đầy disk. Cấu hình Docker daemon log rotation là việc nên làm sớm.
Dùng SSD thay microSD
Raspberry Pi chạy 24/7 trên microSD dễ lỗi. SSD USB tốt hơn rõ rệt:
– bền hơn
– nhanh hơn
– ít corrupt DB hơn
Tắt tính năng nặng
Ví dụ:
– Jellyfin: tránh transcoding nếu Pi.
– App ảnh: tắt face recognition/ML.
– Dashboard: giảm widget realtime.
– Monitoring: giảm interval.
Backup trước update
Trước khi docker compose pull && docker compose up -d, backup DB/volume. Update lỗi ít gặp, nhưng khi gặp thường rất mất thời gian.
Kết luận thực tế
Self-host trên Raspberry Pi, N100, thin client hoàn toàn khả thi nếu chọn app đúng. Đừng chạy theo danh sách “awesome self-hosted” rồi cài mọi thứ. Hãy bắt đầu từ nhu cầu thật:
– Mật khẩu → Vaultwarden.
– DNS sạch → AdGuard Home/Pi-hole.
– File sync → Syncthing.
– Note → Memos.
– Backup → Restic/Kopia.
– Theo dõi uptime → Uptime Kuma.
– Truy cập xa → Tailscale/WireGuard.
Với máy nhỏ, mục tiêu không phải “chạy được nhiều nhất”, mà là chạy ổn định nhất với ít công chăm sóc nhất. Một homelab tốt là thứ bạn quên nó tồn tại, nhưng khi cần thì luôn có mặt.